Browse Source

Replaced GUI provider translation keys with Texts

Lortseam 5 năm trước cách đây
mục cha
commit
ccd44e6a90

+ 1 - 1
src/main/java/me/lortseam/completeconfig/ConfigManager.java

@@ -283,7 +283,7 @@ public class ConfigManager {
         List<AbstractConfigListEntry> list = new ArrayList<>();
         collection.getEntries().forEach((entryID, entry) -> {
             String translationKey = entry.getCustomTranslationKey() != null ? buildTranslationKey(entry.getCustomTranslationKey()) : buildTranslationKey(parentID, entryID);
-            list.add(guiRegistry.getProvider(entry).build(translationKey, entry.getField(), entry.getValue(), entry.getDefaultValue(), entry.getExtras(), entry::setValue));
+            list.add(guiRegistry.getProvider(entry).build(new TranslatableText(translationKey), entry.getField(), entry.getValue(), entry.getDefaultValue(), entry.getExtras(), entry::setValue));
         });
         collection.getCollections().forEach((subcategoryID, c) -> {
             String id = joinIDs(parentID, subcategoryID);

+ 2 - 2
src/main/java/me/lortseam/completeconfig/gui/GuiProvider.java

@@ -2,6 +2,7 @@ package me.lortseam.completeconfig.gui;
 
 import me.lortseam.completeconfig.entry.Extras;
 import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
+import net.minecraft.text.Text;
 
 import java.lang.reflect.Field;
 import java.util.function.Consumer;
@@ -9,7 +10,6 @@ import java.util.function.Consumer;
 @FunctionalInterface
 public interface GuiProvider<T> {
 
-    //TODO: Replace translationKey with Text
-    AbstractConfigListEntry<T> build(String translationKey, Field field, T value, T defaultValue, Extras<T> extras, Consumer<T> saveConsumer);
+    AbstractConfigListEntry<T> build(Text text, Field field, T value, T defaultValue, Extras<T> extras, Consumer<T> saveConsumer);
 
 }

+ 27 - 23
src/main/java/me/lortseam/completeconfig/gui/GuiRegistry.java

@@ -4,6 +4,7 @@ import com.google.common.base.CaseFormat;
 import me.lortseam.completeconfig.entry.Entry;
 import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
 import net.minecraft.client.resource.language.I18n;
+import net.minecraft.text.Text;
 import net.minecraft.text.TranslatableText;
 import org.apache.commons.lang3.ArrayUtils;
 
@@ -11,6 +12,8 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Function;
 
 public class GuiRegistry {
 
@@ -36,57 +39,57 @@ public class GuiRegistry {
     }
 
     private void registerDefaultProviders() {
-        registerProvider((GuiProvider<Boolean>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<Boolean>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startBooleanToggle(new TranslatableText(translationKey), value)
+                .startBooleanToggle(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 boolean.class, Boolean.class
         );
-        registerProvider((GuiProvider<Integer>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<Integer>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startIntField(new TranslatableText(translationKey), value)
+                .startIntField(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 int.class, Integer.class
         );
-        registerBoundedProvider((GuiProvider<Integer>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerBoundedProvider((GuiProvider<Integer>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startIntSlider(new TranslatableText(translationKey), value, extras.getBounds().getMin(), extras.getBounds().getMax())
+                .startIntSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 int.class, Integer.class
         );
-        registerProvider((GuiProvider<Long>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<Long>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startLongField(new TranslatableText(translationKey), value)
+                .startLongField(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 long.class, Long.class
         );
-        registerBoundedProvider((GuiProvider<Long>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerBoundedProvider((GuiProvider<Long>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startLongSlider(new TranslatableText(translationKey), value, extras.getBounds().getMin(), extras.getBounds().getMax())
+                .startLongSlider(text, value, extras.getBounds().getMin(), extras.getBounds().getMax())
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 long.class, Long.class
         );
-        registerProvider((GuiProvider<Float>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<Float>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startFloatField(new TranslatableText(translationKey), value)
+                .startFloatField(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 float.class, Float.class
         );
-        registerBoundedProvider((GuiProvider<Float>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerBoundedProvider((GuiProvider<Float>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startFloatField(new TranslatableText(translationKey), value)
+                .startFloatField(text, value)
                 .setDefaultValue(defaultValue)
                 .setMin(extras.getBounds().getMin())
                 .setMax(extras.getBounds().getMax())
@@ -94,17 +97,17 @@ public class GuiRegistry {
                 .build(),
                 float.class, Float.class
         );
-        registerProvider((GuiProvider<Double>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<Double>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startDoubleField(new TranslatableText(translationKey), value)
+                .startDoubleField(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 double.class, Double.class
         );
-        registerBoundedProvider((GuiProvider<Double>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerBoundedProvider((GuiProvider<Double>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startDoubleField(new TranslatableText(translationKey), value)
+                .startDoubleField(text, value)
                 .setDefaultValue(defaultValue)
                 .setMin(extras.getBounds().getMin())
                 .setMax(extras.getBounds().getMax())
@@ -112,19 +115,20 @@ public class GuiRegistry {
                 .build(),
                 double.class, Double.class
         );
-        registerProvider((GuiProvider<String>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<String>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startStrField(new TranslatableText(translationKey), value)
+                .startStrField(text, value)
                 .setDefaultValue(defaultValue)
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 String.class
         );
-        registerProvider((GuiProvider<? extends Enum>) (translationKey, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
+        registerProvider((GuiProvider<? extends Enum>) (text, field, value, defaultValue, extras, saveConsumer) -> ConfigEntryBuilder
                 .create()
-                .startEnumSelector(new TranslatableText(translationKey), (Class<Enum>) field.getType(), value)
+                .startEnumSelector(text, (Class<Enum>) field.getType(), value)
                 .setDefaultValue(defaultValue)
-                .setEnumNameProvider(e -> new TranslatableText(translationKey + "." + CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, e.name())))
+                                                                                            //TODO: Bad solution; provide custom enum name provider
+                .setEnumNameProvider(e -> new TranslatableText(((TranslatableText) text).getKey() + "." + CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, e.name())))
                 .setSaveConsumer(saveConsumer)
                 .build(),
                 (field, extras) -> Enum.class.isAssignableFrom(field.getType())