فهرست منبع

Add array providers

Lortseam 4 سال پیش
والد
کامیت
63526f040e

+ 1 - 0
example/src/main/java/me/lortseam/completeconfig/example/Settings.java

@@ -30,6 +30,7 @@ public final class Settings implements ConfigContainer {
         @ConfigEntry.Dropdown
         private AnEnum anEnum = AnEnum.FOO;
         private List<String> list = Arrays.asList("First entry", "Second entry");
+        private String[] array = new String[0];
         private Color color = Color.ofRGB(0, 255, 0);
 
     }

+ 1 - 0
example/src/main/resources/assets/example/lang/en_us.json

@@ -13,6 +13,7 @@
   "config.example.dataTypes.anEnum.bar": "Bar",
   "config.example.dataTypes.anEnum.baz": "Baz",
   "config.example.dataTypes.list": "List",
+  "config.example.dataTypes.array": "Array",
   "config.example.dataTypes.color": "Color",
   "config.example.tooltips": "Tooltips",
   "config.example.tooltips.defaultOneLine.tooltip": "A tooltip with a single line",

+ 30 - 0
lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiRegistry.java

@@ -136,30 +136,60 @@ public final class GuiRegistry {
                             .setTooltip(entry.getTooltip())
                             .setSaveConsumer(entry::setValue),
                     new TypeToken<List<Integer>>() {}.getType()),
+            Provider.create((Entry<Integer[]> entry) -> ConfigEntryBuilder.create()
+                            .startIntList(entry.getText(), Arrays.asList(entry.getValue()))
+                            .setDefaultValue(Arrays.asList(entry.getDefaultValue()))
+                            .setTooltip(entry.getTooltip())
+                            .setSaveConsumer(list -> entry.setValue(list.toArray(new Integer[0]))),
+                    int[].class, Integer[].class),
             Provider.create((Entry<List<Long>> entry) -> ConfigEntryBuilder.create()
                             .startLongList(entry.getText(), entry.getValue())
                             .setDefaultValue(entry.getDefaultValue())
                             .setTooltip(entry.getTooltip())
                             .setSaveConsumer(entry::setValue),
                     new TypeToken<List<Long>>() {}.getType()),
+            Provider.create((Entry<Long[]> entry) -> ConfigEntryBuilder.create()
+                            .startLongList(entry.getText(), Arrays.asList(entry.getValue()))
+                            .setDefaultValue(Arrays.asList(entry.getDefaultValue()))
+                            .setTooltip(entry.getTooltip())
+                            .setSaveConsumer(list -> entry.setValue(list.toArray(new Long[0]))),
+                    long[].class, Long[].class),
             Provider.create((Entry<List<Float>> entry) -> ConfigEntryBuilder.create()
                             .startFloatList(entry.getText(), entry.getValue())
                             .setDefaultValue(entry.getDefaultValue())
                             .setTooltip(entry.getTooltip())
                             .setSaveConsumer(entry::setValue),
                     new TypeToken<List<Float>>() {}.getType()),
+            Provider.create((Entry<Float[]> entry) -> ConfigEntryBuilder.create()
+                            .startFloatList(entry.getText(), Arrays.asList(entry.getValue()))
+                            .setDefaultValue(Arrays.asList(entry.getDefaultValue()))
+                            .setTooltip(entry.getTooltip())
+                            .setSaveConsumer(list -> entry.setValue(list.toArray(new Float[0]))),
+                    float[].class, Float[].class),
             Provider.create((Entry<List<Double>> entry) -> ConfigEntryBuilder.create()
                             .startDoubleList(entry.getText(), entry.getValue())
                             .setDefaultValue(entry.getDefaultValue())
                             .setTooltip(entry.getTooltip())
                             .setSaveConsumer(entry::setValue),
                     new TypeToken<List<Double>>() {}.getType()),
+            Provider.create((Entry<Double[]> entry) -> ConfigEntryBuilder.create()
+                            .startDoubleList(entry.getText(), Arrays.asList(entry.getValue()))
+                            .setDefaultValue(Arrays.asList(entry.getDefaultValue()))
+                            .setTooltip(entry.getTooltip())
+                            .setSaveConsumer(list -> entry.setValue(list.toArray(new Double[0]))),
+                    double[].class, Double[].class),
             Provider.create((Entry<List<String>> entry) -> ConfigEntryBuilder.create()
                             .startStrList(entry.getText(), entry.getValue())
                             .setDefaultValue(entry.getDefaultValue())
                             .setTooltip(entry.getTooltip())
                             .setSaveConsumer(entry::setValue),
                     new TypeToken<List<String>>() {}.getType()),
+            Provider.create((Entry<String[]> entry) -> ConfigEntryBuilder.create()
+                            .startStrList(entry.getText(), Arrays.asList(entry.getValue()))
+                            .setDefaultValue(Arrays.asList(entry.getDefaultValue()))
+                            .setTooltip(entry.getTooltip())
+                            .setSaveConsumer(list -> entry.setValue(list.toArray(new String[0]))),
+                    String[].class),
             Provider.create(ColorEntry.class, (ColorEntry<TextColor> entry) -> ConfigEntryBuilder.create()
                         .startColorField(entry.getText(), entry.getValue())
                         .setDefaultValue(entry.getDefaultValue())