diff options
6 files changed, 29 insertions, 33 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java index f5605342..4a615ecc 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java @@ -1,15 +1,11 @@ package me.xmrvizzy.skyblocker.config; import dev.isxander.yacl3.api.Option; -import dev.isxander.yacl3.api.controller.CyclingListControllerBuilder; -import net.minecraft.text.Text; +import dev.isxander.yacl3.api.controller.EnumControllerBuilder; public class ConfigUtils { - - @SuppressWarnings("unchecked") - public static <E extends Enum<?>> CyclingListControllerBuilder<E> createCyclingListController4Enum(Option<E> opt) { - E[] constants = (E[]) opt.binding().defaultValue().getClass().getEnumConstants(); - - return CyclingListControllerBuilder.create(opt).values(constants).formatValue(formatter -> Text.of(formatter.toString())); - } + @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()); + } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java index 4357c29c..2fe1f775 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java @@ -29,7 +29,7 @@ public class DiscordRPCCategory { .binding(defaults.richPresence.info, () -> config.richPresence.info, newValue -> config.richPresence.info = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<Boolean>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.richPresence.cycleMode")) diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java index 0f6b1208..92a7ddec 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java @@ -156,21 +156,21 @@ public class DungeonsCategory { .binding(defaults.locations.dungeons.dungeonChestProfit.neutralColor, () -> config.locations.dungeons.dungeonChestProfit.neutralColor, newValue -> config.locations.dungeons.dungeonChestProfit.neutralColor = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<FormattingOption>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonChestProfit.profitColor")) .binding(defaults.locations.dungeons.dungeonChestProfit.profitColor, () -> config.locations.dungeons.dungeonChestProfit.profitColor, newValue -> config.locations.dungeons.dungeonChestProfit.profitColor = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<FormattingOption>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonChestProfit.lossColor")) .binding(defaults.locations.dungeons.dungeonChestProfit.lossColor, () -> config.locations.dungeons.dungeonChestProfit.lossColor, newValue -> config.locations.dungeons.dungeonChestProfit.lossColor = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<FormattingOption>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonChestProfit.incompleteColor")) @@ -178,7 +178,7 @@ public class DungeonsCategory { .binding(defaults.locations.dungeons.dungeonChestProfit.incompleteColor, () -> config.locations.dungeons.dungeonChestProfit.incompleteColor, newValue -> config.locations.dungeons.dungeonChestProfit.incompleteColor = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .build()) diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java index c6b8b8bc..42d623ac 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java @@ -61,7 +61,7 @@ public class DwarvenMinesCategory { .binding(defaults.locations.dwarvenMines.dwarvenHud.style, () -> config.locations.dwarvenMines.dwarvenHud.style, newValue -> config.locations.dwarvenMines.dwarvenHud.style = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(ButtonOption.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.screen")) diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java index 842f0894..95b01dfd 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java @@ -92,7 +92,7 @@ public class GeneralCategory { .binding(defaults.general.tabHud.nameSorting, () -> config.general.tabHud.nameSorting, newValue -> config.general.tabHud.nameSorting = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .build()) @@ -112,28 +112,28 @@ public class GeneralCategory { .binding(defaults.general.bars.barPositions.healthBarPosition, () -> config.general.bars.barPositions.healthBarPosition, newValue -> config.general.bars.barPositions.healthBarPosition = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<SkyblockerConfig.BarPosition>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition")) .binding(defaults.general.bars.barPositions.manaBarPosition, () -> config.general.bars.barPositions.manaBarPosition, newValue -> config.general.bars.barPositions.manaBarPosition = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<SkyblockerConfig.BarPosition>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition")) .binding(defaults.general.bars.barPositions.defenceBarPosition, () -> config.general.bars.barPositions.defenceBarPosition, newValue -> config.general.bars.barPositions.defenceBarPosition = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<SkyblockerConfig.BarPosition>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition")) .binding(defaults.general.bars.barPositions.experienceBarPosition, () -> config.general.bars.barPositions.experienceBarPosition, newValue -> config.general.bars.barPositions.experienceBarPosition = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .build()) @@ -312,7 +312,7 @@ public class GeneralCategory { .binding(defaults.general.itemTooltip.avg, () -> config.general.itemTooltip.avg, newValue -> config.general.itemTooltip.avg = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<Boolean>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN")) @@ -416,14 +416,14 @@ public class GeneralCategory { .binding(defaults.general.titleContainer.direction, () -> config.general.titleContainer.direction, newValue -> config.general.titleContainer.direction = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<SkyblockerConfig.Alignment>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.titleContainer.alignment")) .binding(defaults.general.titleContainer.alignment, () -> config.general.titleContainer.alignment, newValue -> config.general.titleContainer.alignment = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(ButtonOption.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.titleContainer.config")) diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java index 5fc5a808..5adec834 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java @@ -21,63 +21,63 @@ public class MessageFilterCategory { .binding(defaults.messages.hideAbility, () -> config.messages.hideAbility, newValue -> config.messages.hideAbility = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideHeal")) .binding(defaults.messages.hideHeal, () -> config.messages.hideHeal, newValue -> config.messages.hideHeal = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideAOTE")) .binding(defaults.messages.hideAOTE, () -> config.messages.hideAOTE, newValue -> config.messages.hideAOTE = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideImplosion")) .binding(defaults.messages.hideImplosion, () -> config.messages.hideImplosion, newValue -> config.messages.hideImplosion = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideMoltenWave")) .binding(defaults.messages.hideMoltenWave, () -> config.messages.hideMoltenWave, newValue -> config.messages.hideMoltenWave = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideAds")) .binding(defaults.messages.hideAds, () -> config.messages.hideAds, newValue -> config.messages.hideAds = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideTeleportPad")) .binding(defaults.messages.hideTeleportPad, () -> config.messages.hideTeleportPad, newValue -> config.messages.hideTeleportPad = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideCombo")) .binding(defaults.messages.hideCombo, () -> config.messages.hideCombo, newValue -> config.messages.hideCombo = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideAutopet")) .binding(defaults.messages.hideAutopet, () -> config.messages.hideAutopet, newValue -> config.messages.hideAutopet = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<ChatFilterResult>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideShowOff")) @@ -85,7 +85,7 @@ public class MessageFilterCategory { .binding(defaults.messages.hideShowOff, () -> config.messages.hideShowOff, newValue -> config.messages.hideShowOff = newValue) - .controller(ConfigUtils::createCyclingListController4Enum) + .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(Option.<Boolean>createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideMana")) |