aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorPeyton Brown <81496880+PeytonBrown@users.noreply.github.com>2025-07-09 02:08:13 -0400
committerGitHub <noreply@github.com>2025-07-09 02:08:13 -0400
commit325538abeb2b85bd531b0deae94885838b9ea800 (patch)
tree8899427e63b0100cbd34fb471a1ba367fecbe7d1 /src/main/java/de
parentf4487214301d32790e7ea2522bfa5aadc50257c9 (diff)
downloadSkyblocker-325538abeb2b85bd531b0deae94885838b9ea800.tar.gz
Skyblocker-325538abeb2b85bd531b0deae94885838b9ea800.tar.bz2
Skyblocker-325538abeb2b85bd531b0deae94885838b9ea800.zip
Dungeon splits (#1464)
* Initial Implementation * Improvements * Finalize Layout * Handle Dungeon Failing * Clean up splits * Add language support * Rework language translations for both display and saving * Removed unused component * Usage of Object2LongMap * Fix f3 regex * Address PR comments * Add an option to toggle dungeon splits widget
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java1346
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/DungeonsConfig.java258
-rw-r--r--src/main/java/de/hysky/skyblocker/events/DungeonEvents.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonSplitsWidget.java467
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java1540
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/WidgetManager.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/TableWidget.java73
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/component/TableComponent.java104
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/CodecUtils.java6
9 files changed, 2236 insertions, 1585 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
index 3ccb1971..695e53af 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
@@ -20,152 +20,160 @@ import net.minecraft.util.Identifier;
public class DungeonsCategory {
- public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
- return ConfigCategory.createBuilder()
- .id(Identifier.of(SkyblockerMod.NAMESPACE, "config/dungeons"))
- .name(Text.translatable("skyblocker.config.dungeons"))
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
+ return ConfigCategory.createBuilder()
+ .id(Identifier.of(SkyblockerMod.NAMESPACE, "config/dungeons"))
+ .name(Text.translatable("skyblocker.config.dungeons"))
- //Ungrouped Options
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.fancyPartyFinder"))
- .binding(defaults.dungeons.fancyPartyFinder,
- () -> config.dungeons.fancyPartyFinder,
- newValue -> config.dungeons.fancyPartyFinder = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.croesusHelper"))
- .description(Text.translatable("skyblocker.config.dungeons.croesusHelper.@Tooltip"))
- .binding(defaults.dungeons.croesusHelper,
- () -> config.dungeons.croesusHelper,
- newValue -> config.dungeons.croesusHelper = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
+ //Ungrouped Options
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.fancyPartyFinder"))
+ .binding(defaults.dungeons.fancyPartyFinder,
+ () -> config.dungeons.fancyPartyFinder,
+ newValue -> config.dungeons.fancyPartyFinder = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.croesusHelper"))
+ .description(Text.translatable("skyblocker.config.dungeons.croesusHelper.@Tooltip"))
+ .binding(defaults.dungeons.croesusHelper,
+ () -> config.dungeons.croesusHelper,
+ newValue -> config.dungeons.croesusHelper = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.dungeons.salvageHelper"))
.description(Text.translatable("skyblocker.config.dungeons.salvageHelper.@Tooltip"))
.binding(defaults.dungeons.salvageHelper,
- () -> config.dungeons.salvageHelper,
- newValue -> config.dungeons.salvageHelper = newValue)
+ () -> config.dungeons.salvageHelper,
+ newValue -> config.dungeons.salvageHelper = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker"))
+ .description(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker.@Tooltip"))
+ .binding(defaults.dungeons.playerSecretsTracker,
+ () -> config.dungeons.playerSecretsTracker,
+ newValue -> config.dungeons.playerSecretsTracker = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.classBasedPlayerGlow"))
+ .description(Text.translatable("skyblocker.config.dungeons.classBasedPlayerGlow.@Tooltip"))
+ .binding(defaults.dungeons.classBasedPlayerGlow,
+ () -> config.dungeons.classBasedPlayerGlow,
+ newValue -> config.dungeons.classBasedPlayerGlow = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.spiritLeapOverlay"))
+ .description(Text.translatable("skyblocker.config.dungeons.spiritLeapOverlay.@Tooltip"))
+ .binding(defaults.dungeons.spiritLeapOverlay,
+ () -> config.dungeons.spiritLeapOverlay,
+ newValue -> config.dungeons.spiritLeapOverlay = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.starredMobGlow"))
+ .description(Text.translatable("skyblocker.config.dungeons.starredMobGlow.@Tooltip"))
+ .binding(defaults.dungeons.starredMobGlow,
+ () -> config.dungeons.starredMobGlow,
+ newValue -> config.dungeons.starredMobGlow = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes"))
+ .description(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes.@Tooltip"))
+ .binding(defaults.dungeons.starredMobBoundingBoxes,
+ () -> config.dungeons.starredMobBoundingBoxes,
+ newValue -> config.dungeons.starredMobBoundingBoxes = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems"))
+ .description(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems.@Tooltip"))
+ .binding(defaults.dungeons.allowDroppingProtectedItems,
+ () -> config.dungeons.allowDroppingProtectedItems,
+ newValue -> config.dungeons.allowDroppingProtectedItems = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls"))
+ .description(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls.@Tooltip"))
+ .binding(defaults.dungeons.hideSoulweaverSkulls,
+ () -> config.dungeons.hideSoulweaverSkulls,
+ newValue -> config.dungeons.hideSoulweaverSkulls = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.dungeonSplits"))
+ .description(Text.translatable("skyblocker.config.dungeons.dungeonSplits.@Tooltip"))
+ .binding(defaults.dungeons.dungeonSplits,
+ () -> config.dungeons.dungeonSplits,
+ newValue -> config.dungeons.dungeonSplits = newValue)
.controller(ConfigUtils.createBooleanController())
.build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker"))
- .description(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker.@Tooltip"))
- .binding(defaults.dungeons.playerSecretsTracker,
- () -> config.dungeons.playerSecretsTracker,
- newValue -> config.dungeons.playerSecretsTracker = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.classBasedPlayerGlow"))
- .description(Text.translatable("skyblocker.config.dungeons.classBasedPlayerGlow.@Tooltip"))
- .binding(defaults.dungeons.classBasedPlayerGlow,
- () -> config.dungeons.classBasedPlayerGlow,
- newValue -> config.dungeons.classBasedPlayerGlow = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.spiritLeapOverlay"))
- .description(Text.translatable("skyblocker.config.dungeons.spiritLeapOverlay.@Tooltip"))
- .binding(defaults.dungeons.spiritLeapOverlay,
- () -> config.dungeons.spiritLeapOverlay,
- newValue -> config.dungeons.spiritLeapOverlay = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.starredMobGlow"))
- .description(Text.translatable("skyblocker.config.dungeons.starredMobGlow.@Tooltip"))
- .binding(defaults.dungeons.starredMobGlow,
- () -> config.dungeons.starredMobGlow,
- newValue -> config.dungeons.starredMobGlow = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes"))
- .description(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes.@Tooltip"))
- .binding(defaults.dungeons.starredMobBoundingBoxes,
- () -> config.dungeons.starredMobBoundingBoxes,
- newValue -> config.dungeons.starredMobBoundingBoxes = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems"))
- .description(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems.@Tooltip"))
- .binding(defaults.dungeons.allowDroppingProtectedItems,
- () -> config.dungeons.allowDroppingProtectedItems,
- newValue -> config.dungeons.allowDroppingProtectedItems = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls"))
- .description(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls.@Tooltip"))
- .binding(defaults.dungeons.hideSoulweaverSkulls,
- () -> config.dungeons.hideSoulweaverSkulls,
- newValue -> config.dungeons.hideSoulweaverSkulls = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- // Map
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.enableMap"))
- .binding(defaults.dungeons.dungeonMap.enableMap,
- () -> config.dungeons.dungeonMap.enableMap,
- newValue -> config.dungeons.dungeonMap.enableMap = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Float>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.mapScaling"))
- .binding(defaults.dungeons.dungeonMap.mapScaling,
- () -> config.dungeons.dungeonMap.mapScaling,
- newValue -> config.dungeons.dungeonMap.mapScaling = newValue)
- .controller(FloatController.createBuilder().build())
- .build())
- .option(ButtonOption.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.mapScreen"))
- .prompt(Text.translatable("text.skyblocker.open"))
- .action(screen -> MinecraftClient.getInstance().setScreen(new DungeonMapConfigScreen(screen)))
- .build())
- .build())
+ // Map
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.enableMap"))
+ .binding(defaults.dungeons.dungeonMap.enableMap,
+ () -> config.dungeons.dungeonMap.enableMap,
+ newValue -> config.dungeons.dungeonMap.enableMap = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Float>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.mapScaling"))
+ .binding(defaults.dungeons.dungeonMap.mapScaling,
+ () -> config.dungeons.dungeonMap.mapScaling,
+ newValue -> config.dungeons.dungeonMap.mapScaling = newValue)
+ .controller(FloatController.createBuilder().build())
+ .build())
+ .option(ButtonOption.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.mapScreen"))
+ .prompt(Text.translatable("text.skyblocker.open"))
+ .action(screen -> MinecraftClient.getInstance().setScreen(new DungeonMapConfigScreen(screen)))
+ .build())
+ .build())
- // Puzzle Solver
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe"))
- .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe.@Tooltip"))
- .binding(defaults.dungeons.puzzleSolvers.solveTicTacToe,
- () -> config.dungeons.puzzleSolvers.solveTicTacToe,
- newValue -> config.dungeons.puzzleSolvers.solveTicTacToe = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveThreeWeirdos"))
- .binding(defaults.dungeons.puzzleSolvers.solveThreeWeirdos,
- () -> config.dungeons.puzzleSolvers.solveThreeWeirdos,
- newValue -> config.dungeons.puzzleSolvers.solveThreeWeirdos = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver"))
- .description(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver.@Tooltip"))
- .binding(defaults.dungeons.puzzleSolvers.creeperSolver,
- () -> config.dungeons.puzzleSolvers.creeperSolver,
- newValue -> config.dungeons.puzzleSolvers.creeperSolver = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard"))
- .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard.@Tooltip"))
- .binding(defaults.dungeons.puzzleSolvers.waterboardOneFlow,
- () -> config.dungeons.puzzleSolvers.waterboardOneFlow,
- newValue -> config.dungeons.puzzleSolvers.waterboardOneFlow = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
+ // Puzzle Solver
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe"))
+ .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe.@Tooltip"))
+ .binding(defaults.dungeons.puzzleSolvers.solveTicTacToe,
+ () -> config.dungeons.puzzleSolvers.solveTicTacToe,
+ newValue -> config.dungeons.puzzleSolvers.solveTicTacToe = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveThreeWeirdos"))
+ .binding(defaults.dungeons.puzzleSolvers.solveThreeWeirdos,
+ () -> config.dungeons.puzzleSolvers.solveThreeWeirdos,
+ newValue -> config.dungeons.puzzleSolvers.solveThreeWeirdos = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver"))
+ .description(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver.@Tooltip"))
+ .binding(defaults.dungeons.puzzleSolvers.creeperSolver,
+ () -> config.dungeons.puzzleSolvers.creeperSolver,
+ newValue -> config.dungeons.puzzleSolvers.creeperSolver = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard"))
+ .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard.@Tooltip"))
+ .binding(defaults.dungeons.puzzleSolvers.waterboardOneFlow,
+ () -> config.dungeons.puzzleSolvers.waterboardOneFlow,
+ newValue -> config.dungeons.puzzleSolvers.waterboardOneFlow = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.dungeons.puzzle.previewWaterPath"))
.binding(defaults.dungeons.puzzleSolvers.previewWaterPath,
@@ -180,43 +188,43 @@ public class DungeonsCategory {
newValue -> config.dungeons.puzzleSolvers.previewLeverEffects = newValue)
.controller(ConfigUtils.createBooleanController())
.build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver"))
- .description(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver.@Tooltip"))
- .binding(defaults.dungeons.puzzleSolvers.blazeSolver,
- () -> config.dungeons.puzzleSolvers.blazeSolver,
- newValue -> config.dungeons.puzzleSolvers.blazeSolver = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder"))
- .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder.@Tooltip"))
- .binding(defaults.dungeons.puzzleSolvers.solveBoulder,
- () -> config.dungeons.puzzleSolvers.solveBoulder,
- newValue -> config.dungeons.puzzleSolvers.solveBoulder = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveIceFill"))
- .binding(defaults.dungeons.puzzleSolvers.solveIceFill,
- () -> config.dungeons.puzzleSolvers.solveIceFill,
- newValue -> config.dungeons.puzzleSolvers.solveIceFill = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveSilverfish"))
- .binding(defaults.dungeons.puzzleSolvers.solveSilverfish,
- () -> config.dungeons.puzzleSolvers.solveSilverfish,
- newValue -> config.dungeons.puzzleSolvers.solveSilverfish = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTrivia"))
- .binding(defaults.dungeons.puzzleSolvers.solveTrivia,
- () -> config.dungeons.puzzleSolvers.solveTrivia,
- newValue -> config.dungeons.puzzleSolvers.solveTrivia = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver"))
+ .description(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver.@Tooltip"))
+ .binding(defaults.dungeons.puzzleSolvers.blazeSolver,
+ () -> config.dungeons.puzzleSolvers.blazeSolver,
+ newValue -> config.dungeons.puzzleSolvers.blazeSolver = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder"))
+ .description(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder.@Tooltip"))
+ .binding(defaults.dungeons.puzzleSolvers.solveBoulder,
+ () -> config.dungeons.puzzleSolvers.solveBoulder,
+ newValue -> config.dungeons.puzzleSolvers.solveBoulder = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveIceFill"))
+ .binding(defaults.dungeons.puzzleSolvers.solveIceFill,
+ () -> config.dungeons.puzzleSolvers.solveIceFill,
+ newValue -> config.dungeons.puzzleSolvers.solveIceFill = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveSilverfish"))
+ .binding(defaults.dungeons.puzzleSolvers.solveSilverfish,
+ () -> config.dungeons.puzzleSolvers.solveSilverfish,
+ newValue -> config.dungeons.puzzleSolvers.solveSilverfish = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTrivia"))
+ .binding(defaults.dungeons.puzzleSolvers.solveTrivia,
+ () -> config.dungeons.puzzleSolvers.solveTrivia,
+ newValue -> config.dungeons.puzzleSolvers.solveTrivia = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTeleportMaze"))
.binding(defaults.dungeons.puzzleSolvers.solveTeleportMaze,
@@ -224,109 +232,109 @@ public class DungeonsCategory {
newValue -> config.dungeons.puzzleSolvers.solveTeleportMaze = newValue)
.controller(ConfigUtils.createBooleanController())
.build())
- .build())
+ .build())
- // The Professor (F3/M3)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer"))
- .description(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer.@Tooltip"))
- .binding(defaults.dungeons.theProfessor.fireFreezeStaffTimer,
- () -> config.dungeons.theProfessor.fireFreezeStaffTimer,
- newValue -> config.dungeons.theProfessor.fireFreezeStaffTimer = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay"))
- .description(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay.@Tooltip"))
- .binding(defaults.dungeons.theProfessor.floor3GuardianHealthDisplay,
- () -> config.dungeons.theProfessor.floor3GuardianHealthDisplay,
- newValue -> config.dungeons.theProfessor.floor3GuardianHealthDisplay = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .build())
+ // The Professor (F3/M3)
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer"))
+ .description(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer.@Tooltip"))
+ .binding(defaults.dungeons.theProfessor.fireFreezeStaffTimer,
+ () -> config.dungeons.theProfessor.fireFreezeStaffTimer,
+ newValue -> config.dungeons.theProfessor.fireFreezeStaffTimer = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay"))
+ .description(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay.@Tooltip"))
+ .binding(defaults.dungeons.theProfessor.floor3GuardianHealthDisplay,
+ () -> config.dungeons.theProfessor.floor3GuardianHealthDisplay,
+ newValue -> config.dungeons.theProfessor.floor3GuardianHealthDisplay = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .build())
- // Livid (F5/M5)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableSolidColor"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.enableSolidColor.@Tooltip"))
- .binding(defaults.dungeons.livid.enableSolidColor,
- () -> config.dungeons.livid.enableSolidColor,
- newValue -> config.dungeons.livid.enableSolidColor = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow.@Tooltip"))
- .binding(defaults.dungeons.livid.enableLividColorGlow,
- () -> config.dungeons.livid.enableLividColorGlow,
- newValue -> config.dungeons.livid.enableLividColorGlow = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorBoundingBox"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorBoundingBox.@Tooltip"))
- .binding(defaults.dungeons.livid.enableLividColorBoundingBox,
- () -> config.dungeons.livid.enableLividColorBoundingBox,
- newValue -> config.dungeons.livid.enableLividColorBoundingBox = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText.@Tooltip"))
- .binding(defaults.dungeons.livid.enableLividColorText,
- () -> config.dungeons.livid.enableLividColorText,
- newValue -> config.dungeons.livid.enableLividColorText = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle.@Tooltip"))
- .binding(defaults.dungeons.livid.enableLividColorTitle,
- () -> config.dungeons.livid.enableLividColorTitle,
- newValue -> config.dungeons.livid.enableLividColorTitle = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<String>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.lividColorText"))
- .description(Text.translatable("skyblocker.config.dungeons.livid.lividColorText.@Tooltip"))
- .binding(defaults.dungeons.livid.lividColorText,
- () -> config.dungeons.livid.lividColorText,
- newValue -> config.dungeons.livid.lividColorText = newValue)
- .controller(StringController.createBuilder().build())
- .build())
- .build())
+ // Livid (F5/M5)
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableSolidColor"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.enableSolidColor.@Tooltip"))
+ .binding(defaults.dungeons.livid.enableSolidColor,
+ () -> config.dungeons.livid.enableSolidColor,
+ newValue -> config.dungeons.livid.enableSolidColor = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow.@Tooltip"))
+ .binding(defaults.dungeons.livid.enableLividColorGlow,
+ () -> config.dungeons.livid.enableLividColorGlow,
+ newValue -> config.dungeons.livid.enableLividColorGlow = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorBoundingBox"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorBoundingBox.@Tooltip"))
+ .binding(defaults.dungeons.livid.enableLividColorBoundingBox,
+ () -> config.dungeons.livid.enableLividColorBoundingBox,
+ newValue -> config.dungeons.livid.enableLividColorBoundingBox = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText.@Tooltip"))
+ .binding(defaults.dungeons.livid.enableLividColorText,
+ () -> config.dungeons.livid.enableLividColorText,
+ newValue -> config.dungeons.livid.enableLividColorText = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle.@Tooltip"))
+ .binding(defaults.dungeons.livid.enableLividColorTitle,
+ () -> config.dungeons.livid.enableLividColorTitle,
+ newValue -> config.dungeons.livid.enableLividColorTitle = newValue)
+ .controller(ConfigUtils.createBooleanController())
+ .build())
+ .option(Option.<String>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.lividColorText"))
+ .description(Text.translatable("skyblocker.config.dungeons.livid.lividColorText.@Tooltip"))
+ .binding(defaults.dungeons.livid.lividColorText,
+ () -> config.dungeons.livid.lividColorText,
+ newValue -> config.dungeons.livid.lividColorText = newValue)
+ .controller(StringController.createBuilder().build())
+ .build())
+ .build())
- // Terminal (F7/M7)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveColor"))
- .binding(defaults.dungeons.terminals.solveColor,
- () -> config.dungeons.terminals.solveColor,
- newValue -> config.dungeons.terminals.solveColor = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveOrder"))
- .binding(defaults.dungeons.terminals.solveOrder,
- () -> config.dungeons.terminals.solveOrder,
- newValue -> config.dungeons.terminals.solveOrder = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveStartsWith"))
- .binding(defaults.dungeons.terminals.solveStartsWith,
- () -> config.dungeons.terminals.solveStartsWith,
- newValue -> config.dungeons.terminals.solveStartsWith = newValue)
- .controller(ConfigUtils.createBooleanController())
- .build())
+ // Terminal (F7/M7)
+ .group(OptionGroup.createBuilder()
+