diff --git a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntField.java b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntField.java
index 9945d01c..bb0a6718 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntField.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntField.java
@@ -37,5 +37,5 @@
* The format used to display the integer.
* This is the syntax used in {@link String#format(String, Object...)}.
*/
- String format() default "%.0f";
+ String format() default "%d";
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntSlider.java b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntSlider.java
index 7fd22827..4c98c4cd 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntSlider.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/IntSlider.java
@@ -27,9 +27,18 @@
*/
int max();
+ /**
+ * The step size of this slider.
+ *
+ * For example, if this is set to 1, the slider will
+ * increment/decrement by 1 when dragging, no less, no more and
+ * will always be a multiple of 1.
+ */
+ int step();
+
/**
* The format used to display the integer.
* This is the syntax used in {@link String#format(String, Object...)}.
*/
- int step();
+ String format() default "%d";
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongField.java b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongField.java
index 01c3a7e7..ce99fcec 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongField.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongField.java
@@ -37,5 +37,5 @@
* The format used to display the long.
* This is the syntax used in {@link String#format(String, Object...)}.
*/
- String format() default "%.0f";
+ String format() default "%d";
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongSlider.java b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongSlider.java
index 5563bd06..f65b8415 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongSlider.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/api/autogen/LongSlider.java
@@ -28,8 +28,17 @@
long max();
/**
- * The format used to display the integer.
- * This is the syntax used in {@link String#format(String, Object...)}.
+ * The step size of this slider.
+ *
+ * For example, if this is set to 1, the slider will
+ * increment/decrement by 1 when dragging, no less, no more and
+ * will always be a multiple of 1.
*/
long step();
+
+ /**
+ * The format used to display the long.
+ * This is the syntax used in {@link String#format(String, Object...)}.
+ */
+ String format() default "%d";
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntFieldImpl.java b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntFieldImpl.java
index a3b759a1..3f77595a 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntFieldImpl.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntFieldImpl.java
@@ -21,7 +21,7 @@ protected ControllerBuilder createController(IntField annotation, Confi
key = getTranslationKey(field, "fmt");
if (Language.getInstance().has(key))
return Component.translatable(key, v);
- return Component.literal(Integer.toString(v));
+ return Component.literal(String.format(annotation.format(), v));
})
.range(annotation.min(), annotation.max());
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntSliderImpl.java b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntSliderImpl.java
index b570b442..c82a984c 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntSliderImpl.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/IntSliderImpl.java
@@ -21,7 +21,7 @@ protected ControllerBuilder createController(IntSlider annotation, Conf
key = getTranslationKey(field, "fmt");
if (Language.getInstance().has(key))
return Component.translatable(key, v);
- return Component.literal(Integer.toString(v));
+ return Component.literal(String.format(annotation.format(), v));
})
.range(annotation.min(), annotation.max())
.step(annotation.step());
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongFieldImpl.java b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongFieldImpl.java
index 5da7d203..987e383c 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongFieldImpl.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongFieldImpl.java
@@ -21,7 +21,7 @@ protected ControllerBuilder createController(LongField annotation, ConfigF
key = getTranslationKey(field, "fmt");
if (Language.getInstance().has(key))
return Component.translatable(key, v);
- return Component.literal(Long.toString(v));
+ return Component.literal(String.format(annotation.format(), v));
})
.range(annotation.min(), annotation.max());
}
diff --git a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongSliderImpl.java b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongSliderImpl.java
index 95c52547..43d86df9 100644
--- a/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongSliderImpl.java
+++ b/src/main/java/dev/isxander/yacl3/config/v2/impl/autogen/LongSliderImpl.java
@@ -21,7 +21,7 @@ protected ControllerBuilder createController(LongSlider annotation, Config
key = getTranslationKey(field, "fmt");
if (Language.getInstance().has(key))
return Component.translatable(key, v);
- return Component.literal(Long.toString(v));
+ return Component.literal(String.format(annotation.format(), v));
})
.range(annotation.min(), annotation.max())
.step(annotation.step());
diff --git a/src/testmod/java/dev/isxander/yacl3/test/AutogenConfigTest.java b/src/testmod/java/dev/isxander/yacl3/test/AutogenConfigTest.java
index b49938fb..e75c8a7c 100644
--- a/src/testmod/java/dev/isxander/yacl3/test/AutogenConfigTest.java
+++ b/src/testmod/java/dev/isxander/yacl3/test/AutogenConfigTest.java
@@ -32,7 +32,7 @@ public class AutogenConfigTest {
.build();
@AutoGen(category = "test", group = "master_test")
- @MasterTickBox({ "testTickBox", "testBoolean", "testInt", "testDouble", "testFloat", "testLong", "testIntField", "testDoubleField", "testFloatField", "testLongField", "testEnum", "testColor", "testString", "testDropdown", "testItem" })
+ @MasterTickBox({ "testTickBox", "testBoolean", "testInt", "testDouble", "testFloat", "testLong", "testLongFormatted", "testIntField", "testDoubleField", "testFloatField", "testLongField", "testEnum", "testColor", "testString", "testDropdown", "testItem" })
@SerialEntry(comment = "This option disables all the other options in this group")
public boolean masterOption = true;
@@ -64,6 +64,10 @@ public class AutogenConfigTest {
@LongSlider(min = 0, max = 10, step = 2)
@SerialEntry public long testLong = 0;
+ @AutoGen(category = "test", group = "master_test")
+ @LongSlider(min = 0, max = 1000, step = 10, format = "%dms")
+ @SerialEntry public long testLongFormatted = 500;
+
@AutoGen(category = "test", group = "master_test")
@IntField(min = 0, max = 10)
@SerialEntry public int testIntField = 0;