diff options
| author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-06-07 21:15:51 +0700 |
|---|---|---|
| committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-06-07 21:15:51 +0700 |
| commit | 98ed87a68284f1f0756b01c07d957cbb4bd4e09c (patch) | |
| tree | c72f4563aab765dbffa3804475a4e7e57907bc76 /src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java | |
| parent | 44f69da8e5eb1a10e3833bd55dd97a7bd274f2ca (diff) | |
| parent | 4d447988d5318895a92256cde93420456a04bd57 (diff) | |
| download | OneConfig-98ed87a68284f1f0756b01c07d957cbb4bd4e09c.tar.gz OneConfig-98ed87a68284f1f0756b01c07d957cbb4bd4e09c.tar.bz2 OneConfig-98ed87a68284f1f0756b01c07d957cbb4bd4e09c.zip | |
Merge branch 'master' of https://github.com/Polyfrost/OneConfig
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java')
| -rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java b/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java index d4efeaa..947156a 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java @@ -1,15 +1,18 @@ package cc.polyfrost.oneconfig.config.elements; import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.function.Supplier; @SuppressWarnings({"unused"}) public abstract class BasicOption { public final int size; protected final Field field; - protected final String name; protected final Object parent; - private Supplier<Boolean> dependency; + public final String name; + public final String category; + public final String subcategory; + private final ArrayList<Supplier<Boolean>> dependencies = new ArrayList<>(); /** * Initialize option @@ -19,11 +22,13 @@ public abstract class BasicOption { * @param name name of option * @param size size of option, 0 for single column, 1 for double. */ - public BasicOption(Field field, Object parent, String name, int size) { + public BasicOption(Field field, Object parent, String name, String category, String subcategory, int size) { this.field = field; this.parent = parent; this.name = name; this.size = size; + this.category = category; + this.subcategory = subcategory; if (field != null) field.setAccessible(true); } @@ -78,21 +83,21 @@ public abstract class BasicOption { } /** - * @return If the component has an option to render at half size + * Add a condition to this option + * + * @param supplier The dependency */ - public boolean hasHalfSize() { - return true; - } - - public String getName() { - return name; - } - - public void setDependency(Supplier<Boolean> supplier) { - this.dependency = supplier; + public void addDependency(Supplier<Boolean> supplier) { + this.dependencies.add(supplier); } + /** + * @return If the option is enabled, based on the dependencies + */ protected boolean isEnabled() { - return dependency == null || dependency.get(); + for (Supplier<Boolean> dependency : dependencies) { + if (!dependency.get()) return false; + } + return true; } } |
