aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/config/annotations
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/config/annotations')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/config/annotations/ConfigPage.java32
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/config/annotations/Option.java85
2 files changed, 117 insertions, 0 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/config/annotations/ConfigPage.java b/src/main/java/cc/polyfrost/oneconfig/config/annotations/ConfigPage.java
new file mode 100644
index 0000000..f9d7c19
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/config/annotations/ConfigPage.java
@@ -0,0 +1,32 @@
+package cc.polyfrost.oneconfig.config.annotations;
+
+import cc.polyfrost.oneconfig.config.data.PageLocation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface ConfigPage {
+ /**
+ * The name of the page that will be displayed to the user
+ */
+ String name();
+
+ /**
+ * If the page button is at the top or bottem of the page
+ */
+ PageLocation location();
+
+ /**
+ * The description of the page that will be displayed to the user
+ */
+ String description() default "";
+
+ /**
+ * The category of the page
+ */
+ String category() default "General";
+}
diff --git a/src/main/java/cc/polyfrost/oneconfig/config/annotations/Option.java b/src/main/java/cc/polyfrost/oneconfig/config/annotations/Option.java
new file mode 100644
index 0000000..d5e9fc7
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/config/annotations/Option.java
@@ -0,0 +1,85 @@
+package cc.polyfrost.oneconfig.config.annotations;
+
+import cc.polyfrost.oneconfig.config.data.InfoType;
+import cc.polyfrost.oneconfig.config.data.OptionType;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface Option {
+ /**
+ * The name of the option that will be displayed to the user
+ */
+ String name();
+
+ /**
+ * The type of the option
+ */
+ OptionType type();
+
+ /**
+ * The category of the component
+ */
+ String category() default "General";
+
+ /**
+ * The subcategory of the component (displayed as header)
+ */
+ String subcategory();
+
+ /**
+ * The width of the option (1 = half width, 2 = full width)
+ */
+ int size() default 1;
+
+ /**
+ * A String array of all the possible values for the UniSelector, dropdownList, and ComboBox.
+ * Also used in the DualOption slider, index 0 is the left, index 1 is the right; for example:
+ * {"Option 1", "Option 2"}
+ */
+ String[] options() default {};
+
+ /**
+ * The places you want dividers to be in a dropdown
+ */
+ int[] dividers() default {};
+
+ /**
+ * The placeholder in the text field
+ */
+ String placeholder() default "";
+
+ /**
+ * If the text field is secure or not
+ */
+ boolean secure() default false;
+
+ /**
+ * If the text field is multi line or not
+ */
+ boolean multiLine() default false;
+
+ /**
+ * Minimum value of slider
+ */
+ float min() default 0;
+
+ /**
+ * The maximum value of the slider
+ */
+ float max() default 0;
+
+ /**
+ * Steps of slider (0 for no steps)
+ */
+ int step() default 0;
+
+ /**
+ * Option for info option type
+ */
+ InfoType infoType() default InfoType.INFO;
+}