diff options
author | xander <xander@isxander.dev> | 2022-09-03 14:08:53 +0100 |
---|---|---|
committer | xander <xander@isxander.dev> | 2022-09-03 14:08:53 +0100 |
commit | 3027527637373d7df682bf56368cf176ffcc19a8 (patch) | |
tree | 7d06ac25b09b1944626e3007ef6831f455c36ec0 /src/main/java/dev/isxander/yacl/impl | |
parent | be878535f0cd82fe3a0a7c7268e1e6fff5c76a2e (diff) | |
download | YetAnotherConfigLib-3027527637373d7df682bf56368cf176ffcc19a8.tar.gz YetAnotherConfigLib-3027527637373d7df682bf56368cf176ffcc19a8.tar.bz2 YetAnotherConfigLib-3027527637373d7df682bf56368cf176ffcc19a8.zip |
pass through type class to option for controllers to use
Diffstat (limited to 'src/main/java/dev/isxander/yacl/impl')
-rw-r--r-- | src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java | 5 | ||||
-rw-r--r-- | src/main/java/dev/isxander/yacl/impl/OptionImpl.java | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java index 748dd0c..d3fbaa6 100644 --- a/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/ButtonOptionImpl.java @@ -59,6 +59,11 @@ public class ButtonOptionImpl implements ButtonOption { } @Override + public @NotNull Class<Consumer<YACLScreen>> typeClass() { + throw new UnsupportedOperationException(); + } + + @Override public boolean changed() { return false; } diff --git a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java index 176bf93..2d66aee 100644 --- a/src/main/java/dev/isxander/yacl/impl/OptionImpl.java +++ b/src/main/java/dev/isxander/yacl/impl/OptionImpl.java @@ -17,18 +17,22 @@ public class OptionImpl<T> implements Option<T> { private final Controller<T> controller; private final Binding<T> binding; + private final Class<T> typeClass; + private T pendingValue; public OptionImpl( @NotNull Text name, @Nullable Text tooltip, @NotNull Function<Option<T>, Controller<T>> controlGetter, - @NotNull Binding<T> binding + @NotNull Binding<T> binding, + @NotNull Class<T> typeClass ) { this.name = name; this.tooltip = tooltip; this.controller = controlGetter.apply(this); this.binding = binding; + this.typeClass = typeClass; this.pendingValue = binding().getValue(); } @@ -53,6 +57,11 @@ public class OptionImpl<T> implements Option<T> { } @Override + public @NotNull Class<T> typeClass() { + return typeClass; + } + + @Override public boolean changed() { return !binding().getValue().equals(pendingValue); } |