From bb18e1a00ad8942108afb0723b1944bd25ac9277 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sat, 27 Sep 2025 15:47:38 +0200 Subject: [PATCH] clean: additional refactoring --- .../eu/midnightdust/lib/config/EntryInfo.java | 3 ++- .../lib/config/MidnightConfig.java | 24 +++++++++++-------- .../lib/config/MidnightConfigListWidget.java | 2 +- .../lib/config/MidnightConfigScreen.java | 4 +--- .../lib/util/MidnightColorUtil.java | 2 -- .../midnightdust/lib/config/AutoModMenu.java | 3 ++- gradle.properties | 2 +- 7 files changed, 21 insertions(+), 19 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java b/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java index 6f90f66..795ddc9 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java +++ b/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java @@ -73,11 +73,11 @@ public class EntryInfo { } } - @SuppressWarnings("ConstantValue") //pertains to requiredModLoaded public void updateConditions() { boolean prevConditionState = this.conditionsMet; if (this.conditions.length > 0) this.conditionsMet = true; // reset conditions for (MidnightConfig.Condition condition : this.conditions) { + //noinspection ConstantValue if (!condition.requiredModId().isEmpty() && !PlatformFunctions.isModLoaded(condition.requiredModId())) this.conditionsMet = false; String requiredOption = condition.requiredOption().contains(":") ? condition.requiredOption() : (this.modid + ":" + condition.requiredOption()); @@ -89,6 +89,7 @@ public class EntryInfo { } public void writeList(int index, T value) { + //noinspection unchecked var list = (List) this.value; if (index >= list.size()) list.add(value); diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index 8112259..b552475 100755 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -29,8 +29,8 @@ import java.util.function.Predicate; import java.util.regex.Pattern; /** MidnightConfig by Martin "Motschen" Prokoph - * Single class config library - feel free to copy! - * Based on ... + * Minimalist config library - feel free to copy! + * Originally based on ... * Credits to Minenash */ @SuppressWarnings("unchecked") @@ -73,8 +73,9 @@ public abstract class MidnightConfig { for (Field field : config.getFields()) { EntryInfo info = new EntryInfo(field, modid); + //noinspection ConstantValue if ((field.isAnnotationPresent(Entry.class) || field.isAnnotationPresent(Comment.class)) && !field.isAnnotationPresent(Server.class) && !field.isAnnotationPresent(Hidden.class) && PlatformFunctions.isClientEnv()) - instance.initClient(modid, field, info); + instance.addClientEntry(field, info); if (field.isAnnotationPresent(Entry.class)) try { info.defaultValue = field.get(null); } catch (IllegalAccessException ignored) {} @@ -83,10 +84,9 @@ public abstract class MidnightConfig { } @Environment(EnvType.CLIENT) - private void initClient(String modid, Field field, EntryInfo info) { + public void addClientEntry(Field field, EntryInfo info) { Entry e = info.entry; - String key = modid + ":" + field.getName(); - if (e != null) { + if (e != null && info.dataType != null) { if (info.dataType == int.class) textField(info, Integer::parseInt, INTEGER_ONLY, (int) e.min(), (int) e.max(), true); else if (info.dataType == float.class) textField(info, Float::parseFloat, DECIMAL_ONLY, (float) e.min(), (float) e.max(), false); else if (info.dataType == double.class) textField(info, Double::parseDouble, DECIMAL_ONLY, e.min(), e.max(), false); @@ -106,7 +106,7 @@ public abstract class MidnightConfig { }, func); } } - entries.put(key, info); + entries.put(modid + ":" + field.getName(), info); } public static Class getUnderlyingType(Field field) { @@ -165,10 +165,10 @@ public abstract class MidnightConfig { public void loadValuesFromJson() { try { gson.fromJson(Files.newBufferedReader(getJsonFilePath()), configClass); - } - catch (Exception e) { + } catch (Exception e) { write(modid); } + entries.values().forEach(info -> { if (info.field != null && info.entry != null) { try { @@ -184,7 +184,12 @@ public abstract class MidnightConfig { configInstances.get(modid).writeChanges(modid); } + @Deprecated public void writeChanges(String modid) { + this.writeChanges(); + } + + public void writeChanges() { try { Path path; if (!Files.exists(path = getJsonFilePath())) @@ -205,7 +210,6 @@ public abstract class MidnightConfig { // Overridable method public void onTabInit(String tabName, MidnightConfigListWidget list, MidnightConfigScreen screen) { - } @Environment(EnvType.CLIENT) diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigListWidget.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigListWidget.java index 80e6ee9..6e35061 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigListWidget.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigListWidget.java @@ -26,7 +26,7 @@ public class MidnightConfigListWidget extends ElementListWidget { } @Override - protected void drawHeaderAndFooterSeparators(DrawContext context) { + public void drawHeaderAndFooterSeparators(DrawContext context) { if (renderHeaderSeparator) super.drawHeaderAndFooterSeparators(context); else diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java index 8aac034..5afdfb6 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java @@ -34,9 +34,7 @@ public class MidnightConfigScreen extends Screen { public final String translationPrefix, modid; public final Screen parent; public MidnightConfigListWidget list; - public TabManager tabManager = new TabManager(a -> { - }, a -> { - }); + public TabManager tabManager = new TabManager(a -> {}, a -> {}); public Map tabs = new LinkedHashMap<>(); public Tab prevTab; public TabNavigationWidget tabNavigation; diff --git a/common/src/main/java/eu/midnightdust/lib/util/MidnightColorUtil.java b/common/src/main/java/eu/midnightdust/lib/util/MidnightColorUtil.java index 444bc51..210ebc3 100755 --- a/common/src/main/java/eu/midnightdust/lib/util/MidnightColorUtil.java +++ b/common/src/main/java/eu/midnightdust/lib/util/MidnightColorUtil.java @@ -2,13 +2,11 @@ package eu.midnightdust.lib.util; import java.awt.Color; -@Deprecated public class MidnightColorUtil { /** * @param colorStr e.g. "FFFFFF" or "#FFFFFF" * @return Color as RGB */ - @Deprecated public static Color hex2Rgb(String colorStr) { try { return Color.decode("#" + colorStr.replace("#", "")); } catch (Exception ignored) { return Color.BLACK; } diff --git a/fabric/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java b/fabric/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java index 8c977e2..56f914c 100755 --- a/fabric/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java +++ b/fabric/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java @@ -21,6 +21,7 @@ public class AutoModMenu implements ModMenuApi { MidnightConfig.configInstances.forEach((modid, cClass) -> { if (!MidnightLib.hiddenMods.contains(modid)) map.put(modid, parent -> MidnightConfig.getScreen(parent, modid)); - }); return map; + }); + return map; } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 756b0ef..09bdb7a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.21.9-pre3+build.3 enabled_platforms=fabric,neoforge archives_base_name=midnightlib -mod_version=1.7.6-rc.1 +mod_version=1.8.0-rc.1 maven_group=eu.midnightdust release_type=release curseforge_id=488090