aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/impl
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/impl
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/impl')
-rw-r--r--src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java8
-rw-r--r--src/main/java/dev/isxander/yacl/impl/OptionImpl.java8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java
index 2cdc8a6..a600bc3 100644
--- a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java
+++ b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java
@@ -19,6 +19,7 @@ public class ButtonOptionImpl implements ButtonOption {
private final Text name;
private final Text tooltip;
private final Consumer<YACLScreen> action;
+ private final boolean available;
private final Controller<Consumer<YACLScreen>> controller;
private final Binding<Consumer<YACLScreen>> binding;
@@ -26,11 +27,13 @@ public class ButtonOptionImpl implements ButtonOption {
@NotNull Text name,
@Nullable Text tooltip,
@NotNull Consumer<YACLScreen> action,
+ boolean available,
@NotNull Function<ButtonOption, Controller<Consumer<YACLScreen>>> controlGetter
) {
this.name = name;
this.tooltip = tooltip;
this.action = action;
+ this.available = available;
this.controller = controlGetter.apply(this);
this.binding = new EmptyBinderImpl();
}
@@ -51,6 +54,11 @@ public class ButtonOptionImpl implements ButtonOption {
}
@Override
+ public boolean available() {
+ return available;
+ }
+
+ @Override
public @NotNull Controller<Consumer<YACLScreen>> controller() {
return controller;
}
diff --git a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java
index 445420e..5a31a70 100644
--- a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java
+++ b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java
@@ -18,6 +18,7 @@ public class OptionImpl<T> implements Option<T> {
private final Text tooltip;
private final Controller<T> controller;
private final Binding<T> binding;
+ private final boolean available;
private final ImmutableSet<OptionFlag> flags;
@@ -30,6 +31,7 @@ public class OptionImpl<T> implements Option<T> {
@Nullable Text tooltip,
@NotNull Function<Option<T>, Controller<T>> controlGetter,
@NotNull Binding<T> binding,
+ boolean available,
ImmutableSet<OptionFlag> flags,
@NotNull Class<T> typeClass
) {
@@ -37,6 +39,7 @@ public class OptionImpl<T> implements Option<T> {
this.tooltip = tooltip;
this.controller = controlGetter.apply(this);
this.binding = binding;
+ this.available = available;
this.flags = flags;
this.typeClass = typeClass;
this.pendingValue = binding().getValue();
@@ -63,6 +66,11 @@ public class OptionImpl<T> implements Option<T> {
}
@Override
+ public boolean available() {
+ return available;
+ }
+
+ @Override
public @NotNull Class<T> typeClass() {
return typeClass;
}