GithubHelp home page GithubHelp logo

polyfrost / oneconfig Goto Github PK

View Code? Open in Web Editor NEW
232.0 3.0 24.0 7.03 MB

Next generation configuration library for Minecraft

Home Page: https://polyfrost.org/projects/oneconfig

License: Other

Java 96.35% GLSL 0.14% Kotlin 3.50%

oneconfig's Introduction

OneConfig_banner_wide

OneConfig

Dev Worflow Status Dev Worflow Status

Are you someone who knows nothing about programming and just want to use OneConfig? Check out our website here!

OneConfig is a free, open sourced configuration library by Polyfrost, designed to give developers a simple config API, which users can interact with in an elegant user interface.

❔ General information

Click to view screenshots OneConfig-Screenshot-1 OneConfig-Screenshot-2 OneConfig-Screenshot-3

How to get:

For beginners, we recommend using SkyClient, a free and open-sourced mod installer. For more technical users, all of our mods, including Hytils, CrashPatch, EvergreenHUD, and Chatting have full support, and come with OneConfig. Mods which use Vigilance are also supported through our compatability layer.

Is it a client?

While it may look like OneConfig is a client, in reality it's actually a standalone mod. You can actually see for yourself, it doesn't come with any mods of it's own. It's left up to the user to decide which mods they want to actually use.

⚡️ Getting started

Almost everything you could need to start using OneConfig can be found in our documentation. For further questions, feel free to make a developer ticket in our discord.

ℹ️ Example mod

Please check out our example mod.

📄 Licenses and Supporting Projects

License OneConfig is free and open-source. Except where noted otherwise (below and/or in individual files), all code is licensed under BOTH - version 3 of the GNU Lesser General Public License, **AND** - the Additional Terms Applicable to OneConfig, version 1.0 of the Additional Terms or (at your option) any later version.

Copies of version 3 of the GNU Lesser General Public License, version 1.0 of the Additional Terms Applicable to OneConfig, and version 3 of the GNU General Public License (which the GNU LGPLv3 supplements) can be found in the LICENSE file.

Polyfrost acts as the specified proxy when deciding whether future versions of the GNU Lesser General Public License shall apply. If Polyfrost publicly states the acceptance of a later version of the GNU Lesser General Public License, this is permanent authorization for you to choose that version for OneConfig. However, you must still be compliant with the Additional Terms Applicable to OneConfig.

Supporting Projects

YourKitLogo|50

YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications.
YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

oneconfig's People

Contributors

caledonianeh avatar dediamondpro avatar dependabot[bot] avatar forbai avatar imtoggle avatar ktibow avatar microcontrollersdev avatar moontidez avatar nea89o avatar nextdayy avatar optimize-2 avatar pauliesnug avatar realrobotix avatar redthmc avatar wyvest avatar xthe-dev avatar xtrm-en avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

oneconfig's Issues

`TextRenderer.drawBorderedText` does weird stuff with coloring

Bug description

drawBorderedText seems to cause a few issues, mainly with its color.

Steps to reproduce

REDACTION issues

  1. Install REDACTION and Chatting
  2. Turn on REDACTION color highlight
  3. Set Chatting text render to bordered
  4. Type in chat
  5. See your name be weird and stuff

EvergreenHUD issues

  1. Install EvergreenHUD
  2. Turn on any HUD element and set text to bordered
  3. Observe weird color stuff

Expected behavior

No response

Anything else?

No response

If Android is detected, change settings to avoid crash and improve performance

Is your feature request related to a problem? Please describe

Not really, I just think it'd be easier for users if this was a feature.

Describe the behaviour you'd like

Add detection for Android.

If Android is found

  • Set enableBlur to 0 (As it causes a LOT of lag when opening the GUI)
  • Set updatechannel to 1 (As the game crashes without it)
  • I don't know if this part is possible or if it's already implemented but if whatever extensions you guys use to render the GUI is missing, send error saying "Invalid Renderer"

Describe alternatives you've considered

I don't really see any alternatives to this. It's just setting a config automatically.

Additional context

The updatechannel option seems to be pretty unknown, hell I just found out about it right now. Would be nice if it was configured automatically.

Notifications do not animate on first notification

Bug description

no animation on first notification

Steps to reproduce

Notifications.INSTANCE.send("Test", "Message");

Expected behavior

same animation on all notifications

Anything else?

No response

Support for large amount of categories

Bug description

Currently, OneConfig's GUI does not account for large amounts of categories and simply just cuts them off.

Steps to reproduce

  1. Make a config
  2. Add 13 or more categories
  3. See results

Expected behavior

Categories should expand lower if there are too many categories.

Anything else?

No response

Trying to use any anti-aliasing on anything breaks the UI

Original reporter & ticket id

No response

Category

Interface

Bug description

Using optifine antialiasing turns everything into a transparent white block and using Nvidia overrides causes everything to be stretched leftwards except for the bottom left section of the screen

Steps to reproduce

turn on antialiasing

Anything else?

Heres optifine
https://github.com/Polyfrost/OneConfig/assets/60690056/0b5d6a10-3dc4-43ba-b062-8742d48b5b09

The nVidia control panel antialiasing bug doesn't seem to consistently appear which is odd. I wasn't able to record it sadly

logs showed nothing

Pojav does not work with OneConfig NanoVG

Bug description

Pojav uses custom LWJGL natives for supporting Android and iOS. Since we do not embed any Android or iOS natives, this obviously does not work.

Steps to reproduce

  1. Download Pojav
  2. Install OneConfig
  3. Open OneConfig

Expected behavior

No response

Anything else?

No response

crash my game

Original reporter & ticket id

No response

Category

whil try to open neu mod is just crash

Bug description

crah

Steps to reproduce

i try to update the mode but dont work

Anything else?

no thx

Cannot get MappingsProvider before it has been setup

Original reporter & ticket id

Build file 'D:\code\OneConfig\versions\build.gradle.kts' line: 11

An exception occurred applying plugin request [id: 'org.polyfrost.multi-version']

Failed to apply plugin class 'com.replaymod.gradle.preprocess.PreprocessPlugin'.
A problem occurred configuring project ':platform:1.8.9-fabric'.
> Failed to notify project evaluation listener.
> Failed to setup Minecraft, java.io.UncheckedIOException: Failed to provide intermediate mappings
> Cannot get MappingsProvider before it has been setup

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

Category

Set Development Environment

Bug description

I am unable to successfully build gradle

Steps to reproduce

I used IDEA

Anything else?

No response

Custom bind not working

Original reporter & ticket id

No response

Category

HUD

Bug description

Whenever I'm using oneconfig, I try and rebind it from rshift once doing that, it only adds a button to open it not remove rshift

Steps to reproduce

image_2024-08-03_122318493
Try and rebind the gui key, but press rshift after

Anything else?

No response

OneKeybind NONE

Bug description

image
UKeyboard.NONE

image
ESC

Steps to reproduce

is this bug

Expected behavior

No response

Anything else?

No response

oh yeah yeah

Bug description

oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah

Steps to reproduce

oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah

Expected behavior

oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah

Anything else?

oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah
oh yeah yeah

Refactor classes to `cc.polyfrost.oneconfig.v0`

If / when a redesign is done, it will most likely change the UX for both the user and the developer massively. Thus, to prepare for breaking API changes, we should move all current API to cc.polyfrost.oneconfig.v0 excluding internal classes to mitigate issues with breaking changes.

Additionally, all PRs should be merged before this refactor as this will cause major merge conflicts.

Icon on ign

Is your feature request related to a problem? Please describe

No, But it would be nice to have an icon showing who is using oneconfig ingame.

Describe the behaviour you'd like

just an icon, like lunar's, badlion's, essential's, labymod, or axolotlclient on the ign and tab menu showing that a person is using oneconfig.

Describe alternatives you've considered

...

Additional context

...

Crash on OpenJ9-based JVMs

Bug description

OneConfig seems to crash on OpenJ9-based JVMs, such as IBM Semuru.

From the stacktrace, we can think that this is due to the EventBus implementation using Lambda Metafactories to generate invoker code not being valid on J9 standards compared to HotSpot.

Minecraft has crashed!
net.fabricmc.loader.impl.FormattedException: java.lang.ExceptionInInitializerError
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:463)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: java.lang.ExceptionInInitializerError
    at java.base/java.lang.J9VMInternals.ensureError(J9VMInternals.java:184)
    at java.base/java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:173)
    at cc.polyfrost.oneconfig.internal.OneConfig.init(OneConfig.java:135)
    at net.minecraft.resource.DefaultResourcePack.handler$zzi000$onStart(DefaultResourcePack.java:555)
    at net.minecraft.resource.DefaultResourcePack.<init>(DefaultResourcePack.java:21)
    at net.minecraft.client.MinecraftClient.<init>(MinecraftClient.java:276)
    at net.minecraft.client.main.Main.main(Main.java:124)
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:461)
    ... 3 more
Caused by: java.lang.invoke.LambdaConversionException: Invalid caller: cc.polyfrost.oneconfig.utils.gui.GuiUtils
    at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.<init>(AbstractValidatingLambdaMetafactory.java:120)
    at java.base/java.lang.invoke.InnerClassLambdaMetafactory.<init>(InnerClassLambdaMetafactory.java:172)
    at java.base/java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:323)
    at cc.polyfrost.oneconfig.libs.eventbus.invokers.LMFInvoker.setup(LMFInvoker.java:19)
    at cc.polyfrost.oneconfig.libs.eventbus.EventBus.register(eventbus.kt:69)
    at cc.polyfrost.oneconfig.events.EventManager.register(EventManager.java:69)
    at cc.polyfrost.oneconfig.utils.gui.GuiUtils.<clinit>(GuiUtils.java:54)
    ... 9 more

Steps to reproduce

  1. Use an OpenJ9-based JVM
  2. Launch OneConfig (only tested in development environment)
  3. Crash

Expected behavior

OneConfig should be able to load properly on any type of JVM and should not rely on implementation-specific behavior.

Anything else?

To fix the issue would require replacing the current EventBus library with another that doesn't use Lambda Metafactories as its invoker method.

The current one I'm suggesting is Shyrogan/Post, which uses runtime class generation for listener construction via ASM.

NanoVG dies if drawn on any frame buffer without a stencil buffer

Bug description

As NanoVG uses the stencil buffer extensively, if NanoVG is used in a framebuffer without a stencil buffer, the whole area covering the framebuffer has unexpected glitches.

Steps to reproduce

  1. Disable Patcher Mixin
  2. Go ingame
  3. Turn on HUD Caching
  4. Go to OneConfig

Why is this an issue?

Currently we just turn on the stencil buffer on any framebuffer that needs it. This however requires us to mixin into every single mod that doesn't use the stencil buffer (including pizza client and stuff)

Expected behavior

Maybe we could force all framebuffers to have stencil buffers?

Anything else?

No response

Clarify License terms outside the LICENSE file

Currently, the License terms include the condition to have this text in a visible (and focused) area of the screen when using this library.

"Powered by OneConfig - get OneConfig from the original creators 
at <https://polyfrost.cc/oneconfig>"

In my opinion, this should already be clarified in the readme or the documentation to prevent License infringements later onwards since many people are unlikely to ever read to the bottom of the License file.

Documentation fasely states that `step` in `Slider` is a float

Original reporter & ticket id

No response

Category

API

Bug description

The Slider class as in the latest version uses a int step, but the documentation shows it like the following:

@Slider(
    name = "You slide me right round baby right round",
    min = 0f, max = 100f        // min and max values for the slider
    // if you like, you can use step to set a step value for the slider,
    // giving it little steps that the slider snaps to.
    step = 10f
)

Where step is shown to support floats.

Steps to reproduce

Anything else?

I would like it that step is able to be a float

Pojav compatibility

Hi
it would be nice if we can run oneconfig with open4es since virgl renderer is extremely slow and buggy compared to open4es

On open4es when a world is joined the whole game crashes

MC turns black after enabling blur

Bug description

Ok so IDK if you guys are aware of this but when I enable blur in oneconfig my mc just turns black but when I disable the blur ( by clicking on the place it was in since the screen is still black) it becomes normal again. Here's a few screenshots of before and after enabling the blur

https://imgur.com/Jqwp1lQ

https://imgur.com/6YcCMno

Steps to reproduce

  1. Open OneConfig GUI
  2. Go to Preferences
  3. Click on enable blur

Expected behavior

it should just enable blur?

Anything else?

No response

Dynamic config values

Why

currently, there are no ways to create fields and associated config options on runtime without class reloading,
the current annotation design is simple and well put together, but it breaks down when the project gets big. You end up with a massive class and all of your code ties back to one class

Why not

I can't really think how this would affect other parts of the code base in a meaningfully bad way, it would definitely be a advanced feature not intended for simple small mods

How it would look

I propose a api that would bypass the annotation part, and allow the dev to manually register an option, and retrieve its value. Something like config.registerOption(id, new Slider(min, max, name, category)) and then config.getOptionValue(id)

Not Building

Original reporter & ticket id

image
whatever org.polyfrost:polyfrost-gradle-toolkit:0.2.9. is its causing errors

Category

bug

Bug description

whatever org.polyfrost:polyfrost-gradle-toolkit:0.2.9. is its causing errors

Steps to reproduce

get intelej and then try to build

Anything else?

No response

Potion Effects Hud game crash and visual bugs

Original reporter & ticket id

No response

Category

Gameplay and HUD.

Bug description

Upgrading from older versions of Potion Effects will cause the config to go corrupt due to changes with their Pages either not existing anymore or simply changed.

Steps to reproduce

Have an old version of the P.E. Hud mod, update OneConfig and P.E. Hud mod to the latest, have P.E. Hud enabled in OneConfig and that's where all the bugs start.

Mods which include Chat Tabs

Original reporter & ticket id

No response

Category

Mods Which include chat tabs, so i think HUD or Interface dk

Bug description

So theres these mods for skyblock called Chatting or Skytils, since i started using Oneconfig i cant seem to be able to use the Chat tabs of those mods which i believe may have been caused cause of Oneconfig as they worked completely fine before i started using Oneconfig. (Within SkyClient)

Steps to reproduce

modlist
image

Anything else?

If theres a possible solution please share it with me or if its not caused by OneConfig.

OneConfig not saving settings

Original reporter & ticket id

No response

Category

Backend

Bug description

I've been using the oneconfig demo mod as a base for my mod for a while now. But recently i'm getting this error over and over and it's not saving the users settings.

[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: java.lang.IllegalArgumentException: class java.text.Format$Field declares multiple JSON fields named serialVersionUID
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ArrayTypeAdapter$1.create(ArrayTypeAdapter.java:48)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.getAdapter(Gson.java:356)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.toJson(Gson.java:585)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.toJson(Gson.java:572)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.toJson(Gson.java:527)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at com.google.gson.Gson.toJson(Gson.java:507)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at cc.polyfrost.oneconfig.config.Config.save(Config.java:167)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at cc.polyfrost.oneconfig.internal.config.core.ConfigCore.saveAll(ConfigCore.java:45)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[10:12:28] [pool-7-thread-1/INFO] (STDERR) [cc.polyfrost.oneconfig.config.Config:save:169]: 	at java.lang.Thread.run(Thread.java:748)

Steps to reproduce

mod list: OneConfig, my mod
loader: forge
version: 1.8.9

clone the example mod and make changes to the config.

Anything else?

No response

Tooltip isn't displayed properly

Tooltip display is scissored to the Page, even if the tooltip is rendering outside the page:
img

Ideas:

  • Render tooltips after rendering the entire UI

Make `NanoVGHelper#drawImage` prepend "/" to images

Bug description

Currently, NanoVGHelper's drawImage function does not add "/" to the beginning of text. This causes NanoVG to not be able to find assets.

Steps to reproduce

  1. call NanoVGHelper.INSTANCE.drawImage

Expected behavior

NanoVGHelper should automatically prepand "/" to images if they do not have a "/"

Anything else?

No response

Switch your CoC to NCoC

What if you considered an alternative to the current Code of Conduct (CoC)? I'd like to introduce NCoC (No Code of Conduct), which promotes a straightforward and clear principle: behaving like a responsible adult. Unlike the current CoC with numerous detailed and confusing rules which gives you no wiggle room and treats people with a presumption of guilt, NCoC aims for simplicity. Take a look here: https://github.com/domgetter/NCoC
Your thoughts on this idea are appreciated!

Minecraft PolySprint 1.12.2 Doesn't Work

Original reporter & ticket id

No response

Category

Gameplay

Bug description

Toggle Sprint mod 1.12.2 doesn't work. When I press shift, it shows sprinting (toggled), and when I walk, it doesn't automatically sprint.

Steps to reproduce

SKLauncher Minecraft 1.12.2 Forge 14.23.5.2860
My Mods List: PolySprint, Evergreen Hud, OneConfig, Perspective Mod Redux, Namepain, TimeToLive, Controlling, Keystrokes, BetterFps, Optifine, Collective, StackRefill, MacroKey Binding.

Anything else?

I tried to join the Discord server, but it doesn't let me join because of the "Unable to Accept Invite" error.

Minecraft formatting codes are treated as regular text

Original reporter & ticket id

Originally reported in Polyfrost Internal Discord server by myself. @Wyvest told me to "cry" and to "make a GitHub issue", presumably in here.

Category

Interface

Bug description

Me:

when will oneconfig detect and either render or ignore formatting codes

asking because some of the config options i made for synthesis mod by sirdesco have formatting codes in the names

Wyvest:

we already do that iirc

Me:

yeah uh

2L4qThP

Wyvest:

Cry

make a github issue

Steps to reproduce

  1. Download Synthesis* (or any mod menu that uses Minecraft's formatting codes in its Essential-reliant config menus, but Synthesis is the one I used here), install it into mods folder for a Forge 1.8.9 instance.
  2. Get on Hypixel and press RSHIFT to open the OneConfig menu.
  3. Open the Synthesis config from within OneConfig.
  4. Scroll around. Have a gander:
    2L4qThP

*My mods list is 60+ mods long; for the purposes of this bug report you just need a Forge 1.8.9 instance, any mod that exclusively uses OneConfig, and Synthesis.

Anything else?

Please render the formatting codes, that would be epic.

Keybind option in config redundant

Original reporter & ticket id

No response

Category

Gameplay

Bug description

When using Keybind element in config code, only uses the default option supplied. Even when changed in the config in-game it uses the original keybind and the new one is not working.

Steps to reproduce

Create Keybind element in config
Set a default value
Default value should work
Change the keybind INGAME
Default value still works, new value doesn't

Anything else?

No response

Getting banned when trying to join the discord

Bug description

When i try to join the discord i get instantly banned

Steps to reproduce

Join the discord with the link given

Expected behavior

No response

Anything else?

No response

Hud Border bug

Original reporter & ticket id

No response

Category

HUD

Bug description

probably renders the border behind the background

image
image

Steps to reproduce

Forge 1.8.9
Any HUD Mod that utilizes OC with border as an option
Set border color Opacity to like 50%

Anything else?

No response

Events on value change

Lately I've been if (lastValue != value) { do suff on value change; lastValue = value;} to simulate event change values, i don't have a clear vision on how a official API would look, but I'm interested on what y'all think about this idea

Internal assets not usable

Bug description

When using RenderManager#drawImage or RenderManager#drawSvg you get a compile error that it cant accses "cc.polyfrost.oneconfig.internal.assets.SVGs" / "cc.polyfrost.oneconfig.internal.assets.SVGs"

Steps to reproduce

Use RenderManager#drawImage or RenderManager#drawSvg

Expected behavior

No compile error

Anything else?

here both crash report:

/home/lars/MCDevelopment/SkyblockHelper/versions/1.8.9-forge/build/sources/java/cc/polyfrost/example/util/render/graph/Graph.java:67: error: cannot access SVGs
            RenderManager.drawSvg(vg, this.getClass().getResource("/assets/oneconfig/old-icons/ArrowUp.svg").getFile(), X + BORDER + 5, Y +BORDER * 2 +5,20,20,Colorz.WHITE);
                         ^
  class file for cc.polyfrost.oneconfig.internal.assets.SVGs not found

and the one with Images

/home/lars/MCDevelopment/SkyblockHelper/versions/1.8.9-forge/build/sources/java/cc/polyfrost/example/util/render/graph/Graph.java:67: error: cannot access Images
            RenderManager.drawImage(vg, this.getClass().getResource("/assets/oneconfig/old-icons/ArrowUp.svg").getFile(), X + BORDER + 5, Y +BORDER * 2 +5,20,20,Colorz.WHITE);
                         ^
  class file for cc.polyfrost.oneconfig.internal.assets.Images not found

Buggy color picker dragging

Bug description

When dragging the colour editor - and possibly other widgets - it doesn't work as expected and sometimes gets stuck.

Steps to reproduce

  1. Open a mod configuration with a colour picker.
  2. Move the picker around.

Expected behavior

For the picker not to be desynchronised for the cursor.

Anything else?

I built from source ;) (at the time server boosting was required for a download - however i just wanted to help test it :))

Multi choice settings

Currently, we only have dropdowns to chose among many exclusive states, I propose a option that would look like the dual option but have multiple options, with reflection magic it would be possible to choose one a emum value out of enum class, but that would require lot of work for little developer convenience
Dual option for reference:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.