From fcafe870db04d850066eef69b6943360c8c24e9b Mon Sep 17 00:00:00 2001 From: moehreag Date: Mon, 13 Jan 2025 19:57:04 +0100 Subject: [PATCH] fix color option saving --- .../impl/ui/rounded/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/vanilla/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/rounded/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/vanilla/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/rounded/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/vanilla/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/rounded/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/vanilla/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/rounded/screen/ColorSelectionScreen.java | 4 ++-- .../impl/ui/vanilla/screen/ColorSelectionScreen.java | 4 ++-- README.md | 8 ++++++++ build.gradle | 6 +++--- .../impl/managers/JsonConfigManager.java | 5 ++++- .../AxolotlClientConfig/impl/options/ColorOption.java | 2 +- gradle.properties | 2 +- 15 files changed, 37 insertions(+), 26 deletions(-) diff --git a/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java b/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java index 8e4207d7..5f8b2fab 100644 --- a/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java +++ b/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java @@ -79,11 +79,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java b/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java index 7c713f7b..9d926d70 100644 --- a/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java +++ b/1.16_combat-6/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java @@ -73,11 +73,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java b/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java index 7ff19768..3e87bd28 100644 --- a/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java +++ b/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java @@ -77,11 +77,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java b/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java index 174aacbb..4254fb21 100644 --- a/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java +++ b/1.20/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java @@ -72,11 +72,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java b/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java index 9e6bd39c..fc91b906 100644 --- a/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java +++ b/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java @@ -77,11 +77,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java b/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java index 98a02632..f4e8014d 100644 --- a/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java +++ b/1.21.4/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java @@ -72,11 +72,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof EditBox) { - ((EditBox) e).setValue(option.get().toString().split(";")[0]); + ((EditBox) e).setValue(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java b/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java index cbd666ca..d25f53bf 100644 --- a/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java +++ b/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java @@ -77,11 +77,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java b/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java index 69bd7a10..48afac1f 100644 --- a/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java +++ b/1.21/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java @@ -72,11 +72,11 @@ public void init() { chroma = new BooleanOption("option.chroma", option.getOriginal().isChroma(), option.getOriginal()::setChroma); speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), option.getOriginal()::setChromaSpeed, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java b/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java index 16a50138..65a6ee46 100644 --- a/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java +++ b/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/rounded/screen/ColorSelectionScreen.java @@ -78,11 +78,11 @@ public void init() { speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), val -> { option.getOriginal().setChromaSpeed(val); }, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java b/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java index eefd9ce6..6b5e4a2e 100644 --- a/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java +++ b/1.8.9/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/ui/vanilla/screen/ColorSelectionScreen.java @@ -73,11 +73,11 @@ public void init() { speed = new FloatOption("option.speed", option.getOriginal().getChromaSpeed(), val -> { option.getOriginal().setChromaSpeed(val); }, 0f, 4f); - alpha = new IntegerOption("option.alpha", option.get().getAlpha(), val -> { + alpha = new IntegerOption("option.alpha", option.getOriginal().getAlpha(), val -> { option.getOriginal().setAlpha(val); children().forEach(e -> { if (e instanceof TextFieldWidget) { - ((TextFieldWidget) e).setText(option.get().toString().split(";")[0]); + ((TextFieldWidget) e).setText(option.getOriginal().toString().split(";")[0]); } }); }, 0, 255); diff --git a/README.md b/README.md index 5f9f6444..e1eb57af 100644 --- a/README.md +++ b/README.md @@ -47,3 +47,11 @@ dependencies { ```java AxolotlClientConfig.register(ConfigManager manager); ``` + +### Creating your own options + +You'll need to implement the `Option` interface. The `OptionBase` class may be helpful +for many cases. Note though that widgets are specific for each Option/Category implementation meaning +that if you create your own option you will also have to create a widget for it. + +If you want an option to not be saved to the config file, return `null` in `toSerializedValue` diff --git a/build.gradle b/build.gradle index cd0f8863..84ddfecc 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,7 @@ repositories { } subprojects { + apply plugin: "java" apply plugin: "maven-publish" apply plugin: "io.freefair.lombok" apply plugin: "dev.yumi.gradle.licenser" @@ -30,9 +31,8 @@ subprojects { maven { url 'https://jitpack.io' } } - java { - - withSourcesJar() + project.extensions.configure(JavaPluginExtension.class) { + it.withSourcesJar() } jar { diff --git a/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/managers/JsonConfigManager.java b/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/managers/JsonConfigManager.java index 5549d3ad..1eb62c1f 100644 --- a/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/managers/JsonConfigManager.java +++ b/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/managers/JsonConfigManager.java @@ -72,7 +72,10 @@ protected void save(JsonObject object, OptionCategory category) { } } - category.getOptions().forEach(o -> object.addProperty(o.getName(), o.toSerializedValue())); + category.getOptions().forEach(o -> { + String value = o.toSerializedValue(); + if (value != null) object.addProperty(o.getName(), value); + }); } @Override diff --git a/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/options/ColorOption.java b/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/options/ColorOption.java index 3b700009..d72ecb9c 100644 --- a/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/options/ColorOption.java +++ b/common/src/main/java/io/github/axolotlclient/AxolotlClientConfig/impl/options/ColorOption.java @@ -53,7 +53,7 @@ public Color getOriginal(){ @Override public String toSerializedValue() { - return get().toString(); + return getOriginal().toString(); } @Override diff --git a/gradle.properties b/gradle.properties index 66afbbe8..0f1c8ee7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Properties -version=3.0.0 +version=3.0.1 maven_group=io.github.axolotlclient archives_base_name=AxolotlClientConfig