package at.hannibal2.skyhanni.config.features; import at.hannibal2.skyhanni.config.FeatureToggle; import at.hannibal2.skyhanni.config.core.config.Position; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.annotations.Accordion; import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; import io.github.moulberry.moulconfig.annotations.ConfigEditorText; import io.github.moulberry.moulconfig.annotations.ConfigOption; import io.github.moulberry.moulconfig.observer.Property; public class RiftConfig { @ConfigOption(name = "Rift Timer", desc = "") @Accordion @Expose public RiftTimerConfig timer = new RiftTimerConfig(); public static class RiftTimerConfig { @Expose @ConfigOption(name = "Enabled", desc = "Show the remaining rift time, max time, percentage, and extra time changes.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Max Time", desc = "Show max time.") @ConfigEditorBoolean public boolean maxTime = true; @Expose @ConfigOption(name = "Percentage", desc = "Show percentage.") @ConfigEditorBoolean public boolean percentage = true; @Expose public Position timerPosition = new Position(10, 10, false, true); } @ConfigOption(name = "Crux Talisman Progress", desc = "") @Accordion @Expose public CruxTalismanDisplayConfig cruxTalisman = new CruxTalismanDisplayConfig(); public static class CruxTalismanDisplayConfig { @Expose @ConfigOption(name = "Crux Talisman Display", desc = "Display progress of the Crux Talisman on screen.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = false; @Expose @ConfigOption(name = "Compact", desc = "Show a compacted version of the overlay when the talisman is maxed.") @ConfigEditorBoolean public boolean compactWhenMaxed = false; @Expose @ConfigOption(name = "Show Bonuses", desc = "Show bonuses you get from the talisman.") @ConfigEditorBoolean @FeatureToggle public Property showBonuses = Property.of(true); @Expose public Position position = new Position(144, 139, false, true); } @ConfigOption(name = "Enigma Soul Waypoints", desc = "") @Accordion @Expose public EnigmaSoulConfig enigmaSoulWaypoints = new EnigmaSoulConfig(); public static class EnigmaSoulConfig { @Expose @ConfigOption(name = "Enabled", desc = "Click on Enigma Souls in Rift Guides to highlight their location.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Color", desc = "Color of the Enigma Souls.") @ConfigEditorColour public String color = "0:120:13:49:255"; } @ConfigOption(name = "Rift Areas", desc = "") @Accordion @Expose public RiftAreasConfig area = new RiftAreasConfig(); public static class RiftAreasConfig { @ConfigOption(name = "Wyld Woods", desc = "") @Accordion @Expose public WyldWoodsConfig wyldWoodsConfig = new WyldWoodsConfig(); public static class WyldWoodsConfig { @Expose @ConfigOption(name = "Shy Crux Warning", desc = "Shows a warning when a Shy Crux is going to steal your time. " + "Useful if you play without volume.") @ConfigEditorBoolean @FeatureToggle public boolean shyWarning = true; @ConfigOption(name = "Larvas", desc = "") @Accordion @Expose public LarvasConfig larvas = new LarvasConfig(); public static class LarvasConfig { @Expose @ConfigOption(name = "Highlight", desc = "Highlight §cLarvas on trees §7while holding a §eLarva Hook §7in the hand.") @ConfigEditorBoolean @FeatureToggle public boolean highlight = true; @Expose @ConfigOption(name = "Color", desc = "Color of the Larvas.") @ConfigEditorColour public String highlightColor = "0:120:13:49:255"; } @ConfigOption(name = "Odonatas", desc = "") @Accordion @Expose public OdonataConfig odonata = new OdonataConfig(); public static class OdonataConfig { @Expose @ConfigOption(name = "Highlight", desc = "Highlight the small §cOdonatas §7flying around the trees while holding a " + "§eEmpty Odonata Bottle §7in the hand.") @ConfigEditorBoolean @FeatureToggle public boolean highlight = true; @Expose @ConfigOption(name = "Color", desc = "Color of the Odonatas.") @ConfigEditorColour public String highlightColor = "0:120:13:49:255"; } } @ConfigOption(name = "West Village", desc = "") @Accordion @Expose public WestVillageConfig westVillageConfig = new WestVillageConfig(); public static class WestVillageConfig { @ConfigOption(name = "Kloon Hacking", desc = "") @Accordion @Expose public KloonHackingConfig hacking = new KloonHackingConfig(); public static class KloonHackingConfig { @Expose @ConfigOption(name = "Hacking Solver", desc = "Highlights the correct button to click in the hacking inventory.") @ConfigEditorBoolean @FeatureToggle public boolean solver = true; @Expose @ConfigOption(name = "Color Guide", desc = "Tells you which color to pick.") @ConfigEditorBoolean @FeatureToggle public boolean colour = true; @Expose @ConfigOption(name = "Terminal Waypoints", desc = "While wearing the helmet, waypoints will appear at each terminal location.") @ConfigEditorBoolean @FeatureToggle public boolean waypoints = true; } } @Expose @ConfigOption(name = "Dreadfarm", desc = "") @Accordion public DreadfarmConfig dreadfarmConfig = new DreadfarmConfig(); public static class DreadfarmConfig { @Expose @ConfigOption(name = "Agaricus Cap", desc = "Counts down the time until §eAgaricus Cap (Mushroom) " + "§7changes color from brown to red and is breakable.") @ConfigEditorBoolean @FeatureToggle public boolean agaricusCap = true; @ConfigOption(name = "Volt Crux", desc = "") @Accordion @Expose public VoltCruxConfig voltCrux = new VoltCruxConfig(); public static class VoltCruxConfig { @Expose @ConfigOption(name = "Volt Warning", desc = "Shows a warning while a Volt is discharging lightning.") @ConfigEditorBoolean @FeatureToggle public boolean voltWarning = true; @Expose @ConfigOption(name = "Volt Range Highlighter", desc = "Shows the area in which a Volt might strike lightning.") @ConfigEditorBoolean @FeatureToggle public boolean voltRange = true; @Expose @ConfigOption(name = "Volt Range Highlighter Color", desc = "In which color should the Volt range be highlighted?") @ConfigEditorColour public String voltColour = "0:60:0:0:255"; @Expose @ConfigOption(name = "Volt Mood Color", desc = "Change the color of the Volt enemy depending on their mood.") @ConfigEditorBoolean @FeatureToggle public boolean voltMoodMeter = false; } @ConfigOption(name = "Wilted Berberis", desc = "") @Accordion @Expose public WiltedBerberisConfig wiltedBerberis = new WiltedBerberisConfig(); public static class WiltedBerberisConfig { @Expose @ConfigOption(name = "Enabled", desc = "Show Wilted Berberis helper.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Only on Farmland", desc = "Only show the helper while standing on Farmland blocks.") @ConfigEditorBoolean public boolean onlyOnFarmland = false; @Expose @ConfigOption(name = "Hide Particles", desc = "Hide the Wilted Berberis particles.") @ConfigEditorBoolean public boolean hideparticles = false; } } @ConfigOption(name = "Mirrorverse", desc = "") @Accordion @Expose public MirrorVerseConfig mirrorVerseConfig = new MirrorVerseConfig(); public static class MirrorVerseConfig { @ConfigOption(name = "Lava Maze", desc = "") @Accordion @Expose public LavaMazeConfig lavaMazeConfig = new LavaMazeConfig(); public static class LavaMazeConfig { @Expose @ConfigOption(name = "Enabled", desc = "Helps solving the lava maze in the Mirrorverse by showing the correct way.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Look Ahead", desc = "Change how many platforms should be shown in front of you.") @ConfigEditorSlider(minStep = 1, maxValue = 30, minValue = 1) public Property lookAhead = Property.of(3); @Expose @ConfigOption(name = "Rainbow Color", desc = "Show the rainbow color effect instead of a boring monochrome.") @ConfigEditorBoolean public Property rainbowColor = Property.of(true); @Expose @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") @ConfigEditorColour public Property monochromeColor = Property.of("0:60:0:0:255"); @Expose @ConfigOption(name = "Hide Others Players", desc = "Hide other players while doing the lava maze.") @ConfigEditorBoolean @FeatureToggle public boolean hidePlayers = false; } @ConfigOption(name = "Upside Down Parkour", desc = "") @Accordion @Expose public UpsideDownParkourConfig upsideDownParkour = new UpsideDownParkourConfig(); public static class UpsideDownParkourConfig { @Expose @ConfigOption(name = "Enabled", desc = "Helps solving the upside down parkour in the Mirrorverse by showing the correct way.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Look Ahead", desc = "Change how many platforms should be shown in front of you.") @ConfigEditorSlider(minStep = 1, maxValue = 9, minValue = 1) public Property lookAhead = Property.of(3); @Expose @ConfigOption(name = "Outline", desc = "Outlines the top edge of the platforms.") @ConfigEditorBoolean public boolean outline = true; @Expose @ConfigOption(name = "Rainbow Color", desc = "Show the rainbow color effect instead of a boring monochrome.") @ConfigEditorBoolean public Property rainbowColor = Property.of(true); @Expose @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") @ConfigEditorColour public Property monochromeColor = Property.of("0:60:0:0:255"); @Expose @ConfigOption(name = "Hide Others Players", desc = "Hide other players while doing the upside down parkour.") @ConfigEditorBoolean @FeatureToggle public boolean hidePlayers = false; } @ConfigOption(name = "Dance Room Helper", desc = "") @Accordion @Expose public DanceRoomHelperConfig danceRoomHelper = new DanceRoomHelperConfig(); public static class DanceRoomHelperConfig { @Expose @ConfigOption(name = "Enabled", desc = "Helps to solve the dance room in the Mirrorverse by showing multiple tasks at once.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = false; @Expose @ConfigOption(name = "Lines to Show", desc = "How many tasks you should see.") @ConfigEditorSlider(minStep = 1, maxValue = 49, minValue = 1) public int lineToShow = 3; @Expose @ConfigOption(name = "Space", desc = "Change the space between each line.") @ConfigEditorSlider(minStep = 1, maxValue = 10, minValue = -5) public int extraSpace = 0; @Expose @ConfigOption(name = "Hide Other Players", desc = "Hide other players inside the dance room.") @ConfigEditorBoolean public boolean hidePlayers = false; @Expose @ConfigOption(name = "Hide Title", desc = "Hide Instructions, \"§aIt's happening!\" §7and \"§aKeep it up!\" §7titles.") @ConfigEditorBoolean @FeatureToggle public boolean hideOriginalTitle = false; @Expose @ConfigOption(name = "Formatting", desc = "") @Accordion public DanceRoomFormattingConfig danceRoomFormatting = new DanceRoomFormattingConfig(); public static class DanceRoomFormattingConfig { @Expose @ConfigOption(name = "Now", desc = "Formatting for \"Now:\"") @ConfigEditorText public String now = "&7Now:"; @Expose @ConfigOption(name = "Next", desc = "Formatting for \"Next:\"") @ConfigEditorText public String next = "&7Next:"; @Expose @ConfigOption(name = "Later", desc = "Formatting for \"Later:\"") @ConfigEditorText public String later = "&7Later:"; @Expose @ConfigOption(name = "Color Option", desc = "") @Accordion public ColorConfig color = new ColorConfig(); public static class ColorConfig { @Expose @ConfigOption(name = "Move", desc = "Color for the Move instruction") @ConfigEditorText public String move = "&e"; @Expose @ConfigOption(name = "Stand", desc = "Color for the Stand instruction") @ConfigEditorText public String stand = "&e"; @Expose @ConfigOption(name = "Sneak", desc = "Color for the Sneak instruction") @ConfigEditorText public String sneak = "&5"; @Expose @ConfigOption(name = "Jump", desc = "Color for the Jump instruction") @ConfigEditorText public String jump = "&b"; @Expose @ConfigOption(name = "Punch", desc = "Color for the Punch instruction") @ConfigEditorText public String punch = "&d"; @Expose @ConfigOption(name = "Countdown", desc = "Color for the Countdown") @ConfigEditorText public String countdown = "&f"; @Expose @ConfigOption(name = "Default", desc = "Fallback color") @ConfigEditorText public String fallback = "&f"; } } @Expose public Position position = new Position(442, 239, false, true); } @ConfigOption(name = "Tubulator", desc = "") @Accordion @Expose public TubulatorConfig tubulatorConfig = new TubulatorConfig(); public static class TubulatorConfig { @Expose @ConfigOption(name = "Enabled", desc = "Highlights the location of the invisible Tubulator blocks (Laser Parkour).") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Look Ahead", desc = "Change how many platforms should be shown in front of you.") @ConfigEditorSlider(minStep = 1, maxValue = 30, minValue = 1) public Property lookAhead = Property.of(2); @Expose @ConfigOption(name = "Outline", desc = "Outlines the top edge of the platforms.") @ConfigEditorBoolean public boolean outline = true; @Expose @ConfigOption(name = "Rainbow Color", desc = "Show the rainbow color effect instead of a boring monochrome.") @ConfigEditorBoolean public Property rainbowColor = Property.of(true); @Expose @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") @ConfigEditorColour public Property monochromeColor = Property.of("0:60:0:0:255"); @Expose @ConfigOption(name = "Hide Other Players", desc = "Hide other players while doing the lava maze.") @ConfigEditorBoolean @FeatureToggle public boolean hidePlayers = false; } } // @Expose // @ConfigOption(name = "Village Plaza", desc = "") // @Accordion // public VillagePlazaConfig villagePlazaConfig = new VillagePlazaConfig(); // // public static class VillagePlazaConfig { // // } @Expose @ConfigOption(name = "Living Cave", desc = "") @Accordion public LivingCaveConfig livingCaveConfig = new LivingCaveConfig(); public static class LivingCaveConfig { @Expose @ConfigOption(name = "Living Metal Suit Progress", desc = "") @Accordion public LivingMetalSuitProgressConfig livingMetalSuitProgress = new LivingMetalSuitProgressConfig(); public static class LivingMetalSuitProgressConfig { @Expose @ConfigOption(name = "Enabled", desc = "Display Living Metal Suit progress.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = false; @Expose @ConfigOption(name = "Compact", desc = "Show a compacted version of the overlay when the set is maxed.") @ConfigEditorBoolean public boolean compactWhenMaxed = false; @Expose public Position position = new Position(100, 100); } @Expose @ConfigOption(name = "Defense Blocks", desc = "") @Accordion public DefenseBlockConfig defenseBlockConfig = new DefenseBlockConfig(); public static class DefenseBlockConfig { @Expose @ConfigOption(name = "Enabled", desc = "Show a line between Defense blocks and the mob and highlight the blocks.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Hide Particles", desc = "Hide particles around Defense Blocks.") @ConfigEditorBoolean @FeatureToggle public boolean hideParticles = false; @Expose @ConfigOption(name = "Color", desc = "Set the color of the lines, blocks and the entity.") @ConfigEditorColour public Property color = Property.of("0:255:77:104:255"); } @Expose @ConfigOption(name = "Living Metal Helper", desc = "") @Accordion public LivingCaveLivingMetalConfig livingCaveLivingMetalConfig = new LivingCaveLivingMetalConfig(); public static class LivingCaveLivingMetalConfig { @Expose @ConfigOption(name = "Living Metal", desc = "Show a moving animation between Living Metal and the next block.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Hide Particles", desc = "Hide Living Metal particles.") @ConfigEditorBoolean @FeatureToggle public boolean hideParticles = false; } } @Expose @ConfigOption(name = "Colosseum", desc = "") @Accordion public ColosseumConfig colosseumConfig = new ColosseumConfig(); public static class ColosseumConfig { @Expose @ConfigOption(name = "Highlight Blobbercysts", desc = "Highlight Blobbercysts in Bacte fight.") @ConfigEditorBoolean @FeatureToggle public boolean highlightBlobbercysts = true; } @Expose @ConfigOption(name = "Stillgore Chateau", desc = "") @Accordion public StillgoreChateauConfig stillgoreChateauConfig = new StillgoreChateauConfig(); public static class StillgoreChateauConfig { @Expose @ConfigOption(name = "Blood Effigies", desc = "") @Accordion public EffigiesConfig bloodEffigies = new EffigiesConfig(); public static class EffigiesConfig { @Expose @ConfigOption(name = "Enabled", desc = "Show locations of inactive Blood Effigies.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = false; @Expose @ConfigOption(name = "Respawning Soon", desc = "Show effigies that are about to respawn.") @ConfigEditorBoolean @FeatureToggle public boolean respawningSoon = false; @Expose @ConfigOption(name = "Respawning Time", desc = "Time before effigies respawn to show.") @ConfigEditorSlider( minValue = 1, maxValue = 15, minStep = 1 ) public int respwningSoonTime = 3; @Expose @ConfigOption(name = "Unknown Times", desc = "Show effigies without known time.") @ConfigEditorBoolean @FeatureToggle public boolean unknownTime = false; } } // @Expose // @ConfigOption(name = "Mountaintop", desc = "") // @Accordion // public MountaintopConfig mountaintopConfig = new MountaintopConfig(); // // public static class MountaintopConfig { // // } } @Expose @ConfigOption(name = "Motes Sell Price", desc = "") @Accordion public MotesConfig motes = new MotesConfig(); public static class MotesConfig { @Expose @ConfigOption(name = "Show Motes Price", desc = "Show the Motes NPC price in the item lore.") @ConfigEditorBoolean @FeatureToggle public boolean showPrice = true; @Expose @ConfigOption(name = "Burger Stacks", desc = "Set your McGrubber's burger stacks.") @ConfigEditorSlider(minStep = 1, minValue = 0, maxValue = 5) public int burgerStacks = 0; @Expose @ConfigOption(name = "Inventory Value", desc = "") @Accordion public InventoryValueConfig inventoryValue = new InventoryValueConfig(); public static class InventoryValueConfig { @Expose @ConfigOption(name = "Inventory Value", desc = "Show total Motes NPC price for the current opened inventory.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Number Format Type", desc = "Short: 1.2M\n" + "Long: 1,200,000") @ConfigEditorDropdown(values = {"Short", "Long"}) public int formatType = 0; @Expose public Position position = new Position(126, 156, false, true); } } @Expose @ConfigOption(name = "Motes Orbs", desc = "") @Accordion public MotesOrbsConfig motesOrbsConfig = new MotesOrbsConfig(); public static class MotesOrbsConfig { @Expose @ConfigOption(name = "Highlight Motes Orbs", desc = "Highlight flying Motes Orbs.") @ConfigEditorBoolean @FeatureToggle public boolean enabled = true; @Expose @ConfigOption(name = "Hide Particles", desc = "Hide normal Motes Orbs particles.") @ConfigEditorBoolean @FeatureToggle public boolean hideParticles = false; } @Expose @ConfigOption(name = "Highlight Guide", desc = "Highlight things to do in the Rift Guide.") @ConfigEditorBoolean @FeatureToggle public boolean highlightGuide = true; @Expose @ConfigOption(name = "Horsezooka Hider", desc = "Hide horses while holding the Horsezooka in the hand.") @ConfigEditorBoolean @FeatureToggle public boolean horsezookaHider = false; }