Skip to content

Commit

Permalink
Update enum cycling list controller
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinthegreat1 committed Oct 1, 2023
1 parent 73241aa commit be8e307
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 33 deletions.
14 changes: 5 additions & 9 deletions src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java
Original file line number Diff line number Diff line change
@@ -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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,29 +156,29 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonChestProfit.incompleteColor.@Tooltip")))
.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())

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.binding(defaults.general.tabHud.nameSorting,
() -> config.general.tabHud.nameSorting,
newValue -> config.general.tabHud.nameSorting = newValue)
.controller(ConfigUtils::createCyclingListController4Enum)
.controller(ConfigUtils::createEnumCyclingListController)
.build())
.build())

Expand All @@ -112,28 +112,28 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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())

Expand Down Expand Up @@ -312,7 +312,7 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
Expand Down Expand Up @@ -416,14 +416,14 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,71 +21,71 @@ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig
.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"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.messages.hideShowOff.@Tooltip")))
.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"))
Expand Down

0 comments on commit be8e307

Please sign in to comment.