diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-10-02 22:39:07 -0400 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-10-02 23:14:35 -0400 |
commit | 80d2141ed345fd3be54ab06530aa2cac3a6fd08c (patch) | |
tree | d02ef86f621d9b7f85260c65015179a860b29ef5 /src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java | |
parent | 3a94710d8f5c7d1f674b53e719daf8b0cf59bcd4 (diff) | |
download | Skyblocker-80d2141ed345fd3be54ab06530aa2cac3a6fd08c.tar.gz Skyblocker-80d2141ed345fd3be54ab06530aa2cac3a6fd08c.tar.bz2 Skyblocker-80d2141ed345fd3be54ab06530aa2cac3a6fd08c.zip |
Add Enum Dropdown Controller
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java index 651f7aa9..28ed704b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java @@ -1,44 +1,21 @@ package me.xmrvizzy.skyblocker.config; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - import dev.isxander.yacl3.api.Option; import dev.isxander.yacl3.api.controller.BooleanControllerBuilder; -import dev.isxander.yacl3.api.controller.DropdownStringControllerBuilder; import dev.isxander.yacl3.api.controller.EnumControllerBuilder; +import me.xmrvizzy.skyblocker.config.controllers.EnumDropdownControllerBuilder; public class ConfigUtils { - @SuppressWarnings("unchecked") - public static <E extends Enum<E>> EnumControllerBuilder<E> createEnumCyclingListController(Option<E> opt) { - return EnumControllerBuilder.create(opt).enumClass((Class<E>) opt.binding().defaultValue().getClass()); - } - public static BooleanControllerBuilder createBooleanController(Option<Boolean> opt) { return BooleanControllerBuilder.create(opt).yesNoFormatter().coloured(true); } - /** - * Searches through enum constants in {@code enumClass} for one whose {@link Enum#toString()} result equals {@code expectedValue} - * - * @return The enum constant associated with the {@code expectedValue} - * @throws IllegalStateException Thrown when a constant couldn't be found - * - * @implNote The return value of {@link Enum#toString()} on each enum constant should be unique in order to ensure accuracy - */ - public static <E extends Enum<E>> E enumConstantFromToString(Class<E> enumClass, String expectedValue) { - for (E constant : enumClass.getEnumConstants()) { - if (constant.toString().equals(expectedValue)) - return constant; - } - - throw new IllegalStateException("Didn't find an enum constant matching: " + expectedValue); + @SuppressWarnings("unchecked") + public static <E extends Enum<E>> EnumControllerBuilder<E> createEnumCyclingListController(Option<E> opt) { + return EnumControllerBuilder.create(opt).enumClass((Class<E>) opt.binding().defaultValue().getClass()); } - public static <E extends Enum<E>> DropdownStringControllerBuilder createDropdownControllerFromEnum(Option<String> opt, Class<E> enumClass) { - List<String> stringifiedConstants = Arrays.stream(enumClass.getEnumConstants()).map(Enum::toString).collect(Collectors.toList()); - - return DropdownStringControllerBuilder.create(opt).allowAnyValue(false).allowEmptyValue(false).values(stringifiedConstants); + public static <E extends Enum<E>> EnumDropdownControllerBuilder<E> createEnumDropdownController(Option<E> opt) { + return EnumDropdownControllerBuilder.create(opt); } } |