diff options
author | xander <xander@isxander.dev> | 2022-09-15 19:22:40 +0100 |
---|---|---|
committer | xander <xander@isxander.dev> | 2022-09-15 19:22:40 +0100 |
commit | b9ce9513c8e55ed53321d78b6fbbd07aacd5e987 (patch) | |
tree | 445836336f061c0be2cf601ecc294022f0cace33 /src/main/java/dev/isxander/yacl/api/Option.java | |
parent | e8b6e383b368706c992425f7de7023f24d376d7c (diff) | |
download | YetAnotherConfigLib-b9ce9513c8e55ed53321d78b6fbbd07aacd5e987.tar.gz YetAnotherConfigLib-b9ce9513c8e55ed53321d78b6fbbd07aacd5e987.tar.bz2 YetAnotherConfigLib-b9ce9513c8e55ed53321d78b6fbbd07aacd5e987.zip |
available property + fix category tooltips not showing
Diffstat (limited to 'src/main/java/dev/isxander/yacl/api/Option.java')
-rw-r--r-- | src/main/java/dev/isxander/yacl/api/Option.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/dev/isxander/yacl/api/Option.java b/src/main/java/dev/isxander/yacl/api/Option.java index 10f2d10..ff72c4c 100644 --- a/src/main/java/dev/isxander/yacl/api/Option.java +++ b/src/main/java/dev/isxander/yacl/api/Option.java @@ -41,6 +41,11 @@ public interface Option<T> { @NotNull Binding<T> binding(); /** + * If the option can be configured + */ + boolean available(); + + /** * Class of the option type. * Used by some controllers. */ @@ -109,6 +114,8 @@ public interface Option<T> { private Binding<T> binding; + private boolean available = true; + private final Set<OptionFlag> flags = new HashSet<>(); private final Class<T> typeClass; @@ -188,6 +195,16 @@ public interface Option<T> { } /** + * Sets if the option can be configured + * + * @see Option#available() + */ + public Builder<T> available(boolean available) { + this.available = available; + return this; + } + + /** * Adds a flag to the option. * Upon applying changes, all flags are executed. * {@link Option#flags()} @@ -236,7 +253,7 @@ public interface Option<T> { concatenatedTooltip.append(line); } - return new OptionImpl<>(name, concatenatedTooltip, controlGetter, binding, ImmutableSet.copyOf(flags), typeClass); + return new OptionImpl<>(name, concatenatedTooltip, controlGetter, binding, available, ImmutableSet.copyOf(flags), typeClass); } } } |