From c07c4663985fd88ec782766e03d0315d149db0e5 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Thu, 2 Oct 2025 16:52:30 +0200 Subject: [PATCH] fix: make tooltip translation key respect custom entry names --- .../java/eu/midnightdust/lib/config/EntryInfo.java | 11 ++++++----- .../midnightdust/lib/config/MidnightConfigScreen.java | 7 +++---- gradle.properties | 2 +- 3 files changed, 10 insertions(+), 10 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 795ddc9..a5cba28 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java +++ b/common/src/main/java/eu/midnightdust/lib/config/EntryInfo.java @@ -16,12 +16,12 @@ public class EntryInfo { public MidnightConfig.Condition[] conditions; public final Field field; public final Class dataType; - public final String modid, fieldName; + public final String modid, fieldName, translationKey; int listIndex; Object defaultValue, value, function; String tempValue; // The value visible in the config screen boolean inLimits = true; - Text name, error; + Text error; ClickableWidget actionButton; // color picker button / explorer button Tab tab; boolean conditionsMet = true; @@ -41,9 +41,10 @@ public class EntryInfo { } if (entry != null && !entry.name().isEmpty()) - this.name = Text.translatable(entry.name()); + this.translationKey = entry.name(); else if (comment != null && !comment.name().isEmpty()) - this.name = Text.translatable(comment.name()); + this.translationKey = comment.name(); + else this.translationKey = modid + ".midnightconfig." + fieldName; } public void setValue(Object value) { @@ -97,7 +98,7 @@ public class EntryInfo { } public Tooltip getTooltip(boolean isButton) { - String key = this.modid + ".midnightconfig." + this.fieldName + (!isButton ? ".label" : "") + ".tooltip"; + String key = translationKey + (!isButton ? ".label" : "") + ".tooltip"; return Tooltip.of(isButton && this.error != null ? this.error : I18n.hasTranslation(key) ? Text.translatable(key) : Text.empty()); } } 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 ff7b149..dda2f58 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java @@ -75,7 +75,7 @@ public class MidnightConfigScreen extends Screen { } scrollProgress = list.getScrollY(); for (EntryInfo info : MidnightConfig.entries.values()) - info.updateFieldValue(); + if (Objects.equals(modid, info.modid)) info.updateFieldValue(); updateButtons(); if (instance.reloadScreen) { updateList(); @@ -154,7 +154,6 @@ public class MidnightConfigScreen extends Screen { if (!visibleButLocked) continue; } if (info.modid.equals(modid) && (info.tab == null || info.tab == tabManager.getCurrentTab())) { - Text name = Objects.requireNonNullElseGet(info.name, () -> Text.translatable(translationPrefix + info.fieldName)); TextIconButtonWidget resetButton = TextIconButtonWidget.builder(Text.translatable("controls.reset"), (button -> { info.value = info.defaultValue; info.listIndex = 0; @@ -245,8 +244,8 @@ public class MidnightConfigScreen extends Screen { widgets.add(cycleButton); } if (!info.conditionsMet) widgets.forEach(w -> w.active = false); - this.list.addButton(widgets, name, info); - } else this.list.addButton(List.of(), name, info); + this.list.addButton(widgets, Text.translatable(info.translationKey), info); + } else this.list.addButton(List.of(), Text.translatable(info.translationKey), info); } list.setScrollY(scrollProgress); updateButtons(); diff --git a/gradle.properties b/gradle.properties index 266bbb6..e374310 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.21.9+build.1 enabled_platforms=fabric,neoforge archives_base_name=midnightlib -mod_version=1.8.1 +mod_version=1.8.2 maven_group=eu.midnightdust release_type=release curseforge_id=488090