aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/api/Option.java
diff options
context:
space:
mode:
authorxander <xander@isxander.dev>2022-09-15 19:22:40 +0100
committerxander <xander@isxander.dev>2022-09-15 19:22:40 +0100
commitb9ce9513c8e55ed53321d78b6fbbd07aacd5e987 (patch)
tree445836336f061c0be2cf601ecc294022f0cace33 /src/main/java/dev/isxander/yacl/api/Option.java
parente8b6e383b368706c992425f7de7023f24d376d7c (diff)
downloadYetAnotherConfigLib-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.java19
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);
}
}
}