diff options
author | Walker Selby <git@walkerselby.com> | 2023-11-16 10:40:55 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-16 11:40:55 +0100 |
commit | 024cd40a3a3e98da87a1ce6eaaebd379f312cc72 (patch) | |
tree | f10ecf557c761c3504247aa6c572a91d7150aad7 /src/main/java/at/hannibal2 | |
parent | ebfbe5d586c40663f58540cd7a0d428633c7298f (diff) | |
download | skyhanni-024cd40a3a3e98da87a1ce6eaaebd379f312cc72.tar.gz skyhanni-024cd40a3a3e98da87a1ce6eaaebd379f312cc72.tar.bz2 skyhanni-024cd40a3a3e98da87a1ce6eaaebd379f312cc72.zip |
Config Updates - Subcategories and Reformatting (#709)
Added new sub category stuff from moul config #709
Diffstat (limited to 'src/main/java/at/hannibal2')
230 files changed, 8204 insertions, 6998 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt index 84bbb2e26..5309a4e2e 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt @@ -249,7 +249,7 @@ import at.hannibal2.skyhanni.features.nether.ashfang.AshfangHideParticles import at.hannibal2.skyhanni.features.nether.ashfang.AshfangNextResetCooldown import at.hannibal2.skyhanni.features.nether.reputationhelper.CrimsonIsleReputationHelper import at.hannibal2.skyhanni.features.rift.RiftAPI -import at.hannibal2.skyhanni.features.rift.area.RiftLarva +import at.hannibal2.skyhanni.features.rift.area.wyldwoods.RiftLarva import at.hannibal2.skyhanni.features.rift.area.colosseum.BlobbercystsHighlight import at.hannibal2.skyhanni.features.rift.area.dreadfarm.RiftAgaricusCap import at.hannibal2.skyhanni.features.rift.area.dreadfarm.RiftWiltedBerberisHelper diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt index 19b77abf3..6227b0ea9 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt @@ -9,7 +9,7 @@ import com.google.gson.JsonPrimitive object ConfigUpdaterMigrator { val logger = LorenzLogger("ConfigMigration") - const val CONFIG_VERSION = 8 + const val CONFIG_VERSION = 9 fun JsonElement.at(chain: List<String>, init: Boolean): JsonElement? { if (chain.isEmpty()) return this if (this !is JsonObject) return null diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java index 33d766fdf..4085eb069 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/Features.java +++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java @@ -2,26 +2,26 @@ package at.hannibal2.skyhanni.config; import at.hannibal2.skyhanni.SkyHanniMod; import at.hannibal2.skyhanni.config.features.About; -import at.hannibal2.skyhanni.config.features.BazaarConfig; -import at.hannibal2.skyhanni.config.features.ChatConfig; -import at.hannibal2.skyhanni.config.features.ChromaConfig; -import at.hannibal2.skyhanni.config.features.CombatConfig; -import at.hannibal2.skyhanni.config.features.CommandsConfig; -import at.hannibal2.skyhanni.config.features.CrimsonIsleConfig; -import at.hannibal2.skyhanni.config.features.DevConfig; -import at.hannibal2.skyhanni.config.features.DungeonConfig; -import at.hannibal2.skyhanni.config.features.EventConfig; -import at.hannibal2.skyhanni.config.features.FishingConfig; -import at.hannibal2.skyhanni.config.features.GUIConfig; -import at.hannibal2.skyhanni.config.features.GardenConfig; -import at.hannibal2.skyhanni.config.features.InventoryConfig; -import at.hannibal2.skyhanni.config.features.ItemAbilityConfig; -import at.hannibal2.skyhanni.config.features.MarkedPlayerConfig; -import at.hannibal2.skyhanni.config.features.MiningConfig; -import at.hannibal2.skyhanni.config.features.MinionsConfig; -import at.hannibal2.skyhanni.config.features.MiscConfig; -import at.hannibal2.skyhanni.config.features.RiftConfig; -import at.hannibal2.skyhanni.config.features.SlayerConfig; +import at.hannibal2.skyhanni.config.features.bazaar.BazaarConfig; +import at.hannibal2.skyhanni.config.features.chat.ChatConfig; +import at.hannibal2.skyhanni.config.features.chroma.ChromaConfig; +import at.hannibal2.skyhanni.config.features.combat.CombatConfig; +import at.hannibal2.skyhanni.config.features.commands.CommandsConfig; +import at.hannibal2.skyhanni.config.features.crimsonisle.CrimsonIsleConfig; +import at.hannibal2.skyhanni.config.features.dev.DevConfig; +import at.hannibal2.skyhanni.config.features.dungeon.DungeonConfig; +import at.hannibal2.skyhanni.config.features.event.EventConfig; +import at.hannibal2.skyhanni.config.features.fishing.FishingConfig; +import at.hannibal2.skyhanni.config.features.gui.GUIConfig; +import at.hannibal2.skyhanni.config.features.garden.GardenConfig; +import at.hannibal2.skyhanni.config.features.inventory.InventoryConfig; +import at.hannibal2.skyhanni.config.features.itemability.ItemAbilityConfig; +import at.hannibal2.skyhanni.config.features.markedplayer.MarkedPlayerConfig; +import at.hannibal2.skyhanni.config.features.mining.MiningConfig; +import at.hannibal2.skyhanni.config.features.minion.MinionsConfig; +import at.hannibal2.skyhanni.config.features.misc.MiscConfig; +import at.hannibal2.skyhanni.config.features.rift.RiftConfig; +import at.hannibal2.skyhanni.config.features.slayer.SlayerConfig; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.Config; import io.github.moulberry.moulconfig.Social; diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/ChatConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/ChatConfig.java deleted file mode 100644 index 9ce9cc5a3..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/ChatConfig.java +++ /dev/null @@ -1,212 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -import at.hannibal2.skyhanni.config.FeatureToggle; -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.ConfigEditorDropdown; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import org.lwjgl.input.Keyboard; - -public class ChatConfig { - - @Expose - @ConfigOption(name = "Peek Chat", desc = "Hold this key to keep the chat open.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_Z) - public int peekChat = Keyboard.KEY_Z; - - @Expose - @ConfigOption(name = "Chat Filter Types", desc = "") - @Accordion - public FilterTypesConfig filterType = new FilterTypesConfig(); - - public static class FilterTypesConfig { - @Expose - @ConfigOption(name = "Hypixel Hub", desc = "Block messages outside SkyBlock in the Hypixel lobby: player joins, loot boxes, prototype lobby messages, radiating generosity and Hypixel tournaments.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hypixelHub = true; - - @Expose - @ConfigOption(name = "Empty", desc = "Hide all the empty messages from the chat.") - @ConfigEditorBoolean - @FeatureToggle - public boolean empty = true; - - @Expose - @ConfigOption(name = "Warping", desc = "Block 'Sending request to join...' and 'Warping...' messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean warping = true; - - @Expose - @ConfigOption(name = "Welcome", desc = "Hide the 'Welcome to SkyBlock' message.") - @ConfigEditorBoolean - @FeatureToggle - public boolean welcome = true; - - @Expose - @ConfigOption(name = "Guild Exp", desc = "Hide Guild EXP messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean guildExp = true; - - @Expose - @ConfigOption(name = "Friend Join Left", desc = "Hide friend join/left messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean friendJoinLeft = false; - - @Expose - @ConfigOption(name = "Winter Gifts", desc = "Hide useless Winter Gift messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean winterGift = false; - - @Expose - @ConfigOption(name = "Powder Mining", desc = "Hide messages while opening chests in the Crystal Hollows. " + - "(Except powder numbers over 1k, essence numbers over 2, Prehistoric Eggs, and Automaton Parts)") - @ConfigEditorBoolean - @FeatureToggle - public boolean powderMining = true; - - @Expose - @ConfigOption(name = "Kill Combo", desc = "Hide messages about the current Kill Combo from the Grandma Wolf Pet.") - @ConfigEditorBoolean - @FeatureToggle - public boolean killCombo = false; - - @Expose - @ConfigOption(name = "Watchdog", desc = "Hide the message where Hypixel is flexing how many players they have banned over the last week.") - @ConfigEditorBoolean - @FeatureToggle - public boolean watchDog = true; - - @Expose - @ConfigOption(name = "Profile Join", desc = "Hide 'You are playing on profile' and 'Profile ID' chat messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean profileJoin = true; - - //TODO remove - @Expose - @ConfigOption(name = "Others", desc = "Hide other annoying messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean others = false; - } - - @Expose - @ConfigOption(name = "Player Messages", desc = "") - @Accordion - public PlayerMessagesConfig playerMessage = new PlayerMessagesConfig(); - - public static class PlayerMessagesConfig { - @Expose - @ConfigOption(name = "Player Rank Hider", desc = "Hide player ranks in all chat messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean playerRankHider = false; - - @Expose - @ConfigOption(name = "Chat Filter", desc = "Scan messages sent by players for blacklisted words and gray out the message if any are found.") - @ConfigEditorBoolean - @FeatureToggle - public boolean chatFilter = false; - } - - @Expose - @ConfigOption(name = "Player Chat Symbols", desc = "") - @Accordion - public ChatSymbols chatSymbols = new ChatSymbols(); - - public static class ChatSymbols { - - @Expose - @ConfigOption(name = "Enabled", desc = "Adds extra symbols to the chat such as those from ironman, " + - "stranded, bingo or nether factions and places them next to your regular player emblems. " + - "§cDoes not work with hide rank hider!") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Chat Symbol Location", desc = "Determines where the symbols should go in chat in relation to the " + - "player's name. Hidden will hide all emblems from the chat. §eRequires above setting to be on to hide the symbols.") - @ConfigEditorDropdown(values = {"Left", "Right", "Hidden"}) - public int symbolLocation = 0; - } - - @Expose - @ConfigOption(name = "Dungeon Filter", desc = "Hide annoying messages in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean dungeonMessages = true; - - @Expose - @ConfigOption(name = "Dungeon Boss Messages", desc = "Hide messages from the Watcher and bosses in the Dungeon.") - @ConfigEditorBoolean - @FeatureToggle - public boolean dungeonBossMessages = false; - - @Expose - @ConfigOption(name = "Hide Far Deaths", desc = "Hide other players' death messages, " + - "except for players who are nearby or during Dungeons/a Kuudra fight.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideFarDeathMessages = false; - //TODO jawbus + thunder - - @Expose - @ConfigOption(name = "Compact Potion Messages", desc = "") - @Accordion - public CompactPotionConfig compactPotionMessages = new CompactPotionConfig(); - - public static class CompactPotionConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Shorten chat messages about player potion effects.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Clickable Chat Message", desc = "Makes the Compact Potion message open the Potion effects menu on click.") - @ConfigEditorBoolean - public boolean clickableChatMessage = true; - } - - @Expose - @ConfigOption(name = "Compact Bestiary Message", desc = "Shorten the Bestiary level up message, showing additional information when hovering.") - @ConfigEditorBoolean - @FeatureToggle - public boolean compactBestiaryMessage = true; - - @Expose - @ConfigOption(name = "Arachne Hider", desc = "Hide chat messages about the Arachne Fight while outside of §eArachne's Sanctuary§7.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideArachneMessages = false; - - @Expose - @ConfigOption( - name = "Sacks Hider", - desc = "Hide the chat's sack change message with this, " + - "not in Hypixel settings, for mods to access sack data in new features." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean hideSacksChange = false; - - @Expose - @ConfigOption( - name = "Translator", - desc = "Click on a message to translate it into English. " + - "Use §e/shcopytranslation§7 to get the translation from English. " + - "§cTranslation is not guaranteed to be 100% accurate." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean translator = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/CombatConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/CombatConfig.java deleted file mode 100644 index d0d69afba..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/CombatConfig.java +++ /dev/null @@ -1,721 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -import at.hannibal2.skyhanni.config.FeatureToggle; -import at.hannibal2.skyhanni.config.core.config.Position; -import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostFormatting; -import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil; -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.ConfigEditorButton; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; -import io.github.moulberry.moulconfig.annotations.ConfigEditorInfoText; -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; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class CombatConfig { - - @Expose - @ConfigOption(name = "Damage Indicator", desc = "") - @Accordion - public DamageIndicatorConfig damageIndicator = new DamageIndicatorConfig(); - - public static class DamageIndicatorConfig { - - @Expose - @ConfigOption(name = "Damage Indicator Enabled", desc = "Show the boss' remaining health.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Healing Chat Message", desc = "Sends a chat message when a boss heals themself.") - @ConfigEditorBoolean - public boolean healingMessage = false; - - @Expose - @ConfigOption( - name = "Boss Name", - desc = "Change how the boss name should be displayed.") - @ConfigEditorDropdown(values = {"Hidden", "Full Name", "Short Name"}) - public int bossName = 1; - - @Expose - @ConfigOption( - name = "Select Boss", - desc = "Change what type of boss you want the damage indicator be enabled for." - ) - @ConfigEditorDraggableList( - exampleText = { - "§bDungeon All", - "§bNether Mini Bosses", - "§bVanquisher", - "§bEndstone Protector (not tested)", - "§bEnder Dragon (not finished)", - "§bRevenant Horror", - "§bTarantula Broodfather", - "§bSven Packmaster", - "§bVoidgloom Seraph", - "§bInferno Demonlord", - "§bHeadless Horseman (bugged)", - "§bDungeon Floor 1", - "§bDungeon Floor 2", - "§bDungeon Floor 3", - "§bDungeon Floor 4", - "§bDungeon Floor 5", - "§bDungeon Floor 6", - "§bDungeon Floor 7", - "§bDiana Mobs", - "§bSea Creatures", - "Dummy", - "§bArachne", - "§bThe Rift Bosses", - "§bRiftstalker Bloodfiend", - "§6Reindrake" - } - ) - //TODO only show currently working and tested features - public List<Integer> bossesToShow = new ArrayList<>(Arrays.asList(0, 1, 2, 5, 6, 7, 8, 9, 18, 19, 21, 22, 23, 24)); - - @Expose - @ConfigOption(name = "Hide Damage Splash", desc = "Hiding damage splashes near the damage indicator.") - @ConfigEditorBoolean - public boolean hideDamageSplash = false; - - @Expose - @ConfigOption(name = "Damage Over Time", desc = "Show damage and health over time below the damage indicator.") - @ConfigEditorBoolean - public boolean showDamageOverTime = false; - - @Expose - @ConfigOption(name = "Hide Nametag", desc = "Hide the vanilla nametag of damage indicator bosses.") - @ConfigEditorBoolean - public boolean hideVanillaNametag = false; - - @Expose - @ConfigOption(name = "Time to Kill", desc = "Show the time it takes to kill the slayer boss.") - @ConfigEditorBoolean - public boolean timeToKillSlayer = true; - - - @Expose - @ConfigOption(name = "Ender Slayer", desc = "") - @Accordion - public EnderSlayerConfig enderSlayer = new EnderSlayerConfig(); - - public static class EnderSlayerConfig { - - @Expose - @ConfigOption(name = "Laser Phase Timer", desc = "Show a timer when the laser phase will end.") - @ConfigEditorBoolean - public boolean laserPhaseTimer = false; - - @Expose - @ConfigOption(name = "Health During Laser", desc = "Show the health of Voidgloom Seraph 4 during the laser phase.") - @ConfigEditorBoolean - public boolean showHealthDuringLaser = false; - } - - @Expose - @ConfigOption(name = "Vampire Slayer", desc = "") - @Accordion - public VampireSlayerConfig vampireSlayer = new VampireSlayerConfig(); - - public static class VampireSlayerConfig { - @Expose - @ConfigOption(name = "HP Until Steak", desc = "Show the amount of HP missing until the Steak can be used on the Vampire Slayer on top of the boss.") - @ConfigEditorBoolean - public boolean hpTillSteak = false; - - @Expose - @ConfigOption(name = "Mania Circles", desc = "Show a timer until the boss leaves the invincible Mania Circles state.") - @ConfigEditorBoolean - public boolean maniaCircles = false; - - @Expose - @ConfigOption(name = "Percentage HP", desc = "Show the percentage of HP next to the HP.") - @ConfigEditorBoolean - public boolean percentage = false; - } - } - - @Expose - @ConfigOption(name = "Ghost Counter", desc = "") - @Accordion - public GhostCounterConfig ghostCounter = new GhostCounterConfig(); - - public static class GhostCounterConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Enable the ghost counter (invisible creepers in the Dwarven Mines The Mist area).") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Display Text", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§6Ghosts Counter", - " §bGhost Killed: 42", - " §bSorrow: 6", - " §bGhost since Sorrow: 1", - " §bGhosts/Sorrow: 5", - " §bVolta: 6", - " §bPlasma: 8", - " §bGhostly Boots: 1", - " §bBag Of Cash: 4", - " §bAvg Magic Find: 271", - " §bScavenger Coins: 15,000", - " §bKill Combo: 14", - " §bHighest Kill Combo: 96", - " §bSkill XP Gained: 145,648", - " §bBestiary 1: 0/10", - " §bXP/h: 810,410", - " §bKills/h: 420", - " §bETA: 14d", - " §bMoney/h: 13,420,069", - " §bMoney made: 14B" - } - ) - public List<Integer> ghostDisplayText = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 9, 10, 11, 12)); - - @ConfigOption(name = "Text Formatting", desc = "") - @Accordion - @Expose - public TextFormattingConfig textFormatting = new TextFormattingConfig(); - - public static class TextFormattingConfig { - - @ConfigOption(name = "§eText Formatting Info", desc = "§e%session% §ris §e§lalways §rreplaced with\n" + - "§7the count for your current session.\n" + - "§7Reset when restarting the game.\n" + - "§7You can use §e&Z §7color code to use SBA chroma.") - @ConfigEditorInfoText - public boolean formatInfo = false; - - @ConfigOption(name = "Reset Formatting", desc = "Reset formatting to default text.") - @ConfigEditorButton(buttonText = "Reset") - public Runnable resetFormatting = GhostFormatting.INSTANCE::reset; - - @ConfigOption(name = "Export Formatting", desc = "Export current formatting to clipboard.") - @ConfigEditorButton(buttonText = "Export") - public Runnable exportFormatting = GhostFormatting.INSTANCE::export; - - @ConfigOption(name = "Import Formatting", desc = "Import formatting from clipboard.") - @ConfigEditorButton(buttonText = "Import") - public Runnable importFormatting = GhostFormatting.INSTANCE::importFormat; - - @Expose - @ConfigOption(name = "Title", desc = "Title Line.") - @ConfigEditorText - public String titleFormat = "&6Ghost Counter"; - - @Expose - @ConfigOption(name = "Ghost Killed", desc = "Ghost Killed line.\n§e%value% §ris replaced with\n" + - "Ghost Killed.\n" + - "§e%session% §7is replaced with Ghost killed") - @ConfigEditorText - public String ghostKilledFormat = " &6Ghost Killed: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Sorrows", desc = "Sorrows drop line.\n" + - "§e%value% §7is replaced with\nsorrows dropped.") - @ConfigEditorText - public String sorrowsFormat = " &6Sorrow: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Ghost Since Sorrow", desc = "Ghost Since Sorrow line.\n" + - "§e%value% §7is replaced with\nGhost since last sorrow drop.") - @ConfigEditorText - public String ghostSinceSorrowFormat = " &6Ghost since Sorrow: &b%value%"; - - @Expose - @ConfigOption(name = "Ghost Kill Per Sorrow", desc = "Ghost Kill Per Sorrow line.\n" + - "§e%value% §7is replaced with\naverage ghost kill per sorrow drop.") - @ConfigEditorText - public String ghostKillPerSorrowFormat = " &6Ghosts/Sorrow: &b%value%"; - - @Expose - @ConfigOption(name = "Voltas", desc = "Voltas drop line.\n" + - "§e%value% §7is replaced with\nvoltas dropped.") - @ConfigEditorText - public String voltasFormat = " &6Voltas: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Plasmas", desc = "Plasmas drop line.\n" + - "§e%value% §7is replaced with\nplasmas dropped.") - @ConfigEditorText - public String plasmasFormat = " &6Plasmas: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Ghostly Boots", desc = "Ghostly Boots drop line.\n" + - "§e%value% §7is replaced with\nGhostly Boots dropped.") - @ConfigEditorText - public String ghostlyBootsFormat = " &6Ghostly Boots: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Bag Of Cash", desc = "Bag Of Cash drop line.\n" + - "§e%value% §7is replaced with\nBag Of Cash dropped.") - @ConfigEditorText - public String bagOfCashFormat = " &6Bag Of Cash: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Average Magic Find", desc = "Average Magic Find line.\n" + - "§e%value% §7is replaced with\nAverage Magic Find.") - @ConfigEditorText - public String avgMagicFindFormat = " &6Avg Magic Find: &b%value%"; - - @Expose - @ConfigOption(name = "Scavenger Coins", desc = "Scavenger Coins line.\n" + - "§e%value% §7is replaced with\nCoins earned from kill ghosts.\nInclude: Scavenger Enchant, Scavenger Talismans, Kill Combo.") - @ConfigEditorText - public String scavengerCoinsFormat = " &6Scavenger Coins: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Kill Combo", desc = "Kill Combo line.\n" + - "§e%value% §7is replaced with\nYour current kill combo.") - @ConfigEditorText - public String killComboFormat = " &6Kill Combo: &b%value%"; - - @Expose - @ConfigOption(name = "Highest Kill Combo", desc = "Highest Kill Combo line.\n" + - "§e%value% §7is replaced with\nYour current highest kill combo.") - @ConfigEditorText - public String highestKillComboFormat = " &6Highest Kill Combo: &b%value% &7(%session%)"; - - @Expose - @ConfigOption(name = "Skill XP Gained", desc = "Skill XP Gained line.\n" + - "§e%value% §7is replaced with\nSkill XP Gained from killing Ghosts.") - @ConfigEditorText - public String skillXPGainFormat = " &6Skill XP Gained: &b%value% &7(%session%)"; - - @ConfigOption(name = "Bestiary Formatting", desc = "") - @Accordion - @Expose - public BestiaryFormattingConfig bestiaryFormatting = new BestiaryFormattingConfig(); - - public static class BestiaryFormattingConfig { - - @Expose - @ConfigOption(name = "Bestiary", desc = "Bestiary Progress line.\n§e%value% §7is replaced with\n" + - "Your current progress to next level.\n" + - "§e%currentLevel% &7is replaced with your current bestiary level\n" + - "§e%nextLevel% §7is replaced with your current bestiary level +1.\n" + - "§e%value% §7is replaced with one of the text below.") - @ConfigEditorText - public String base = " &6Bestiary %display%: &b%value%"; - - @Expose - @ConfigOption(name = "No Data", desc = "Text to show when you need to open the\nBestiary Menu to gather data.") - @ConfigEditorText - public String openMenu = "§cOpen Bestiary Menu !"; - - @Expose - @ConfigOption(name = "Maxed", desc = "Text to show when your bestiary for ghost is at max level.\n" + - "§e%currentKill% §7is replaced with your current total kill.") - @ConfigEditorText - public String maxed = "%currentKill% (&c&lMaxed!)"; - - @Expose - @ConfigOption(name = "Progress to Max", desc = "Text to show progress when the §eMaxed Bestiary §7option is §aON\n" + - "§e%currentKill% §7is replaced with your current total kill.") - @ConfigEditorText - public String showMax_progress = "%currentKill%/250k (%percentNumber%%)"; - - @Expose - @ConfigOption(name = "Progress", desc = "Text to show progress when the §eMaxed Bestiary§7 option is §cOFF\n" + - "§e%currentKill% §7is replaced with how many kill you have to the next level.\n" + - "§e%killNeeded% §7is replaced with how many kill you need to reach the next level.") - @ConfigEditorText - public String progress = "%currentKill%/%killNeeded%"; - } - - - @ConfigOption(name = "XP Per Hour Formatting", desc = "") - @Accordion - @Expose - public XPHourFormattingConfig xpHourFormatting = new XPHourFormattingConfig(); - - public static class XPHourFormattingConfig { - - @Expose - @ConfigOption(name = "XP/h", desc = "XP Per Hour line.\n" + - "§e%value% §7is replaced with one of the text below.") - @ConfigEditorText - public String base = " &6XP/h: &b%value%"; - - @Expose - @ConfigOption(name = "No Data", desc = "XP Per Hour line.\n§e%value% §7is replaced with\nEstimated amount of combat xp you gain per hour.") - @ConfigEditorText - public String noData = "&bN/A"; - - @Expose - @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + - "when you are doing nothing for a given amount of seconds") - @ConfigEditorText - public String paused = "&c(PAUSED)"; - } - - - @ConfigOption(name = "ETA Formatting", desc = "") - @Accordion - @Expose - public ETAFormattingConfig etaFormatting = new ETAFormattingConfig(); - - public static class ETAFormattingConfig { - @Expose - @ConfigOption(name = "ETA to next level", desc = "ETA To Next Level Line.\n" + - "§e%value% §7is replaced with one of the text below.") - @ConfigEditorText - public String base = " &6ETA: &b%value%"; - - @Expose - @ConfigOption(name = "Maxed!", desc = "So you really maxed ghost bestiary ?") - @ConfigEditorText - public String maxed = "&c&lMAXED!"; - - @Expose - @ConfigOption(name = "No Data", desc = "Start killing some ghosts !") - @ConfigEditorText - public String noData = "&bN/A"; - - @Expose - @ConfigOption(name = "Progress", desc = "Text to show progress to next level.") - @ConfigEditorText - public String progress = "&b%value%"; - - @Expose - @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + - "when you are doing nothing for a given amount of seconds") - @ConfigEditorText - public String paused = "&c(PAUSED)"; - - @Expose - @ConfigOption(name = "Time", desc = "§e%days% §7is replaced with days remaining.\n" + - "§e%hours% §7is replaced with hours remaining.\n" + - "§e%minutes% §7is replaced with minutes remaining.\n" + - "§e%seconds% §7is replaced with seconds remaining.") - @ConfigEditorText - public String time = "&6%days%%hours%%minutes%%seconds%"; - } - - @ConfigOption(name = "Kill Per Hour Formatting", desc = "") - @Expose - @Accordion - public KillHourFormattingConfig killHourFormatting = new KillHourFormattingConfig(); - - public static class KillHourFormattingConfig { - @Expose - @ConfigOption(name = "Kill/h", desc = "Kill Per Hour line.\n§e%value% §7is replaced with\nEstimated kills per hour you get.") - @ConfigEditorText - public String base = " &6Kill/h: &b%value%"; - - @Expose - @ConfigOption(name = "No Data", desc = "Start killing some ghosts !") - @ConfigEditorText - public String noData = "&bN/A"; - - @Expose - @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + - "when you are doing nothing for a given amount of seconds") - @ConfigEditorText - public String paused = "&c(PAUSED)"; - } - - - @Expose - @ConfigOption(name = "Money Per Hour", desc = "Money Per Hour.\n§e%value% §7is replaced with\nEstimated money you get per hour\n" + - "Calculated with your kill per hour and your average magic find.") - @ConfigEditorText - public String moneyHourFormat = " &6$/h: &b%value%"; - - @Expose - @ConfigOption(name = "Money made", desc = "Calculate the money you made.\nInclude §eSorrow§7, §ePlasma§7, §eVolta§7, §e1M coins drop\n" + - "§eGhostly Boots§7, §eScavenger coins.\n" + - "§cUsing current Sell Offer value.") - @ConfigEditorText - public String moneyMadeFormat = " &6Money made: &b%value%"; - } - - @Expose - @ConfigOption(name = "Extra space", desc = "Space between each line of text.") - @ConfigEditorSlider( - minValue = -5, - maxValue = 10, - minStep = 1) - public int extraSpace = 1; - - @Expose - @ConfigOption(name = "Pause Timer", desc = "How many seconds does it wait before pausing.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 20, - minStep = 1 - ) - public int pauseTimer = 3; - - @Expose - @ConfigOption(name = "Show only in The Mist", desc = "Show the overlay only when you are in The Mist.") - @ConfigEditorBoolean - public boolean onlyOnMist = true; - - @Expose - @ConfigOption(name = "Maxed Bestiary", desc = "Show progress to max bestiary instead of next level.") - @ConfigEditorBoolean - public boolean showMax = false; - - @ConfigOption(name = "Reset", desc = "Reset the counter.") - @ConfigEditorButton(buttonText = "Reset") - public Runnable resetCounter = GhostUtil.INSTANCE::reset; - - @Expose - public Position position = new Position(50, 50, false, true); - } - - @Expose - @ConfigOption(name = "Summonings", desc = "") - @Accordion - public SummoningsConfig summonings = new SummoningsConfig(); - - public static class SummoningsConfig { - - @Expose - @ConfigOption(name = "Summoning Soul Display", desc = "Show the name of dropped Summoning Souls laying on the ground. " + - "§cNot working in Dungeons if Skytils' 'Hide Non-Starred Mobs Nametags' feature is enabled!") - @ConfigEditorBoolean - @FeatureToggle - public boolean summoningSoulDisplay = false; - - @Expose - @ConfigOption(name = "Summoning Mob Display", desc = "Show the health of your spawned summons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean summoningMobDisplay = false; - - @Expose - public Position summoningMobDisplayPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Summoning Mob Nametag", desc = "Hide the nametag of your spawned summons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean summoningMobHideNametag = false; - - @Expose - @ConfigOption(name = "Summoning Mob Color", desc = "Marks own summons green.") - @ConfigEditorBoolean - @FeatureToggle - public boolean summoningMobColored = false; - } - - @Expose - @ConfigOption(name = "Mobs", desc = "") - @Accordion - public MobsConfig mobs = new MobsConfig(); - - public static class MobsConfig { - - @Expose - @ConfigOption(name = "Highlighters", desc = "") - public boolean highlighters = false; - - @Expose - @ConfigOption(name = "Area Boss", desc = "Highlight Golden Ghoul, Old Wolf, Voidling Extremist and Millenia-Aged Blaze.") - @ConfigEditorBoolean - @FeatureToggle - public boolean areaBossHighlight = true; - - @Expose - @ConfigOption(name = "Arachne Keeper", desc = "Highlight the Arachne Keeper in the Spider's Den in purple color.") - @ConfigEditorBoolean - @FeatureToggle - public boolean arachneKeeperHighlight = true; - - @Expose - @ConfigOption(name = "Corleone", desc = "Highlight Boss Corleone in the Crystal Hollows.") - @ConfigEditorBoolean - @FeatureToggle - public boolean corleoneHighlighter = true; - - @Expose - @ConfigOption(name = "Zealot", desc = "Highlight Zealots and Bruisers in The End.") - @ConfigEditorBoolean - @FeatureToggle - public boolean zealotBruiserHighlighter = false; - - @Expose - @ConfigOption( - name = "Special Zealots", - desc = "Highlight Special Zealots (the ones that drop Summoning Eyes) in the End." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean specialZealotHighlighter = true; - - @Expose - @ConfigOption(name = "Corrupted Mob", desc = "Highlight corrupted mobs in purple color.") - @ConfigEditorBoolean - @FeatureToggle - public boolean corruptedMobHighlight = false; - - @Expose - @ConfigOption(name = "Arachne Boss", desc = "Highlight the Arachne boss in red and mini-bosses in orange.") - @ConfigEditorBoolean - @FeatureToggle - public boolean arachneBossHighlighter = true; - - @Expose - @ConfigOption(name = "Respawn Timers", desc = "") - public boolean timers = false; - - @Expose - @ConfigOption( - name = "Area Boss", - desc = "Show a timer when Golden Ghoul, Old Wolf, Voidling Extremist or Millenia-Aged Blaze respawns. " + - "§cSometimes it takes 20-30 seconds to calibrate correctly." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean areaBossRespawnTimer = false; - - @Expose - @ConfigOption( - name = "Arachne Spawn Timer", - desc = "Show a timer when Arachne fragments or crystals are placed to indicate how long " + - "until the boss will spawn. §cTimer may be 1-2 seconds off." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean showArachneSpawnTimer = true; - - @Expose - @ConfigOption(name = "Enderman TP Hider", desc = "Stops the Enderman Teleportation animation.") - @ConfigEditorBoolean - @FeatureToggle - public boolean endermanTeleportationHider = true; - - @Expose - @ConfigOption(name = "Arachne Minis Hider", desc = "Hides the nametag above Arachne minis.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideNameTagArachneMinis = true; - } - - @Expose - @ConfigOption(name = "Bestiary", desc = "") - @Accordion - public BestiaryConfig bestiary = new BestiaryConfig(); - - public static class BestiaryConfig { - @Expose - @ConfigOption(name = "Enable", desc = "Show Bestiary Data overlay in the Bestiary menu.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Number format", desc = "Short: 1.1k\nLong: 1.100") - @ConfigEditorDropdown(values = {"Short", "Long"}) - public int numberFormat = 0; - - @Expose - @ConfigOption(name = "Display type", desc = "Choose what the display should show") - @ConfigEditorDropdown(values = { - "Global to max", - "Global to next tier", - "Lowest total kills", - "Highest total kills", - "Lowest kills needed to max", - "Highest kills needed to max", - "Lowest kills needed to next tier", - "Highest kills needed to next tier" - }) - public int displayType = 0; - - @Expose - @ConfigOption(name = "Hide maxed", desc = "Hide maxed mobs.") - @ConfigEditorBoolean - public boolean hideMaxed = false; - - @Expose - @ConfigOption(name = "Replace Romans", desc = "Replace Roman numerals (IX) with regular numbers (9)") - @ConfigEditorBoolean - public boolean replaceRoman = false; - - @Expose - public Position position = new Position(100, 100, false, true); - } - - @Expose - @ConfigOption(name = "Ender Node Tracker", desc = "") - @Accordion - public EnderNodeConfig enderNodeTracker = new EnderNodeConfig(); - - public static class EnderNodeConfig { - @Expose - @ConfigOption( - name = "Enabled", - desc = "Tracks all of your drops from mining Ender Nodes in the End.\n" + - "Also tracks drops from Endermen." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption( - name = "Text Format", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§5§lEnder Node Tracker", - "§d1,303 Ender Nodes Mined", - "§615.3M Coins Made", - " ", - "§b123 §cEndermite Nest", - "§b832 §aEnchanted End Stone", - "§b230 §aEnchanted Obsidian", - "§b1630 §aEnchanted Ender Pearl", - "§b85 §aGrand Experience Bottle", - "§b4 §9Titanic Experience Bottle", - "§b15 §9End Stone Shulker", - "§b53 §9End Stone Geode", - "§b10 §d◆ Magical Rune I", - "§b24 §5Ender Gauntlet", - "§b357 §5Mite Gel", - "§b2 §cShrimp The Fish", - " ", - "§b200 §5Ender Armor", - "§b24 §5Ender Helmet", - "§b24 §5Ender Chestplate", - "§b24 §5Ender Leggings", - "§b24 §5Ender Boots", - "§b24 §5Ender Necklace", - "§f10§7-§a8§7-§93§7-§52§7-§61 §fEnderman Pet", - " " - } - ) - public Property<List<Integer>> textFormat = Property.of(new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 16, 17, 23))); - - @Expose - public Position position = new Position(10, 80, false, true); - } - - @Expose - @ConfigOption(name = "Hide Damage Splash", desc = "Hide all damage splashes anywhere in SkyBlock.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideDamageSplash = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/CommandsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/CommandsConfig.java deleted file mode 100644 index cb127dc11..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/CommandsConfig.java +++ /dev/null @@ -1,115 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -import at.hannibal2.skyhanni.config.FeatureToggle; -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.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import org.lwjgl.input.Keyboard; - -public class CommandsConfig { - - @ConfigOption(name = "Tab Complete", desc = "") - @Accordion - @Expose - public TabCompleteConfig tabComplete = new TabCompleteConfig(); - - public static class TabCompleteConfig { - - @Expose - @ConfigOption(name = "Warps", desc = "Tab complete the warp-point names when typing §e/warp <TAB>§7.") - @ConfigEditorBoolean - @FeatureToggle - public boolean warps = true; - - @Expose - @ConfigOption(name = "Island Players", desc = "Tab complete other players on the same island.") - public boolean islandPlayers = true; - - @Expose - @ConfigOption(name = "Friends", desc = "Tab complete friends from your friends list.") - @ConfigEditorBoolean - @FeatureToggle - public boolean friends = true; - - @Expose - @ConfigOption(name = "Only Best Friends", desc = "Only Tab Complete best friends.") - @ConfigEditorBoolean - @FeatureToggle - public boolean onlyBestFriends = false; - - @Expose - @ConfigOption(name = "Party", desc = "Tab complete Party Members.") - @ConfigEditorBoolean - @FeatureToggle - public boolean party = true; - - @Expose - @ConfigOption(name = "VIP Visits", desc = "Tab complete the visit to special users with cake souls on it.") - @ConfigEditorBoolean - @FeatureToggle - public boolean vipVisits = true; - - @Expose - @ConfigOption(name = "/gfs Sack", desc = "Tab complete §e/gfs §7sack items.") - @ConfigEditorBoolean - @FeatureToggle - public boolean gfsSack = true; - - @Expose - @ConfigOption(name = "Party Commands", desc = "Tab complete commonly used party commands.") - @ConfigEditorBoolean - @FeatureToggle - public boolean partyCommands = true; - - @Expose - @ConfigOption(name = "View Recipe", desc = "Tab complete item IDs in the the Hypixel command §e/viewrecipe§7. Only items with recipes are tab completed.") - @ConfigEditorBoolean - @FeatureToggle - public boolean viewrecipeItems = true; - } - - @ConfigOption(name = "Fandom Wiki for §e/wiki", desc = "") - @Accordion - @Expose - public FandomWikiCommmandConfig fandomWiki = new FandomWikiCommmandConfig(); - - public static class FandomWikiCommmandConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Use Fandom Wiki (§ehypixel-skyblock.fandom.com§7) instead of the Hypixel wiki (§ewiki.hypixel.net§7) in most wiki-related chat messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Skip Chat", desc = "Directly opens the Fandom Wiki instead of sending the §e\"Click to search for this thing on the Fandom Wiki\"§7 message beforehand.") - @ConfigEditorBoolean - public boolean skipWikiChat = false; - - @Expose - @ConfigOption(name = "Fandom Wiki Key", desc = "Search for an item on Fandom Wiki with this keybind.\n§4For optimal experiences, do §lNOT§r §4bind this to a mouse button.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int fandomWikiKeybind = Keyboard.KEY_NONE; - } - - @ConfigOption(name = "Party Commands", desc = "Shortens party commands and allows tab-completing for them. " + - "\n§eCommands: /pt /pp /pko /pk §7SkyBlock command §e/pt §7to check the play time still works.") - @Expose - @ConfigEditorBoolean - @FeatureToggle - public boolean shortCommands = true; - - @Expose - @ConfigOption(name = "Replace Warp Is", desc = "Adds §e/warp is §7alongside §e/is§7. Idk why. Ask §cKaeso") - @ConfigEditorBoolean - @FeatureToggle - public boolean replaceWarpIs = false; - - @Expose - @ConfigOption(name = "/viewrecipe Lower Case", desc = "Adds support for lower case item IDs to the Hypixel command §e/viewrecipe§7.") - @ConfigEditorBoolean - @FeatureToggle - public boolean viewRecipeLowerCase = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/CrimsonIsleConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/CrimsonIsleConfig.java deleted file mode 100644 index cb94035a7..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/CrimsonIsleConfig.java +++ /dev/null @@ -1,157 +0,0 @@ -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.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import org.lwjgl.input.Keyboard; - -public class CrimsonIsleConfig { - - @ConfigOption(name = "Ashfang", desc = "") - @Accordion - @Expose - public AshfangConfig ashfang = new AshfangConfig(); - - public static class AshfangConfig { - - @ConfigOption(name = "Gravity Orbs", desc = "") - @Accordion - @Expose - public GravityOrbsConfig gravityOrbs = new GravityOrbsConfig(); - - public static class GravityOrbsConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Shows the Gravity Orbs more clearly.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Color", desc = "Color of the Gravity Orbs.") - @ConfigEditorColour - public String color = "0:120:255:85:85"; - } - - @ConfigOption(name = "Blazing Souls", desc = "") - @Accordion - @Expose - public BlazingSoulsColor blazingSouls = new BlazingSoulsColor(); - - public static class BlazingSoulsColor { - - @Expose - @ConfigOption(name = "Enabled", desc = "Shows the Blazing Souls more clearly.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Souls Color", desc = "Color of the Blazing Souls.") - @ConfigEditorColour - public String color = "0:245:85:255:85"; - } - - @ConfigOption(name = "Hide Stuff", desc = "") - @Accordion - @Expose - public HideAshfangConfig hide = new HideAshfangConfig(); - - public static class HideAshfangConfig { - - @Expose - @ConfigOption(name = "Hide Particles", desc = "Hide particles around the Ashfang boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean particles = false; - - @Expose - @ConfigOption(name = "Hide Full Names", desc = "Hide the names of full health blazes around Ashfang (only useful when highlight blazes is enabled)") - @ConfigEditorBoolean - @FeatureToggle - public boolean fullNames = false; - - @Expose - @ConfigOption(name = "Hide Damage Splash", desc = "Hide damage splashes around Ashfang.") - @ConfigEditorBoolean - @FeatureToggle - public boolean damageSplash = false; - } - - @Expose - @ConfigOption(name = "Highlight Blazes", desc = "Highlight the different blazes in their respective colors.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightBlazes = false; - - @Expose - @ConfigOption(name = "Freeze Cooldown", desc = "Show the cooldown for how long Ashfang blocks your abilities.") - @ConfigEditorBoolean - @FeatureToggle - public boolean freezeCooldown = false; - - @Expose - public Position freezeCooldownPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Reset Time", desc = "Show the cooldown until Ashfang pulls his underlings back.") - @ConfigEditorBoolean - @FeatureToggle - public boolean nextResetCooldown = false; - - @Expose - public Position nextResetCooldownPos = new Position(10, 10, false, true); - } - - @ConfigOption(name = "Reputation Helper", desc = "") - @Accordion - @Expose - public ReputationHelperConfig reputationHelper = new ReputationHelperConfig(); - - public static class ReputationHelperConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Enable features around Reputation features in the Crimson Isle.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Use Hotkey", desc = "Only show the Reputation Helper while pressing the hotkey.") - @ConfigEditorBoolean - public boolean useHotkey = false; - - @Expose - @ConfigOption(name = "Hotkey", desc = "Press this hotkey to show the Reputation Helper.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int hotkey = Keyboard.KEY_NONE; - - - @Expose - public Position position = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Show Locations", desc = "Crimson Isles waypoints for locations to get reputation.") - @ConfigEditorDropdown(values = {"Always", "Only With Hotkey", "Never"}) - public int showLocation = 1; - } - - @Expose - @ConfigOption(name = "Quest Item Helper", desc = "When you open the fetch item quest in the town board, " + - "it shows a clickable chat message that will grab the items needed from the sacks.") - @ConfigEditorBoolean - @FeatureToggle - public boolean questItemHelper = false; - - @Expose - @ConfigOption(name = "Pablo NPC Helper", desc = "Similar to Quest Item Helper, shows a clickable message that grabs the flower needed from sacks.") - @ConfigEditorBoolean - @FeatureToggle - public boolean pabloHelper = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/DevConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/DevConfig.java deleted file mode 100644 index 4ee5f9469..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/DevConfig.java +++ /dev/null @@ -1,225 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -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.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import org.lwjgl.input.Keyboard; - -public class DevConfig { - - @Expose - @ConfigOption(name = "Repo Auto Update", desc = "Update the repository on every startup.\n" + - "§cOnly disable this if you know what you are doing!") - @ConfigEditorBoolean - public boolean repoAutoUpdate = true; - - @Expose - @ConfigOption(name = "Debug", desc = "") - @Accordion - public DebugConfig debug = new DebugConfig(); - - public static class DebugConfig { - @Expose - @ConfigOption(name = "Enable Debug", desc = "Enable Test logic") - @ConfigEditorBoolean - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Command Logging", desc = "Logs stack trace information into the console when a command gets sent to Hypixel. (by any mod or the player)") - @ConfigEditorBoolean - public boolean commandLogs = false; - - @Expose - @ConfigOption( - name = "Mod Menu Log", - desc = "Enables debug messages when the currently opened GUI changes, with the path to the gui class. " + - "Useful for adding more mods to quick mod menu switch." - ) - @ConfigEditorBoolean - public boolean modMenuLog = false; - - @Expose - @ConfigOption(name = "Show Internal Name", desc = "Show internal names in item lore.") - @ConfigEditorBoolean - public boolean showInternalName = false; - - @Expose - @ConfigOption(name = "Show Empty Internal Names", desc = "Shows internal name even for items with none.") - @ConfigEditorBoolean - public boolean showEmptyNames = false; - - @Expose - @ConfigOption(name = "Show Item Rarity", desc = "Show item rarities in item lore.") - @ConfigEditorBoolean - public boolean showItemRarity = false; - - @Expose - @ConfigOption(name = "Copy Internal Name", desc = "Copies the internal name of an item on key press in the clipboard.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int copyInternalName = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Show NPC Price", desc = "Show NPC price in item lore.") - @ConfigEditorBoolean - public boolean showNpcPrice = false; - - @Expose - @ConfigOption(name = "Show Item UUID", desc = "Show the Unique Identifier of items in the lore.") - @ConfigEditorBoolean - public boolean showItemUuid = false; - - @Expose - @ConfigOption(name = "Copy Item Data", desc = "Copies item NBT data on key press in a GUI to clipboard.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int copyItemData = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Copy Compressed Item Data", desc = "Copies compressed item NBT data on key press in a GUI to clipboard.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int copyItemDataCompressed = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Copy RNG Meter", desc = "Copies internal names and maxed XP needed from RNG meter inventories as json to clipboard.") - @ConfigEditorBoolean - public boolean copyRngMeter = false; - - @Expose - @ConfigOption(name = "Copy Bestiary Data", desc = "Copies the bestiary data from the inventory as json to clipboard.") - @ConfigEditorBoolean - public boolean copyBestiaryData = false; - - @Expose - @ConfigOption(name = "Highlight Missing Repo Items", desc = "Highlights each item in the current inventory that is not in your current NEU repo.") - @ConfigEditorBoolean - public boolean highlightMissingRepo = false; - - @Expose - @ConfigOption(name = "Hot Swap Detection", desc = "Show chat messages when Hot Swap starts and ends.") - @ConfigEditorBoolean - public boolean hotSwapDetection = false; - } - - @Expose - @ConfigOption(name = "Slot Number", desc = "Show slot number in inventory while pressing this key.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int showSlotNumberKey = Keyboard.KEY_NONE; - - @ConfigOption(name = "Parkour Waypoints", desc = "") - @Accordion - @Expose - public WaypointsConfig waypoint = new WaypointsConfig(); - - public static class WaypointsConfig { - - @Expose - @ConfigOption(name = "Save Hotkey", desc = "Saves block location to a temporarily parkour and copies everything to your clipboard.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int saveKey = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Delete Hotkey", desc = "Deletes the last saved location for when you make a mistake.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int deleteKey = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Show Platform Number", desc = "Show the index number over the platform for every parkour.") - @ConfigEditorBoolean - public boolean showPlatformNumber = false; - - } - - @Expose - public Position debugPos = new Position(10, 10, false, true); - - @Expose - public Position debugLocationPos = new Position(1, 160, false, true); - - @Expose - @ConfigOption(name = "Minecraft Console", desc = "") - @Accordion - public MinecraftConsoleConfig minecraftConsoles = new MinecraftConsoleConfig(); - - public static class MinecraftConsoleConfig { - @Expose - @ConfigOption(name = "Unfiltered Debug", desc = "Print the debug information for unfiltered console messages.") - @ConfigEditorBoolean - public boolean printUnfilteredDebugs = false; - - @Expose - @ConfigOption(name = "Unfiltered Debug File", desc = "Print the debug information into log files instead of into the console for unfiltered console messages.") - @ConfigEditorBoolean - public boolean logUnfilteredFile = false; - - @Expose - @ConfigOption( - name = "Outside SkyBlock", - desc = "Print the debug information for unfiltered console messages outside SkyBlock too." - ) - @ConfigEditorBoolean - public boolean printUnfilteredDebugsOutsideSkyBlock = false; - - @Expose - @ConfigOption( - name = "Log Filtered", - desc = "Log the filtered messages into the console." - ) - @ConfigEditorBoolean - public boolean printFilteredReason = false; - - @Expose - @ConfigOption(name = "Console Filters", desc = "") - @Accordion - public ConsoleFiltersConfig consoleFilter = new ConsoleFiltersConfig(); - - public static class ConsoleFiltersConfig { - @Expose - @ConfigOption(name = "Filter Chat", desc = "Filter chat messages.") - @ConfigEditorBoolean - public boolean filterChat = false; - - @Expose - @ConfigOption(name = "Filter Grow Buffer", desc = "Filter 'Needed to grow BufferBuilder buffer:'") - @ConfigEditorBoolean - public boolean filterGrowBuffer = true; - - @Expose - @ConfigOption(name = "Filter Sound Error", desc = "Filter 'Unable to play unknown soundEvent'.") - @ConfigEditorBoolean - public boolean filterUnknownSound = true; - - @Expose - @ConfigOption(name = "Filter Scoreboard Errors", desc = "Filter error messages with Scoreboard: removeTeam, createTeam, " + - "removeObjective and 'scoreboard team already exists'.") - @ConfigEditorBoolean - public boolean filterScoreboardErrors = true; - - @Expose - @ConfigOption(name = "Filter Particle", desc = "Filter message 'Could not spawn particle effect VILLAGER_HAPPY'.") - @ConfigEditorBoolean - public boolean filterParticleVillagerHappy = true; - - @Expose - @ConfigOption(name = "Filter OptiFine", desc = "Filter OptiFine messages CustomItems and ConnectedTextures during loading.") - @ConfigEditorBoolean - public boolean filterOptiFine = true; - - @Expose - @ConfigOption(name = "Filter AsmHelper Transformer", desc = "Filter messages when AsmHelper is Transforming a class during loading.") - @ConfigEditorBoolean - public boolean filterAmsHelperTransformer = true; - - @Expose - @ConfigOption(name = "Filter Applying AsmWriter", desc = "Filter messages when AsmHelper is applying AsmWriter ModifyWriter.") - @ConfigEditorBoolean - public boolean filterAsmHelperApplying = true; - - @Expose - @ConfigOption(name = "Filter Biome ID Bounds", desc = "Filter message 'Biome ID is out of bounds'.") - @ConfigEditorBoolean - public boolean filterBiomeIdBounds = true; - } - } -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/DungeonConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/DungeonConfig.java deleted file mode 100644 index 90eee882a..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/DungeonConfig.java +++ /dev/null @@ -1,256 +0,0 @@ -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.ConfigEditorSlider; -import io.github.moulberry.moulconfig.annotations.ConfigOption; - -public class DungeonConfig { - - @Expose - @ConfigOption(name = "Clicked Blocks", desc = "Highlight levers, chests, and Wither Essence when clicked in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightClickedBlocks = false; - - @Expose - @ConfigOption(name = "Milestones Display", desc = "Show the current milestone in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showMilestonesDisplay = false; - - @Expose - public Position showMileStonesDisplayPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Death Counter Display", desc = "Display the total amount of deaths in the current Dungeon.") - @ConfigEditorBoolean - @FeatureToggle - public boolean deathCounterDisplay = false; - - @Expose - public Position deathCounterPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Clean End", desc = "") - @Accordion - public CleanEndConfig cleanEnd = new CleanEndConfig(); - public static class CleanEndConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "After the last Dungeon boss has died, all entities and " + - "particles are no longer displayed and the music stops playing, but the loot chests are still displayed.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Ignore Guardians", desc = "Ignore F3 and M3 Guardians from the clean end feature when " + - "sneaking. Makes it easier to kill them after the boss died already. Thanks Hypixel.") - @ConfigEditorBoolean - public boolean F3IgnoreGuardians = false; - } - - @Expose - @ConfigOption(name = "Boss Damage Splash", desc = "Hides damage splashes while inside the boss room (fixes a Skytils feature).") - @ConfigEditorBoolean - @FeatureToggle - public boolean damageSplashBoss = false; - - @Expose - @ConfigOption(name = "Highlight Deathmites", desc = "Highlight Deathmites in Dungeons in red color.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightDeathmites = true; - - @Expose - @ConfigOption(name = "Highlight Teammates", desc = "Highlight Dungeon teammates with a glowing outline.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightTeammates = true; - - - @Expose - @ConfigOption(name = "Object Hider", desc = "Hide various things in Dungeons.") - @Accordion - public ObjectHiderConfig objectHider = new ObjectHiderConfig(); - public static class ObjectHiderConfig { - @Expose - @ConfigOption(name = "Hide Superboom TNT", desc = "Hide Superboom TNT laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideSuperboomTNT = false; - - @Expose - @ConfigOption(name = "Hide Blessings", desc = "Hide Blessings laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideBlessing = false; - - @Expose - @ConfigOption(name = "Hide Revive Stones", desc = "Hide Revive Stones laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideReviveStone = false; - - @Expose - @ConfigOption(name = "Hide Premium Flesh", desc = "Hide Premium Flesh laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hidePremiumFlesh = false; - - @Expose - @ConfigOption(name = "Hide Journal Entry", desc = "Hide Journal Entry pages laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideJournalEntry = false; - - @Expose - @ConfigOption(name = "Hide Skeleton Skull", desc = "Hide Skeleton Skulls laying around in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideSkeletonSkull = true; - - @Expose - @ConfigOption(name = "Hide Healer Orbs", desc = "Hides the damage, ability damage and defensive orbs that spawn when the Healer kills mobs.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideHealerOrbs = false; - - @Expose - @ConfigOption(name = "Hide Healer Fairy", desc = "Hide the Golden Fairy that follows the Healer in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideHealerFairy = false; - - @Expose - @ConfigOption( - name = "Hide Soulweaver Skulls", - desc = "Hide the annoying soulweaver skulls that float around you if you have the soulweaver gloves equipped.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideSoulweaverSkulls = false; - - } - - @Expose - @ConfigOption(name = "Message Filter", desc = "") - @Accordion - public MessageFilterConfig messageFilter = new MessageFilterConfig(); - - public static class MessageFilterConfig{ - @Expose - @ConfigOption(name = "Keys and Doors", desc = "Hides the chat message when picking up keys or opening doors in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean keysAndDoors = false; - } - - @Expose - @ConfigOption(name = "Dungeon Copilot", desc = "") - @Accordion - public DungeonCopilotConfig dungeonCopilot = new DungeonCopilotConfig(); - - public static class DungeonCopilotConfig{ - @Expose - @ConfigOption(name = "Copilot Enabled", desc = "Suggests what to do next in Dungeons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - public Position pos = new Position(10, 10, false, true); - } - - - @Expose - @ConfigOption(name = "Party Finder", desc = "") - @Accordion - public PartyFinderConfig partyFinder = new PartyFinderConfig(); - - public static class PartyFinderConfig { - @Expose - @ConfigOption(name = "Colored Class Level", desc = "Color class levels in Party Finder.") - @ConfigEditorBoolean - @FeatureToggle - public boolean coloredClassLevel = true; - - @Expose - @ConfigOption(name = "Floor Stack Size", desc = "Display the party finder floor as the item stack size.") - @ConfigEditorBoolean - @FeatureToggle - public boolean floorAsStackSize = true; - - @Expose - @ConfigOption(name = "Mark Paid Carries", desc = "Highlight paid carries with a red background to make them easier to find/skip.") - @ConfigEditorBoolean - @FeatureToggle - public boolean markPaidCarries = true; - - @Expose - @ConfigOption(name = "Mark Low Levels", desc = "Highlight groups with players at or below the specified class level to make them easier to find/skip.") - @ConfigEditorSlider(minValue = 0, maxValue = 50, minStep = 1) - public int markBelowClassLevel = 0; - - @Expose - @ConfigOption(name = "Mark Ineligible Groups", desc = "Highlight groups with requirements that you do not meet.") - @ConfigEditorBoolean - @FeatureToggle - public boolean markIneligibleGroups = true; - - @Expose - @ConfigOption(name = "Mark Missing Class", desc = "Highlight groups that don't currently have any members of your selected dungeon class.") - @ConfigEditorBoolean - @FeatureToggle - public boolean markMissingClass = true; - } - - @Expose - @ConfigOption(name = "Tab List", desc = "") - @Accordion - public TabListConfig tabList = new TabListConfig(); - - public static class TabListConfig { - - @Expose - @ConfigOption(name = "Colored Class Level", desc = "Color class levels in tab list. (Also hides rank colors and emblems, because who needs that in Dungeons anyway?)") - @ConfigEditorBoolean - @FeatureToggle - public boolean coloredClassLevel = true; - } - - @Expose - @ConfigOption(name = "Livid Finder", desc = "") - @Accordion - public LividFinderConfig lividFinder = new LividFinderConfig(); - - public static class LividFinderConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Helps find the correct livid in F5 and in M5.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Hide Wrong Livids", desc = "Hide wrong livids entirely.") - @ConfigEditorBoolean - public boolean hideWrong = false; - } - - @Expose - @ConfigOption(name = "Moving Skeleton Skulls", desc = "Highlight Skeleton Skulls when combining into an " + - "orange Skeletor (not useful when combined with feature Hide Skeleton Skull).") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightSkeletonSkull = true; - - @Expose - @ConfigOption(name = "Croesus Chest", desc = "Adds a visual highlight to the Croesus inventory that " + - "shows unopened chests.") - @ConfigEditorBoolean - @FeatureToggle - public boolean croesusUnopenedChestTracker = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/EventConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/EventConfig.java deleted file mode 100644 index fe7e36440..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/EventConfig.java +++ /dev/null @@ -1,421 +0,0 @@ -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.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import io.github.moulberry.moulconfig.observer.Property; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class EventConfig { - - @ConfigOption(name = "Monthly Bingo", desc = "") - @Accordion - @Expose - public BingoConfig bingo = new BingoConfig(); - - public static class BingoConfig { - - @Expose - @ConfigOption(name = "Bingo Card", desc = "") - @Accordion - public BingoCardConfig bingoCard = new BingoCardConfig(); - - public static class BingoCardConfig { - @Expose - @ConfigOption(name = "Enable", desc = "Displays the Bingo Card.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - @Expose - @ConfigOption(name = "Quick Toggle", desc = "Quickly toggle the Bingo Card or the step helper by sneaking with SkyBlock Menu in hand.") - @ConfigEditorBoolean - public boolean quickToggle = true; - - @Expose - @ConfigOption(name = "Bingo Steps", desc = "Show help with the next step in Bingo instead of the Bingo Card. " + - "§cThis feature is in early development. Expect bugs and missing goals.") - @ConfigEditorBoolean - public boolean stepHelper = false; - - @Expose - @ConfigOption(name = "Hide Community Goals", desc = "Hide Community Goals from the Bingo Card display.") - @ConfigEditorBoolean - public Property<Boolean> hideCommunityGoals = Property.of(false); - - @Expose - @ConfigOption( - name = "Show Guide", - desc = "Show tips and difficulty for bingo goals inside the Bingo Card inventory.\n" + - "These tips are made from inspirations and guides from the community,\n"+ - "aiming to help you to complete the bingo card." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean bingoSplashGuide = true; - - @Expose - public Position bingoCardPos = new Position(10, 10, false, true); - } - - @Expose - @ConfigOption(name = "Compact Chat Messages", desc = "") - @Accordion - public CompactChatConfig compactChat = new CompactChatConfig(); - - public static class CompactChatConfig { - - @Expose - @ConfigOption(name = "Enable", desc = "Shortens chat messages about skill level ups, collection gains, " + - "new area discoveries and SkyBlock level up messages while on Bingo.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Hide Border", desc = "Hide the border messages before and after the compact level up messages.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideBorder = true; - - @Expose - @ConfigOption(name = "Outside Bingo", desc = "Compact the level up chat messages outside of an Bingo profile as well.") - @ConfigEditorBoolean - public boolean outsideBingo = false; - } - - @Expose - @ConfigOption(name = "Minion Craft Helper", desc = "Show how many more items you need to upgrade the minion in your inventory. Especially useful for Bingo.") - @ConfigEditorBoolean - @FeatureToggle - public boolean minionCraftHelperEnabled = true; - - @Expose - public Position minionCraftHelperPos = new Position(10, 10, false, true); - } - - @ConfigOption(name = "Diana's Mythological Burrows", desc = "") - @Accordion - @Expose - public DianaConfig diana = new DianaConfig(); - - public static class DianaConfig { - - - @Expose - @ConfigOption(name = "Soopy Guess", desc = "Uses §eSoopy's Guess Logic §7to find the next burrow. Does not require SoopyV2 or ChatTriggers to be installed.") - @ConfigEditorBoolean - @FeatureToggle - public boolean burrowsSoopyGuess = false; - - @Expose - @ConfigOption(name = "Nearby Detection", desc = "Show burrows near you.") - @ConfigEditorBoolean - @FeatureToggle - public boolean burrowsNearbyDetection = false; - - @Expose - @ConfigOption(name = "Smooth Transition", desc = "Show the way from one burrow to another smoothly.") - @ConfigEditorBoolean - public boolean burrowSmoothTransition = false; - - @Expose - @ConfigOption(name = "Nearest Warp", desc = "Warps to the nearest warp point on the hub, if closer to the next burrow.") - @ConfigEditorBoolean - public boolean burrowNearestWarp = false; - - @Expose - @ConfigOption(name = "Warp Key", desc = "Press this key to warp to nearest burrow waypoint.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int keyBindWarp = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Ignored Warps", desc = "") - @Accordion - public IgnoredWarpsConfig ignoredWarps = new IgnoredWarpsConfig(); - - public static class IgnoredWarpsConfig { - - @Expose - @ConfigOption(name = "Crypt", desc = "Ignore the Crypt warp point (Because it takes a long time to leave).") - @ConfigEditorBoolean - public boolean crypt = false; - - @Expose - @ConfigOption(name = "Wizard", desc = "Ignore the Wizard Tower warp point (Because it is easy to fall into the rift).") - @ConfigEditorBoolean - public boolean wizard = false; - - } - - @Expose - @ConfigOption(name = "Inquisitor Waypoint Sharing", desc = "") - @Accordion - public InquisitorSharingConfig inquisitorSharing = new InquisitorSharingConfig(); - - public static class InquisitorSharingConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Shares your Inquisitor and receiving other Inquisitors via Party Chat.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Focus", desc = "Hide other waypoints when your Party finds an Inquisitor.") - @ConfigEditorBoolean - public boolean focusInquisitor = false; - - @Expose - @ConfigOption(name = "Instant Share", desc = "Share the waypoint as soon as you find an Inquisitor. As an alternative, you can share it only via key press.") - @ConfigEditorBoolean - public boolean instantShare = true; - - @Expose - @ConfigOption(name = "Share Key", desc = "Press this key to share your Inquisitor Waypoint.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_Y) - public int keyBindShare = Keyboard.KEY_Y; - - @Expose - @ConfigOption(name = "Show Despawn Time", desc = "Show the time until the shared Inquisitor will despawn.") - @ConfigEditorBoolean - public boolean showDespawnTime = true; - } - - @Expose - @ConfigOption(name = "Griffin Pet Warning", desc = "Warn when holding an Ancestral Spade if a Griffin Pet is not equipped.") - @ConfigEditorBoolean - @FeatureToggle - public boolean petWarning = true; - - @Expose - @ConfigOption(name = "Always Diana", desc = "Forcefully set the Diana event to be active. This is useful if the auto mayor detection fails.") - @ConfigEditorBoolean - public boolean alwaysDiana = false; - } - - @ConfigOption(name = "Winter Season on Jerry's Island", desc = "") - @Accordion - @Expose - public WinterConfig winter = new WinterConfig(); - - public static class WinterConfig { - - @Expose - @ConfigOption(name = "Frozen Treasure Tracker", desc = "") - @Accordion - public FrozenTreasureConfig frozenTreasureTracker = new FrozenTreasureConfig(); - - public static class FrozenTreasureConfig { - - @Expose - @ConfigOption( - name = "Enabled", - desc = "Tracks all of your drops from Frozen Treasure in the Glacial Caves.\n" + - "§eIce calculations are an estimate but are relatively accurate." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Text Format", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§1§lFrozen Treasure Tracker", - "§61,636 Treasures Mined", - "§33.2m Total Ice", - "§3342,192 Ice/hr", - "§81,002 Compact Procs", - " ", - "§b182 §fWhite Gift", - "§b94 §aGreen Gift", - "§b17 §9§cRed Gift", - "§b328 §fPacked Ice", - "§b80 §aEnchanted Ice", - "§b4 §9Enchanted Packed Ice", - "§b182 §aIce Bait", - "§b3 §aGlowy Chum Bait", - "§b36 §5Glacial Fragment", - "§b6 §fGlacial Talisman", - " ", - } - ) - public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15)); - - @Expose - @ConfigOption(name = "Only in Glacial Cave", desc = "Only shows the overlay while in the Glacial Cave.") - @ConfigEditorBoolean - public boolean onlyInCave = true; - - @Expose - @ConfigOption(name = "Show as Drops", desc = "Multiplies the numbers on the display by the base drop. \n" + - "E.g. 3 Ice Bait -> 48 Ice Bait") - @ConfigEditorBoolean - public boolean showAsDrops = false; - - @Expose - @ConfigOption(name = "Hide Chat Messages", desc = "Hides the chat messages from Frozen Treasures.") - @ConfigEditorBoolean - public boolean hideMessages = false; - - @Expose - public Position position = new Position(10, 80, false, true); - } - - @Expose - @ConfigOption(name = "Island Close Time", desc = "While on the Winter Island, show a timer until Jerry's Workshop closes.") - @ConfigEditorBoolean - @FeatureToggle - public boolean islandCloseTime = true; - - @Expose - public Position islandCloseTimePosition = new Position(10, 10, false, true); - - } - - @ConfigOption(name = "City Project", desc = "") - @Accordion - @Expose - public CityProjectConfig cityProject = new CityProjectConfig(); - - public static class CityProjectConfig { - - @Expose - @ConfigOption(name = "Show Materials", desc = "Show materials needed for contributing to the City Project.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showMaterials = true; - - @Expose - @ConfigOption(name = "Show Ready", desc = "Mark contributions that are ready to participate.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showReady = true; - - @Expose - @ConfigOption(name = "Daily Reminder", desc = "Remind every 24 hours to participate.") - @ConfigEditorBoolean - @FeatureToggle - public boolean dailyReminder = true; - - @Expose - public Position pos = new Position(150, 150, false, true); - } - - @ConfigOption(name = "Mayor Jerry's Jerrypocalypse", desc = "") - @Accordion - @Expose - public MayorJerryConfig jerry = new MayorJerryConfig(); - - public static class MayorJerryConfig { - - @Expose - @ConfigOption(name = "Highlight Jerries", desc = "Highlights Jerries found from the Jerrypocalypse perk. Highlight color is based on color of the Jerry.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightJerries = true; - - } - - @ConfigOption(name = "The Great Spook", desc = "") - @Accordion - @Expose - public GreatSpookConfig spook = new GreatSpookConfig(); - - public static class GreatSpookConfig { - - @Expose - @ConfigOption(name = "Primal Fear Timer", desc = "Shows cooldown timer for next primal fear.") - @ConfigEditorBoolean - @FeatureToggle - public boolean primalFearTimer = false; - - @Expose - @ConfigOption(name = "Primal Fear Notify", desc = "Plays a notification sound when the next primal fear can spawn.") - @ConfigEditorBoolean - @FeatureToggle - public boolean primalFearNotification = false; - - @Expose - public Position positionTimer = new Position(20, 20, false, true); - - @Expose - @ConfigOption(name = "Fear Stat Display", desc = "Shows your current Fear stat value.") - @ConfigEditorBoolean - @FeatureToggle - public boolean fearStatDisplay = false; - - @Expose - public Position positionFear = new Position(30, 30, false, true); - - @Expose - @ConfigOption(name = "IRL Time Left", desc = "Shows the IRL time left before The Great Spook ends.") - @ConfigEditorBoolean - @FeatureToggle - public boolean greatSpookTimeLeft = false; - - @Expose - public Position positionTimeLeft = new Position(40, 40, false, true); - - } - - // comment in if the event is needed again -// @ConfigOption(name = "300þ Anniversary Celebration", desc = "Features for the 300þ year of SkyBlock") - @Accordion - @Expose - public CenturyConfig century = new CenturyConfig(); - - public static class CenturyConfig { - - @ConfigOption(name = "Enable Active Player Timer", desc = "Show a HUD telling you how much longer you have to wait to be eligible for another free ticket.") - @Expose - @ConfigEditorBoolean - @FeatureToggle - public boolean enableActiveTimer = true; - - @Expose - public Position activeTimerPosition = new Position(100, 100, false, true); - - @ConfigOption(name = "Enable Active Player Alert", desc = "Loudly proclaim when it is time to break some wheat.") - @Expose - @ConfigEditorBoolean - public boolean enableActiveAlert = false; - } - - @Expose - @ConfigOption(name = "Main Lobby Halloween Basket Waypoints", desc = "") - @Accordion - public halloweenBasketConfig halloweenBasket = new halloweenBasketConfig(); - - public static class halloweenBasketConfig { - - @Expose - @ConfigOption(name = "Basket Waypoints", desc = "Show all Halloween Basket waypoints.\nShoutout to §bTobbbb §7for the coordinates.\n(AS OF 2023)") - @ConfigEditorBoolean - @FeatureToggle - public boolean allWaypoints = false; - - @Expose - @ConfigOption(name = "Entrance Waypoints", desc = "Show helper waypoints to Baskets #23, #24, and #25. Coordinates by §bErymanthus§7.") - @ConfigEditorBoolean - public boolean allEntranceWaypoints = false; - - @Expose - @ConfigOption(name = "Only Closest", desc = "Only show the closest waypoint") - @ConfigEditorBoolean - public boolean onlyClosest = true; - } - -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/FishingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/FishingConfig.java deleted file mode 100644 index 11a21d083..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/FishingConfig.java +++ /dev/null @@ -1,309 +0,0 @@ -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.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import io.github.moulberry.moulconfig.observer.Property; -import org.lwjgl.input.Keyboard; - -public class FishingConfig { - - @Expose - @ConfigOption(name = "Trophy Fishing", desc = "") - @Accordion - public TrophyFishingConfig trophyFishing = new TrophyFishingConfig(); - - public static class TrophyFishingConfig { - - @Expose - @ConfigOption(name = "Trophy Fishing Chat Messages", desc = "") - @Accordion - public ChatMessagesConfig chatMessages = new ChatMessagesConfig(); - - public static class ChatMessagesConfig { - - @Expose - @ConfigOption( - name = "Trophy Counter", - desc = "Counts Trophy messages from chat and tells you how many you have found." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption( - name = "Trophy Counter Design", - desc = "§fStyle 1: §72. §6§lGOLD §5Moldfin\n" + - "§fStyle 2: §bYou caught a §5Moldfin §6§lGOLD§b. §7(2)\n" + - "§fStyle 3: §bYou caught your 2nd §6§lGOLD §5Moldfin§b." - ) - @ConfigEditorDropdown(values = {"Style 1", "Style 2", "Style 3"}) - public int design = 0; - - @Expose - @ConfigOption(name = "Show Total Amount", desc = "Show total amount of all rarities at the end of the chat message.") - @ConfigEditorBoolean - public boolean totalAmount = false; - - @Expose - @ConfigOption(name = "Trophy Fish Info", desc = "Show information and stats about a Trophy Fish when hovering over a catch message in chat.") - @ConfigEditorBoolean - @FeatureToggle - public boolean tooltip = true; - - @Expose - @ConfigOption(name = "Hide Repeated Catches", desc = "Delete past catches of the same Trophy Fish from chat.") - @ConfigEditorBoolean - @FeatureToggle - public boolean duplicateHider = false; - - @Expose - @ConfigOption(name = "Bronze Duplicates", desc = "Hide duplicate messages for bronze Trophy Fishes from chat.") - @ConfigEditorBoolean - public boolean bronzeHider = false; - - @Expose - @ConfigOption(name = "Silver Duplicates", desc = "Hide duplicate messages for silver Trophy Fishes from chat.") - @ConfigEditorBoolean - public boolean silverHider = false; - } - - @Expose - @ConfigOption(name = "Fillet Tooltip", desc = "Show fillet value of Trophy Fish in tooltip.") - @ConfigEditorBoolean - @FeatureToggle - public boolean filletTooltip = true; - - @Expose - @ConfigOption(name = "Odger Waypoint", desc = "Show the Odger waypoint when Trophy Fishes are in the inventory and no lava rod in hand.") - @ConfigEditorBoolean - @FeatureToggle - public boolean odgerLocation = true; - } - - @Expose - @ConfigOption(name = "Thunder Spark", desc = "") - @Accordion - public ThunderSparkConfig thunderSpark = new ThunderSparkConfig(); - - public static class ThunderSparkConfig { - @Expose - @ConfigOption(name = "Thunder Spark Highlight", desc = "Highlight Thunder Sparks after killing a Thunder.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = false; - - @Expose - @ConfigOption(name = "Thunder Spark Color", desc = "Color of the Thunder Sparks.") - @ConfigEditorColour - public String color = "0:255:255:255:255"; - } - - @Expose - @ConfigOption(name = "Barn Fishing Timer", desc = "") - @Accordion - public BarnTimerConfig barnTimer = new BarnTimerConfig(); - - public static class BarnTimerConfig { - @Expose - @ConfigOption( - name = "Barn Fishing Timer", - desc = "Show the time and amount of sea creatures while fishing on the barn via hub." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Worm Fishing", - desc = "Show the Barn Fishing Timer even for worms or other sea creatures in the Crystal Hollows." - ) - @ConfigEditorBoolean - public boolean crystalHollows = true; - - @Expose - @ConfigOption( - name = "Stranded Fishing", - desc = "Show the Barn Fishing Timer even on all the different islands Stranded players can visit." - ) - @ConfigEditorBoolean - public boolean forStranded = true; - - @Expose - @ConfigOption( - name = "Worm Cap Alert", - desc = "Alerts you with title and sound if you hit the Worm Sea Creature limit of 60." - ) - @ConfigEditorBoolean - public boolean wormLimitAlert = true; - - @Expose - @ConfigOption(name = "Reset Timer Hotkey", desc = "Press this key to reset the timer manualy") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int manualResetTimer = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Fishing Timer Alert", desc = "Change the amount of time in seconds until the timer dings.") - @ConfigEditorSlider( - minValue = 240, - maxValue = 360, - minStep = 10 - ) - public int alertTime = 330; - - @Expose - public Position pos = new Position(10, 10, false, true); - } - - @Expose - @ConfigOption(name = "Chum/Chumcap Bucket Hider", desc = "") - @Accordion - public ChumBucketHiderConfig chumBucketHider = new ChumBucketHiderConfig(); - - public static class ChumBucketHiderConfig { - - @Expose - @ConfigOption(name = "Enable", desc = "Hide the Chum/Chumcap Bucket name tags for other players.") - @ConfigEditorBoolean - @FeatureToggle - public Property<Boolean> enabled = Property.of(true); - - @Expose - @ConfigOption(name = "Hide Bucket", desc = "Hide the Chum/Chumcap Bucket.") - @ConfigEditorBoolean - public Property<Boolean> hideBucket = Property.of(false); - - @Expose - @ConfigOption(name = "Hide Own", desc = "Hides your own Chum/Chumcap Bucket.") - @ConfigEditorBoolean - public Property<Boolean> hideOwn = Property.of(false); - } - - @Expose - @ConfigOption(name = "Fished Item Name", desc = "") - @Accordion - public FishedItemNameConfig fishedItemName = new FishedItemNameConfig(); - - public static class FishedItemNameConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Show the fished item name above the item when fishing.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Show Bait", desc = "Also show the name of the consumed bait.") - @ConfigEditorBoolean - public boolean showBaits = false; - - } - - @Expose - @ConfigOption(name = "Fishing Hook Display", desc = "") - @Accordion - public FishingHookDisplayConfig fishingHookDisplay = new FishingHookDisplayConfig(); - - public static class FishingHookDisplayConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Display the Hypixel timer until the fishing hook can be pulled out of the water/lava, only bigger and on your screen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Hide Armor Stand", - desc = "Hide the original armor stand from Hypixel when the SkyHanni display is enabled." - ) - @ConfigEditorBoolean - public boolean hideArmorStand = true; - - @Expose - public Position position = new Position(460, -240, 3.4f); - } - - @Expose - @ConfigOption(name = "Bait Warnings", desc = "") - @Accordion - public FishingBaitWarningsConfig fishingBaitWarnings = new FishingBaitWarningsConfig(); - - public static class FishingBaitWarningsConfig { - @Expose - @ConfigOption(name = "Bait Change Warning", desc = "Show warning when fishing bait is changed") - @ConfigEditorBoolean - @FeatureToggle - public boolean baitChangeWarning = false; - - @Expose - @ConfigOption(name = "No Bait Warning", desc = "Show warning when no bait is used") - @ConfigEditorBoolean - @FeatureToggle - public boolean noBaitWarning = false; - } - - @Expose - @ConfigOption(name = "Rare Sea Creatures", desc = "") - @Accordion - public RareCatches rareCatches = new RareCatches(); - - public static class RareCatches { - - @Expose - @ConfigOption(name = "Alert (Own Sea Creatures)", desc = "Show an alert on screen when you catch a rare sea creature.") - @ConfigEditorBoolean - @FeatureToggle - public boolean alertOwnCatches = true; - - @Expose - @ConfigOption(name = "Alert (Other Sea Creatures)", desc = "Show an alert on screen when other players nearby catch a rare sea creature.") - @ConfigEditorBoolean - public boolean alertOtherCatches = false; - - @Expose - @ConfigOption(name = "Play Sound Alert", desc = "Play a sound effect when rare sea creature alerts are displayed.") - @ConfigEditorBoolean - public boolean playSound = true; - - @Expose - @ConfigOption(name = "Highlight", desc = "Highlight nearby rare sea creatures.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = false; - - } - - @Expose - @ConfigOption( - name = "Shark Fish Counter", - desc = "Counts how many Sharks have been caught." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean sharkFishCounter = false; - - @Expose - public Position sharkFishCounterPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Shorten Fishing Message", desc = "Shortens the chat message that says what type of Sea Creature you have fished.") - @ConfigEditorBoolean - @FeatureToggle - public boolean shortenFishingMessage = false; - - @Expose - @ConfigOption(name = "Compact Double Hook", desc = "Adds Double Hook to the Sea Creature chat message instead of in a previous line.") - @ConfigEditorBoolean - @FeatureToggle - public boolean compactDoubleHook = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/GUIConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/GUIConfig.java deleted file mode 100644 index 992ef03d9..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/GUIConfig.java +++ /dev/null @@ -1,174 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -import at.hannibal2.skyhanni.config.FeatureToggle; -import at.hannibal2.skyhanni.config.commands.Commands; -import at.hannibal2.skyhanni.config.core.config.Position; -import at.hannibal2.skyhanni.data.GuiEditManager; -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.ConfigEditorButton; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -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; -import org.lwjgl.input.Keyboard; - -public class GUIConfig { - - @ConfigOption(name = "Edit GUI Locations", desc = "Change the position of SkyHanni's overlays.") - @ConfigEditorButton(buttonText = "Edit") - public Runnable positions = GuiEditManager::openGuiPositionEditor; - - @Expose - @ConfigOption(name = "Open Hotkey", desc = "Press this key to open the GUI Editor.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int keyBindOpen = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Global GUI Scale", desc = "Globally scale all SkyHanni GUIs.") - @ConfigEditorSlider(minValue = 0.1F, maxValue = 10, minStep = 0.05F) - public float globalScale = 1F; - - - @Expose - @ConfigOption(name = "Modify Visual Words", desc = "") - @Accordion - public ModifyWords modifyWords = new ModifyWords(); - - public static class ModifyWords { - - @Expose - @ConfigOption(name = "Enabled", desc = "Enables replacing all instances of a word or phrase with another word or phrase.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Work Outside SkyBlock", desc = "Allows modifying visual words anywhere on Hypixel.") - @ConfigEditorBoolean - @FeatureToggle - public boolean workOutside = false; - - @ConfigOption(name = "Open Config", desc = "Opens the menu to setup the visual words.\n§eCommand: /shwords") - @ConfigEditorButton(buttonText = "Open") - public Runnable open = Commands::openVisualWords; - - } - - @Expose - @ConfigOption(name = "Custom Text Box", desc = "") - @Accordion - public TextBoxConfig customTextBox = new TextBoxConfig(); - - public static class TextBoxConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Enables showing the textbox while in SkyBlock.") - @ConfigEditorBoolean - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Text", desc = "Enter text you want to display here.\n" + - "§eUse '&' as the colour code character.\n" + - "§eUse '\\n' as the line break character.") - @ConfigEditorText - public Property<String> text = Property.of("&aYour Text Here\\n&bYour new line here"); - - @Expose - public Position position = new Position(10, 80, false, true); - } - - @Expose - @ConfigOption(name = "Real Time", desc = "Display the current computer time, a handy feature when playing in full-screen mode.") - @ConfigEditorBoolean - @FeatureToggle - public boolean realTime = false; - - @Expose - @ConfigOption(name = "Real Time 12h Format", desc = "Display the current computer time in 12hr Format rather than 24h Format.") - @ConfigEditorBoolean - public boolean realTimeFormatToggle = false; - - @Expose - public Position realTimePosition = new Position(10, 10, false, true); - - - @Expose - @ConfigOption(name = "In-Game Date", desc = "") - @Accordion - public InGameDateConfig inGameDate = new InGameDateConfig(); - - public static class InGameDateConfig { - - @Expose - @ConfigOption( - name = "Enabled", - desc = "Show the in-game date of SkyBlock (like in Apec, §ebut with mild delays§7).\n" + - "(Though this one includes the SkyBlock year!)" - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - public Position position = new Position(10, 10, false, true); - - @Expose - @ConfigOption( - name = "Use Scoreboard for Date", - desc = "Uses the scoreboard instead to find the current month, date, and time. Greater \"accuracy\", depending on who's asking." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean useScoreboard = true; - - @Expose - @ConfigOption( - name = "Show Sun/Moon", - desc = "Show the sun or moon symbol seen on the scoreboard." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean includeSunMoon = true; - - @Expose - @ConfigOption( - name = "Show Date Ordinal", - desc = "Show the date's ordinal suffix. Ex: (1st <-> 1, 22nd <-> 22, 23rd <-> 3, 24th <-> 24, etc.)" - ) - @ConfigEditorBoolean - //@FeatureToggle - public boolean includeOrdinal = false; - - @Expose - @ConfigOption( - name = "Refresh Rate", - desc = "Change the time in seconds you would like to refresh the In-Game Date Display." + - "\n§eNOTE: If \"Use Scoreboard for Date\" is enabled, this setting is ignored." - ) - @ConfigEditorSlider( - minValue = 1, - maxValue = 60, - minStep = 1 - ) - public int refreshSeconds = 30; - } - - - @Expose - @ConfigOption(name = "TPS Display", desc = "Show the TPS of the current server, like in Soopy.") - @ConfigEditorBoolean - @FeatureToggle - public boolean tpsDisplay = false; - - @Expose - public Position tpsDisplayPosition = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Config Button", desc = "Add a button to the pause menu to configure SkyHanni.") - @ConfigEditorBoolean - @FeatureToggle - public boolean configButtonOnPause = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/GardenConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/GardenConfig.java deleted file mode 100644 index 3deaec46f..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/GardenConfig.java +++ /dev/null @@ -1,1488 +0,0 @@ -package at.hannibal2.skyhanni.config.features; - -import at.hannibal2.skyhanni.config.FeatureToggle; -import at.hannibal2.skyhanni.config.commands.Commands; -import at.hannibal2.skyhanni.config.core.config.Position; -import at.hannibal2.skyhanni.features.garden.inventory.GardenPlotIcon; -import at.hannibal2.skyhanni.utils.LorenzUtils; -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.ConfigEditorButton; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -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; -import net.minecraft.client.Minecraft; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class GardenConfig { - - @Expose - @ConfigOption(name = "SkyMart", desc = "") - @Accordion - public SkyMartConfig skyMart = new SkyMartConfig(); - - public static class SkyMartConfig { - @Expose - @ConfigOption(name = "Copper Price", desc = "Show copper to coin prices inside the SkyMart inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean copperPrice = true; - - @Expose - @ConfigOption(name = "Advanced Stats", desc = "Show the BIN price and copper price for every item.") - @ConfigEditorBoolean - public boolean copperPriceAdvancedStats = false; - - @Expose - public Position copperPricePos = new Position(211, 132, false, true); - } - - @Expose - @ConfigOption(name = "Visitor", desc = "") - @Accordion - public VisitorConfig visitors = new VisitorConfig(); - - public static class VisitorConfig { - @Expose - @ConfigOption(name = "Visitor Timer", desc = "") - @Accordion - public TimerConfig timer = new TimerConfig(); - - public static class TimerConfig { - @Expose - @ConfigOption(name = "Visitor Timer", desc = "Timer when the next visitor will appear, " + - "and a number for how many visitors are already waiting.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Sixth Visitor Estimate", desc = "Estimate when the sixth visitor in the queue will arrive. " + - "May be inaccurate with co-op members farming simultaneously.") - @ConfigEditorBoolean - public boolean sixthVisitorEnabled = true; - - @Expose - @ConfigOption(name = "Sixth Visitor Warning", desc = "Notifies when it is believed that the sixth visitor has arrived. " + - "May be inaccurate with co-op members farming simultaneously.") - @ConfigEditorBoolean - public boolean sixthVisitorWarning = true; - - @Expose - @ConfigOption(name = "New Visitor Ping", desc = "Pings you when you are less than 10 seconds away from getting a new visitor. " + - "§eUseful for getting Ephemeral Gratitudes during the 2023 Halloween event.") - @ConfigEditorBoolean - public boolean newVisitorPing = false; - - @Expose - public Position pos = new Position(390, 65, false, true); - } - - @Expose - @ConfigOption(name = "Visitor Items Needed", desc = "") - @Accordion - public NeedsConfig needs = new NeedsConfig(); - - public static class NeedsConfig { - @Expose - @ConfigOption(name = "Items Needed", desc = "Show all items needed for the visitors.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - public Position pos = new Position(180, 170, false, true); - - @Expose - @ConfigOption(name = "Only when Close", desc = "Only show the needed items when close to the visitors.") - @ConfigEditorBoolean - public boolean onlyWhenClose = false; - - @Expose - @ConfigOption(name = "Bazaar Alley", desc = "Show the Visitor Items List while inside the Bazaar Alley in the Hub. " + - "This helps buying the correct amount when not having a Booster Cookie Buff active.") - @ConfigEditorBoolean - public boolean inBazaarAlley = true; - - @Expose - @ConfigOption(name = "Show Price", desc = "Show the coin price in the items needed list.") - @ConfigEditorBoolean - public boolean showPrice = true; - - @Expose - @ConfigOption(name = "Item Preview", desc = "Show the base type for the required items next to new visitors. §cNote that some visitors may require any crop.") - @ConfigEditorBoolean - @FeatureToggle - public boolean itemPreview = true; - } - - @Expose - @ConfigOption(name = "Visitor Inventory", desc = "") - @Accordion - public InventoryConfig inventory = new InventoryConfig(); - - public static class InventoryConfig { - @Expose - @ConfigOption(name = "Visitor Price", desc = "Show the Bazaar price of the items required for the visitors, like in NEU.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showPrice = false; - - @Expose - @ConfigOption(name = "Amount and Time", desc = "Show the exact item amount and the remaining time when farmed manually. Especially useful for Ironman.") - @ConfigEditorBoolean - public boolean exactAmountAndTime = true; - - @Expose - @ConfigOption(name = "Copper Price", desc = "Show the price per copper inside the visitor GUI.") - @ConfigEditorBoolean - @FeatureToggle - public boolean copperPrice = true; - - @Expose - @ConfigOption(name = "Copper Time", desc = "Show the time required per copper inside the visitor GUI.") - @ConfigEditorBoolean - @FeatureToggle - public boolean copperTime = false; - - @Expose - @ConfigOption(name = "Garden Exp Price", desc = "Show the price per garden experience inside the visitor GUI.") - @ConfigEditorBoolean - @FeatureToggle - public boolean experiencePrice = false; - } - - @Expose - @ConfigOption(name = "Visitor Reward Warning", desc = "") - @Accordion - public RewardWarningConfig rewardWarning = new RewardWarningConfig(); - - public static class RewardWarningConfig { - - @Expose - @ConfigOption(name = "Notify in Chat", desc = "Send a chat message once you talk to a visitor with reward.") - @ConfigEditorBoolean - @FeatureToggle - public boolean notifyInChat = true; - - @Expose - @ConfigOption(name = "Show over Name", desc = "Show the reward name above the visitor name.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showOverName = true; - - @Expose - @ConfigOption(name = "Prevent Refusing", desc = "Prevent the refusal of a visitor with reward.") - @ConfigEditorBoolean - @FeatureToggle - public boolean preventRefusing = true; - - @Expose - @ConfigOption(name = "Bypass Key", desc = "Hold that key to bypass the Prevent Refusing feature.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int bypassKey = Keyboard.KEY_NONE; - - - /** - * Sync up with {at.hannibal2.skyhanni.features.garden.visitor.VisitorReward} - */ - @Expose - @ConfigOption( - name = "Items", - desc = "Warn for these reward items." - ) - @ConfigEditorDraggableList( - exampleText = { - "§9Flowering Bouquet", - "§9Overgrown Grass", - "§9Green Bandana", - "§9Dedication IV", - "§9Music Rune", - "§cSpace Helmet", - "§9Cultivating I", - "§9Replenish I", - } - ) - public List<Integer> drops = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6)); - } - - @Expose - @ConfigOption(name = "Notification Chat", desc = "Show in chat when a new visitor is visiting your island.") - @ConfigEditorBoolean - @FeatureToggle - public boolean notificationChat = true; - - @Expose - @ConfigOption(name = "Notification Title", desc = "Show a title when a new visitor is visiting your island.") - @ConfigEditorBoolean - @FeatureToggle - public boolean notificationTitle = true; - - @Expose - @ConfigOption(name = "Highlight Status", desc = "Highlight the status for visitors with a text above or with color.") - @ConfigEditorDropdown(values = {"Color Only", "Name Only", "Both", "Disabled"}) - public int highlightStatus = 2; - - @Expose - @ConfigOption(name = "Colored Name", desc = "Show the visitor name in the color of the rarity.") - @ConfigEditorBoolean - @FeatureToggle - public boolean coloredName = true; - - @Expose - @ConfigOption(name = "Hypixel Message", desc = "Hide the chat message from Hypixel that a new visitor has arrived at your garden.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hypixelArrivedMessage = true; - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Hide chat messages from the visitors in garden. (Except Beth and Spaceman)") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideChat = true; - - @Expose - @ConfigOption(name = "Visitor Drops Statistics Counter", desc = "") - @Accordion - public DropsStatisticsConfig dropsStatistics = new DropsStatisticsConfig(); - - public static class DropsStatisticsConfig { - - @Expose - @ConfigOption( - name = "Enabled", - desc = "Tallies up statistic about visitors and the rewards you have received from them." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Text Format", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§e§lVisitor Statistics", - "§e1,636 Total", - "§a1,172§f-§9382§f-§681§f-§c1", - "§21,382 Accepted", - "§c254 Denied", - " ", - "§c62,072 Copper", - "§33.2m Farming EXP", - "§647.2m Coins Spent", - "§b23 §9Flowering Bouquet", - "§b4 §9Overgrown Grass", - "§b2 §5Green Bandana", - "§b1 §9Dedication IV", - "§b6 §b◆ Music Rune I", - "§b1 §cSpace Helmet", - "§b1 §9Cultivating I", - "§b1 §9Replenish I", - " ", // If they want another empty row - "§212,600 Garden EXP", - "§b4.2k Bits", - "§220k Mithril Powder", - "§d18k Gemstone Powder", - } - ) - public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12)); - - - @Expose - @ConfigOption(name = "Display Numbers First", desc = "Determines whether the number or drop name displays first. " + - "§eNote: Will not update the preview above!") - @ConfigEditorBoolean - public boolean displayNumbersFirst = true; - - @Expose - @ConfigOption(name = "Display Icons", desc = "Replaces the drop names with icons. " + - "§eNote: Will not update the preview above!") - @ConfigEditorBoolean - public boolean displayIcons = false; - - @Expose - @ConfigOption(name = "Only on Barn Plot", desc = "Only shows the overlay while on the Barn plot.") - @ConfigEditorBoolean - public boolean onlyOnBarn = true; - - @Expose - public Position pos = new Position(5, 20, false, true); - } - - @Expose - @ConfigOption( - name = "Accept Hotkey", - desc = "Accept a visitor when you press this keybind while in the visitor GUI. " + - "§eUseful for getting Ephemeral Gratitudes during the 2023 Halloween event." - ) - @ConfigEditorKeybind( - defaultKey = Keyboard.KEY_NONE - ) - public int acceptHotkey = Keyboard.KEY_NONE; - - - @Expose - @ConfigOption( - name = "Highlight Visitors in SkyBlock", - desc = "Highlights Visitors outside of the Garden" - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightVisitors = false; - - - @Expose - @ConfigOption( - name = "Block Interacting with Visitors", - desc = "Blocks you from interacting with / unlocking Visitors to allow for Dedication Cycling" - ) - @ConfigEditorDropdown - public VisitorBlockBehaviour blockInteracting = VisitorBlockBehaviour.ONLY_ON_BINGO; - - public enum VisitorBlockBehaviour { - DONT("Don't"), ALWAYS("Always"), ONLY_ON_BINGO("Only on Bingo"); - - final String str; - - VisitorBlockBehaviour(String str) { - this.str = str; - } - - @Override - public String toString() { - return str; - } - } - - } - - @Expose - @ConfigOption(name = "Numbers", desc = "") - @Accordion - public NumbersConfig number = new NumbersConfig(); - - public static class NumbersConfig { - @Expose - @ConfigOption(name = "Crop Milestone", desc = "Show the number of crop milestones in the inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean cropMilestone = true; - - @Expose - @ConfigOption(name = "Average Milestone", desc = "Show the average crop milestone in the crop milestone inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean averageCropMilestone = true; - - @Expose - @ConfigOption(name = "Crop Upgrades", desc = "Show the number of upgrades in the crop upgrades inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean cropUpgrades = true; - - @Expose - @ConfigOption(name = "Composter Upgrades", desc = "Show the number of upgrades in the Composter upgrades inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean composterUpgrades = true; - } - - @Expose - @ConfigOption(name = "Crop Milestones", desc = "") - @Accordion - public CropMilestonesConfig cropMilestones = new CropMilestonesConfig(); - - public static class CropMilestonesConfig { - @Expose - @ConfigOption( - name = "Progress Display", - desc = "Shows the progress and ETA until the next crop milestone is reached and the current crops/minute value. " + - "§eRequires a tool with either a counter or Cultivating enchantment for full accuracy." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean progress = true; - - @Expose - @ConfigOption( - name = "Warn When Close", - desc = "Warn with title and sound when the next crop milestone upgrade happens in 5 seconds. " + - "Useful for switching to a different pet for leveling.") - @ConfigEditorBoolean - public boolean warnClose = false; - - @Expose - @ConfigOption( - name = "Time Format", - desc = "Change the highest time unit to show (1h30m vs 90min)") - @ConfigEditorDropdown(values = {"Year", "Day", "Hour", "Minute", "Second"}) - public Property<Integer> highestTimeFormat = Property.of(0); - - @Expose - @ConfigOption( - name = "Maxed Milestone", - desc = "Calculate the progress and ETA till maxed milestone (46) instead of next milestone.") - @ConfigEditorBoolean - public Property<Boolean> bestShowMaxedNeeded = Property.of(false); - - @Expose - @ConfigOption( - name = "Milestone Text", - desc = "Drag text to change the appearance of the overlay.\n" + - "Hold a farming tool to show the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§6Crop Milestones", - "§7Pumpkin Tier 22", - "§e12,300§8/§e100,000", - "§7In §b12m 34s", - "§7Crops/Minute§8: §e12,345", - "§7Blocks/Second§8: §e19.85", - "§7Percentage: §e12.34%", - } - ) - public List<Integer> text = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5)); - - @Expose - @ConfigOption(name = "Block Broken Precision", desc = "The amount of decimals displayed in blocks/second.") - @ConfigEditorSlider( - minValue = 0, - maxValue = 6, - minStep = 1 - ) - public int blocksBrokenPrecision = 2; - - @Expose - @ConfigOption(name = "Seconds Before Reset", desc = "How many seconds of not farming until blocks/second resets.") - @ConfigEditorSlider( - minValue = 2, - maxValue = 60, - minStep = 1 - ) - public int blocksBrokenResetTime = 5; - - @Expose - public Position progressDisplayPos = new Position(-400, -200, false, true); - - @Expose - @ConfigOption(name = "Best Crop", desc = "") - @Accordion - public NextConfig next = new NextConfig(); - - // TODO moulconfig runnable support - public static class NextConfig { - @Expose - @ConfigOption( - name = "Best Display", - desc = "Lists all crops and their ETA till next milestone. Sorts for best crop for getting garden or SkyBlock levels.") - @ConfigEditorBoolean - @FeatureToggle - public boolean bestDisplay = true; - - // TODO moulconfig runnable support - @Expose - @ConfigOption(name = "Sort Type", desc = "Sort the crops by either garden or SkyBlock EXP.") - @ConfigEditorDropdown(values = {"Garden Exp", "SkyBlock Exp"}) - public int bestType = 0; - - // TODO moulconfig runnable support - @Expose - @ConfigOption(name = "Only Show Top", desc = "Only show the top # crops.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 10, - minStep = 1 - ) - public int showOnlyBest = 10; - - @Expose - @ConfigOption(name = "Extend Top List", desc = "Add current crop to the list if its lower ranked than the set limit by extending the list.") - @ConfigEditorBoolean - public boolean showCurrent = true; - - // TODO moulconfig runnable support - @Expose - @ConfigOption( - name = "Always On", - desc = "Show the Best Display always while on the garden.") - @ConfigEditorBoolean - public boolean bestAlwaysOn = false; - - @Expose - @ConfigOption( - name = "Compact Display", - desc = "A more compact best crop time: Removing the crop name and exp, hide the # number and using a more compact time format.") - @ConfigEditorBoolean - public boolean bestCompact = false; - - @Expose - @ConfigOption( - name = "Hide Title", - desc = "Hides the 'Best Crop Time' line entirely.") - @ConfigEditorBoolean - public boolean bestHideTitle = false; - - - @Expose - public Position displayPos = new Position(-200, -200, false, true); - } - - @Expose - @ConfigOption(name = "Mushroom Pet Perk", desc = "") - @Accordion - public MushroomPetPerkConfig mushroomPetPerk = new MushroomPetPerkConfig(); - - // TODO moulconfig runnable support - public static class MushroomPetPerkConfig { - @Expose - @ConfigOption( - name = "Display Enabled", - desc = "Show the progress and ETA for mushroom crops when farming other crops because of the Mooshroom Cow perk.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Mushroom Text", - desc = "Drag text to change the appearance of the overlay.\n" + - "Hold a farming tool to show the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§6Mooshroom Cow Perk", - "§7Mushroom Tier 8", - "§e6,700§8/§e15,000", - "§7In §b12m 34s", - "§7Percentage: §e12.34%", - } - ) - public List<Integer> text = new ArrayList<>(Arrays.asList(0, 1, 2, 3)); - - @Expose - public Position pos = new Position(-112, -143, false, true); - } - } - - // TODO moulconfig runnable support - @Expose - @ConfigOption(name = "Custom Keybinds", desc = "") - @Accordion - public KeyBindConfig keyBind = new KeyBindConfig(); - - public static class KeyBindConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Use custom keybinds while holding a farming tool or Daedalus Axe in the hand.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @ConfigOption(name = "Disable All", desc = "Disable all keys.") - @ConfigEditorButton(buttonText = "Disable") - public Runnable presetDisable = () -> { - attack = Keyboard.KEY_NONE; - useItem = Keyboard.KEY_NONE; - left = Keyboard.KEY_NONE; - right = Keyboard.KEY_NONE; - forward = Keyboard.KEY_NONE; - back = Keyboard.KEY_NONE; - jump = Keyboard.KEY_NONE; - sneak = Keyboard.KEY_NONE; - - Minecraft.getMinecraft().thePlayer.closeScreen(); - }; - - @ConfigOption(name = "Set Default", desc = "Reset all keys to default.") - @ConfigEditorButton(buttonText = "Default") - public Runnable presetDefault = () -> { - attack = -100; - useItem = -99; - left = Keyboard.KEY_A; - right = Keyboard.KEY_D; - forward = Keyboard.KEY_W; - back = Keyboard.KEY_S; - jump = Keyboard.KEY_SPACE; - sneak = Keyboard.KEY_LSHIFT; - Minecraft.getMinecraft().thePlayer.closeScreen(); - }; - - @Expose - @ConfigOption(name = "Attack", desc = "") - @ConfigEditorKeybind(defaultKey = -100) - public int attack = -100; - - @Expose - @ConfigOption(name = "Use Item", desc = "") - @ConfigEditorKeybind(defaultKey = -99) - public int useItem = -99; - - @Expose - @ConfigOption(name = "Move Left", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_A) - public int left = Keyboard.KEY_A; - - @Expose - @ConfigOption(name = "Move Right", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_D) - public int right = Keyboard.KEY_D; - - @Expose - @ConfigOption(name = "Move Forward", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_W) - public int forward = Keyboard.KEY_W; - - @Expose - @ConfigOption(name = "Move Back", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_S) - public int back = Keyboard.KEY_S; - - @Expose - @ConfigOption(name = "Jump", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_SPACE) - public int jump = Keyboard.KEY_SPACE; - - @Expose - @ConfigOption(name = "Sneak", desc = "") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_LSHIFT) - public int sneak = Keyboard.KEY_LSHIFT; - } - - @Expose - @ConfigOption(name = "Optimal Speed", desc = "") - @Accordion - public OptimalSpeedConfig optimalSpeeds = new OptimalSpeedConfig(); - - public static class OptimalSpeedConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Show the optimal speed for your current tool in the hand.\n" + - "(Thanks MelonKingDE for the default values).") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Warning Title", desc = "Warn via title when you don't have the optimal speed.") - @ConfigEditorBoolean - public boolean warning = false; - - @Expose - @ConfigOption(name = "Rancher Boots", desc = "Allows you to set the optimal speed in the Rancher Boots overlay by clicking on the presets.") - @ConfigEditorBoolean - @FeatureToggle - public boolean signEnabled = true; - - @Expose - public Position signPosition = new Position(20, -195, false, true); - - @Expose - @ConfigOption(name = "Custom Speed", desc = "Change the exact speed for every single crop.") - @Accordion - public CustomSpeedConfig customSpeed = new CustomSpeedConfig(); - - public static class CustomSpeedConfig { - - @Expose - @ConfigOption(name = "Wheat", desc = "Suggested farm speed:\n" + - "§e5 Blocks§7: §f✦ 93 speed\n" + - "§e4 Blocks§7: §f✦ 116 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int wheat = 93; - - @Expose - @ConfigOption(name = "Carrot", desc = "Suggested farm speed:\n" + - "§e5 Blocks§7: §f✦ 93 speed\n" + - "§e4 Blocks§7: §f✦ 116 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int carrot = 93; - - @Expose - @ConfigOption(name = "Potato", desc = "Suggested farm speed:\n" + - "§e5 Blocks§7: §f✦ 93 speed\n" + - "§e4 Blocks§7: §f✦ 116 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int potato = 93; - - @Expose - @ConfigOption(name = "Nether Wart", desc = "Suggested farm speed:\n" + - "§e5 Blocks§7: §f✦ 93 speed\n" + - "§e4 Blocks§7: §f✦ 116 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int netherWart = 93; - - @Expose - @ConfigOption(name = "Pumpkin", desc = "Suggested farm speed:\n" + - "§e3 Blocks§7: §f✦ 155 speed\n" + - "§e2 Blocks§7: §f✦ 265 §7or §f400 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int pumpkin = 155; - - @Expose - @ConfigOption(name = "Melon", desc = "Suggested farm speed:\n" + - "§e3 Blocks§7: §f✦ 155 speed\n" + - "§e2 Blocks§7: §f✦ 265 or 400 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int melon = 155; - - @Expose - @ConfigOption(name = "Cocoa Beans", desc = "Suggested farm speed:\n" + - "§e3 Blocks§7: §f✦ 155 speed\n" + - "§e4 Blocks§7: §f✦ 116 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int cocoaBeans = 155; - - // TODO does other speed settings exist? - @Expose - @ConfigOption(name = "Sugar Cane", desc = "Suggested farm speed:\n" + - "§eYaw 45§7: §f✦ 328 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int sugarCane = 328; - - @Expose - @ConfigOption(name = "Cactus", desc = "Suggested farm speed:\n" + - "§eNormal§7: §f✦ 400 speed\n" + - "§eRacing Helmet§7: §f✦ 464 speed\n" + - "§eBlack Cat§7: §f✦ 464 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 500, minStep = 1) - public int cactus = 400; - - // TODO does other speed settings exist? - @Expose - @ConfigOption(name = "Mushroom", desc = "Suggested farm speed:\n" + - "§eYaw 60§7: §f✦ 233 speed") - @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) - public int mushroom = 233; - } - - @Expose - public Position pos = new Position(5, -200, false, true); - } - - @Expose - @ConfigOption(name = "Garden Level", desc = "") - @Accordion - public GardenLevelConfig gardenLevels = new GardenLevelConfig(); - - public static class GardenLevelConfig { - @Expose - @ConfigOption(name = "Display", desc = "Show the current Garden level and progress to the next level.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - public Position pos = new Position(390, 40, false, true); - } - - @Expose - @ConfigOption(name = "Farming Weight", desc = "") - @Accordion - public EliteFarmingWeightConfig eliteFarmingWeights = new EliteFarmingWeightConfig(); - - public static class EliteFarmingWeightConfig { - @Expose - @ConfigOption(name = "Display", desc = "Display your farming weight on screen. " + - "The calculation and API is provided by The Elite SkyBlock farmers. " + - "See §ehttps://elitebot.dev/info §7for more info.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - public Position pos = new Position(180, 10, false, true); - - @Expose - @ConfigOption(name = "Leaderboard Ranking", desc = "Show your position in the farming weight leaderboard. " + - "Only if your farming weight is high enough! Updates every 10 minutes.") - @ConfigEditorBoolean - public boolean leaderboard = true; - - @Expose - @ConfigOption(name = "Overtake ETA", desc = "Show a timer estimating when you'll move up a spot in the leaderboard! " + - "Will show an ETA to rank #10,000 if you're not on the leaderboard yet.") - @ConfigEditorBoolean - public boolean overtakeETA = false; - - @Expose - @ConfigOption(name = "Offscreen Drop Message", desc = "Show a chat message when joining Garden how many spots you have dropped since last Garden join.") - @ConfigEditorBoolean - public boolean offScreenDropMessage = true; - - @Expose - @ConfigOption(name = "Always ETA", desc = "Show the Overtake ETA always, even when not farming at the moment.") - @ConfigEditorBoolean - public boolean overtakeETAAlways = true; - - @Expose - @ConfigOption(name = "ETA Goal", desc = "Override the Overtake ETA to show when you'll reach the specified rank (if not there yet). (Default: \"10,000\")") - @ConfigEditorText - public String ETAGoalRank = "10000"; - - @Expose - @ConfigOption(name = "Show below 200", desc = "Show the farming weight data even if you are below 200 weight.") - @ConfigEditorBoolean - public boolean ignoreLow = false; - } - - @Expose - @ConfigOption(name = "Dicer Counter", desc = "") - @Accordion - public DicerCounterConfig dicerCounters = new DicerCounterConfig(); - - public static class DicerCounterConfig { - @Expose - @ConfigOption(name = "RNG Drop Counter", desc = "Count RNG drops for Melon Dicer and Pumpkin Dicer.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Hide the chat message when dropping a RNG Dicer drop.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideChat = false; - - @Expose - public Position pos = new Position(16, -232, false, true); - } - - @Expose - @ConfigOption(name = "Money per Hour", desc = "") - @Accordion - public MoneyPerHourConfig moneyPerHours = new MoneyPerHourConfig(); - - public static class MoneyPerHourConfig { - @Expose - @ConfigOption(name = "Show Money per Hour", - desc = "Displays the money per hour YOU get with YOUR crop/minute value when selling the item to bazaar. " + - "Supports Bountiful, Mushroom Cow Perk, Armor Crops and Dicer Drops. Their toggles are below.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - // TODO moulconfig runnable support - @Expose - @ConfigOption(name = "Only Show Top", desc = "Only show the best # items.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 25, - minStep = 1 - ) - public int showOnlyBest = 5; - - @Expose - @ConfigOption(name = "Extend Top List", desc = "Add current crop to the list if its lower ranked than the set limit by extending the list.") - @ConfigEditorBoolean - public boolean showCurrent = true; - - // TODO moulconfig runnable support - @Expose - @ConfigOption( - name = "Always On", - desc = "Always show the money/hour Display while on the garden.") - @ConfigEditorBoolean - public boolean alwaysOn = false; - - @Expose - @ConfigOption( - name = "Compact Mode", - desc = "Hide the item name and the position number.") - @ConfigEditorBoolean - public boolean compact = false; - - @Expose - @ConfigOption( - name = "Compact Price", - desc = "Show the price more compact.") - @ConfigEditorBoolean - public boolean compactPrice = false; - - @Expose - @ConfigOption( - name = "Use Custom", - desc = "Use the custom format below instead of classic ➜ §eSell Offer §7and other profiles ➜ §eNPC Price.") - @ConfigEditorBoolean - public boolean useCustomFormat = false; - - @Expose - @ConfigOption( - name = "Custom Format", - desc = "Set what prices to show") - @ConfigEditorDraggableList( - exampleText = { - "§eSell Offer", - "§eInstant Sell", - "§eNPC Price" - }, - requireNonEmpty = true - ) - public List<Integer> customFormat = new ArrayList<>(Arrays.asList(0, 1, 2)); - - @Expose - @ConfigOption( - name = "Merge Seeds", - desc = "Merge the seeds price with the wheat price.") - @ConfigEditorBoolean - public boolean mergeSeeds = true; - - @Expose - @ConfigOption( - name = "Include Bountiful", - desc = "Includes the coins from Bountiful in the calculation.") - @ConfigEditorBoolean - public boolean bountiful = true; - - @Expose - @ConfigOption( - name = "Include Mooshroom Cow", - desc = "Includes the coins you get from selling the mushrooms from your Mooshroom Cow pet.") - @ConfigEditorBoolean - public boolean mooshroom = true; - - @Expose - @ConfigOption( - name = "Include Armor Drops", - desc = "Includes the average coins/hr from your armor.") - @ConfigEditorBoolean - public boolean armor = true; - - @Expose - @ConfigOption( - name = "Include Dicer Drops", - desc = "Includes the average coins/hr from your melon or pumpkin dicer.") - @ConfigEditorBoolean - public boolean dicer = true; - - @Expose - @ConfigOption( - name = "Hide Title", - desc = "Hides the first line of 'Money Per Hour' entirely.") - @ConfigEditorBoolean - public boolean hideTitle = false; - - @Expose - public Position pos = new Position(-330, 170, false, true); - } - - @Expose - @ConfigOption(name = "Next Jacob's Contest", desc = "") - @Accordion - public NextJacobContestConfig nextJacobContests = new NextJacobContestConfig(); - - public static class NextJacobContestConfig { - @Expose - @ConfigOption(name = "Show Jacob's Contest", desc = "Show the current or next Jacob's farming contest time and crops.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - @ConfigOption(name = "Outside Garden", desc = "Show the timer not only in Garden but everywhere in SkyBlock.") - @ConfigEditorBoolean - public boolean everywhere = false; - - @Expose - @ConfigOption(name = "In Other Guis", desc = "Mark the current or next Farming Contest crops in other farming GUIs as underlined.") - @ConfigEditorBoolean - public boolean otherGuis = false; - - @Expose - @ConfigOption(name = "Fetch Contests", desc = "Automatically fetch Contests from elitebot.dev for the current year if they're uploaded already.") - @ConfigEditorBoolean - public boolean fetchAutomatically = true; - - @Expose - @ConfigOption(name = "Share Contests", desc = "Share the list of upcoming Contests to elitebot.dev for everyone else to then fetch automatically.") - @ConfigEditorDropdown(values = {"Ask When Needed", "Share Automatically", "Disabled"}) - public int shareAutomatically = 0; - - @Expose - @ConfigOption(name = "Warning", desc = "Show a warning shortly before a new Jacob's Contest starts.") - @ConfigEditorBoolean - public boolean warn = false; - - @Expose - @ConfigOption(name = "Warning Time", desc = "Set the warning time in seconds before a Jacob's Contest begins.") - @ConfigEditorSlider( - minValue = 10, - maxValue = 60 * 5, - minStep = 1 - ) - public int warnTime = 60 * 2; - - @Expose - @ConfigOption(name = "Popup Warning", desc = "Opens a popup when the warning time is reached and Minecraft is not in focus.") - @ConfigEditorBoolean - public boolean warnPopup = false; - - @Expose - public Position pos = new Position(-200, 10, false, true); - } - - @Expose - @ConfigOption(name = "Farming Armor Drops", desc = "") - - @Accordion - public FarmingArmorDropsConfig farmingArmorDrop = new FarmingArmorDropsConfig(); - - public static class FarmingArmorDropsConfig { - @Expose - @ConfigOption(name = "Show Counter", desc = "Count all §9Cropie§7, §5Squash §7and §6Fermento §7dropped.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Hide the chat message when receiving a farming armor drop.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideChat = false; - - @Expose - public Position pos = new Position(16, -232, false, true); - } - - @Expose - @ConfigOption(name = "Anita Shop", desc = "") - @Accordion - public AnitaShopConfig anitaShop = new AnitaShopConfig(); - - public static class AnitaShopConfig { - @Expose - @ConfigOption( - name = "Medal Prices", - desc = "Helps to identify profitable items to buy at the Anita item shop " + - "and potential profit from selling the item in the Auction House." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean medalProfitEnabled = true; - - @Expose - @ConfigOption( - name = "Extra Farming Fortune", - desc = "Show current tier and cost to max out in the item tooltip.") - @ConfigEditorBoolean - @FeatureToggle - public boolean extraFarmingFortune = true; - - @Expose - public Position medalProfitPos = new Position(206, 158, false, true); - } - - @Expose - @ConfigOption(name = "Composter", desc = "") - @Accordion - public ComposterConfig composters = new ComposterConfig(); - - public static class ComposterConfig { - @Expose - @ConfigOption( - name = "Composter Overlay", - desc = "Show organic matter, fuel, and profit prices while inside the Composter Inventory." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean overlay = true; - - @Expose - @ConfigOption(name = "Overlay Price", desc = "Toggle for Bazaar 'buy order' vs 'instant buy' price in composter overlay.") - @ConfigEditorDropdown(values = {"Instant Buy", "Buy Order"}) - public int overlayPriceType = 0; - - @Expose - @ConfigOption(name = "Retrieve From", desc = "Change where to retrieve the materials from in the composter overlay: The Bazaar or Sacks.") - @ConfigEditorDropdown(values = {"Bazaar", "Sacks"}) - public int retrieveFrom = 0; - - @Expose - public Position overlayOrganicMatterPos = new Position(140, 152, false, true); - - @Expose - public Position overlayFuelExtrasPos = new Position(-320, 152, false, true); - - @Expose - @ConfigOption( - name = "Display Element", - desc = "Displays the Compost data from the tab list as GUI element." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean displayEnabled = true; - - @Expose - @ConfigOption( - name = "Outside Garden", - desc = "Show Time till Composter is empty outside Garden" - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean displayOutsideGarden = false; - - @Expose - @ConfigOption( - name = "Composter Warning", - desc = "Warn when the Composter gets close to empty, even outside Garden." - ) - @ConfigEditorBoolean - public boolean warnAlmostClose = false; - - @Expose - @ConfigOption( - name = "Upgrade Price", - desc = "Show the price for the Composter Upgrade in the lore." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean upgradePrice = true; - - @Expose - @ConfigOption( - name = "Round Amount Needed", - desc = "Rounds the amount needed to fill your Composter down so that you don't overspend." - ) - @ConfigEditorBoolean - public boolean roundDown = true; - - @Expose - @ConfigOption( - name = "Highlight Upgrade", - desc = "Highlight Upgrades that can be bought right now." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightUpgrade = true; - - @Expose - @ConfigOption( - name = "Inventory Numbers", - desc = "Show the amount of Organic Matter, Fuel and Composts Available while inside the Composter Inventory." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean inventoryNumbers = true; - - @Expose - @ConfigOption(name = "Notification When Low Composter", desc = "") - @Accordion - public NotifyLowConfig notifyLow = new NotifyLowConfig(); - - public static class NotifyLowConfig { - @Expose - @ConfigOption(name = "Enable", desc = "Show a notification when Organic Matter or Fuel runs low in your Composter.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Show Title", desc = "Send a title to notify.") - @ConfigEditorBoolean - public boolean title = false; - - @Expose - @ConfigOption(name = "Min Organic Matter", desc = "Warn when Organic Matter is below this value.") - @ConfigEditorSlider( - minValue = 1_000, - maxValue = 80_000, - minStep = 1 - ) - public int organicMatter = 20_000; - - @Expose - @ConfigOption(name = "Min Fuel Cap", desc = "Warn when Fuel is below this value.") - @ConfigEditorSlider( - minValue = 500, - maxValue = 40_000, - minStep = 1 - ) - public int fuel = 10_000; - } - - @Expose - public Position displayPos = new Position(-390, 10, false, true); - - @Expose - public Position outsideGardenPos = new Position(-363, 13, false, true); - } - - @Expose - @ConfigOption(name = "Farming Fortune Display", desc = "") - @Accordion - public FarmingFortuneConfig farmingFortunes = new FarmingFortuneConfig(); - - public static class FarmingFortuneConfig { - @Expose - @ConfigOption( - name = "FF Display", - desc = "Displays the true Farming Fortune for the current crop, including all crop-specific and hidden bonuses." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean display = true; - - @Expose - @ConfigOption( - name = "Show As Drop Multiplier", - desc = "Adds 100 to the displayed Farming Fortune so that it represents a drop multiplier rather than" + - " the chance for bonus drops. " - ) - @ConfigEditorBoolean - public boolean dropMultiplier = true; - - @ConfigOption(name = "Farming Fortune Guide", desc = "Opens a guide that breaks down your Farming Fortune.\n§eCommand: /ff") - @ConfigEditorButton(buttonText = "Open") - public Runnable open = Commands::openFortuneGuide; - - @Expose - public Position pos = new Position(5, -180, false, true); - } - - @Expose - @ConfigOption(name = "Tooltip Tweaks", desc = "") - @Accordion - public TooltipTweaksConfig tooltipTweak = new TooltipTweaksConfig(); - - public static class TooltipTweaksConfig { - @Expose - @ConfigOption( - name = "Compact Descriptions", - desc = "Hides redundant parts of reforge descriptions, generic counter description, and Farmhand perk explanation." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean compactToolTooltips = false; - - @Expose - @ConfigOption( - name = "Breakdown Hotkey", - desc = "When the keybind is pressed, show a breakdown of all fortune sources on a tool." - ) - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_LSHIFT) - public int fortuneTooltipKeybind = Keyboard.KEY_LSHIFT; - - @Expose - @ConfigOption( - name = "Tooltip Format", - desc = "Show crop-specific Farming Fortune in tooltip.\n" + - "§fShow: §7Crop-specific Fortune indicated as §6[+196]\n" + - "§fReplace: §7Edits the total Fortune to include crop-specific Fortune." - ) - @ConfigEditorDropdown(values = {"Default", "Show", "Replace"}) - public int cropTooltipFortune = 1; - - @Expose - @ConfigOption( - name = "Total Crop Milestone", - desc = "Shows the progress bar till maxed crop milestone in the crop milestone inventory." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean cropMilestoneTotalProgress = true; - } - - @Expose - @ConfigOption(name = "Yaw and Pitch", desc = "") - @Accordion - public YawPitchDisplayConfig yawPitchDisplay = new YawPitchDisplayConfig(); - - public static class YawPitchDisplayConfig { - - @Expose - @ConfigOption(name = "Enable", desc = "Displays yaw and pitch while holding a farming tool. Automatically fades out if there is no movement.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Yaw Precision", desc = "Yaw precision up to specified decimal.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 10, - minStep = 1 - ) - public int yawPrecision = 4; - - @Expose - @ConfigOption(name = "Pitch Precision", desc = "Pitch precision up to specified decimal.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 10, - minStep = 1 - ) - public int pitchPrecision = 4; - - @Expose - @ConfigOption(name = "Display Timeout", desc = "Duration in seconds for which the overlay is being displayed after moving.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 20, - minStep = 1 - ) - public int timeout = 5; - - @Expose - @ConfigOption(name = "Show Without Tool", desc = "Does not require you to hold a tool for the overlay to show.") - @ConfigEditorBoolean - public boolean showWithoutTool = false; - - @Expose - @ConfigOption(name = "Show Outside Garden", desc = "The overlay will work outside of the Garden.") - @ConfigEditorBoolean - public boolean showEverywhere = false; - - @Expose - @ConfigOption(name = "Ignore Timeout", desc = "Ignore the timeout after not moving mouse.") - @ConfigEditorBoolean - public boolean showAlways = false; - - @Expose - public Position pos = new Position(445, 225, false, true); - @Expose - public Position posOutside = new Position(445, 225, false, true); - } - - @Expose - @ConfigOption(name = "Crop Start Location", desc = "") - @Accordion - public CropStartLocationConfig cropStartLocation = new CropStartLocationConfig(); - - public static class CropStartLocationConfig { - - @Expose - @ConfigOption(name = "Enable", desc = "Show the start waypoint for your farm with the currently holding tool.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - } - - @Expose - @ConfigOption(name = "Garden Plot Icon", desc = "") - @Accordion - public PlotIconConfig plotIcon = new PlotIconConfig(); - - public static class PlotIconConfig { - @Expose - @ConfigOption(name = "Enable", desc = "Enable icon replacement in the Configure Plots menu.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @ConfigOption(name = "Hard Reset", desc = "Reset every slot to its original item.") - @ConfigEditorButton(buttonText = "Reset") - public Runnable hardReset = () -> { - GardenPlotIcon.INSTANCE.setHardReset(true); - LorenzUtils.INSTANCE.sendCommandToServer("desk"); - }; - } - - @Expose - @ConfigOption(name = "Plot Price", desc = "Show the price of the plot in coins when inside the Configure Plots inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean plotPrice = true; - - @Expose - @ConfigOption(name = "Desk in Menu", desc = "Show a Desk button in the SkyBlock Menu. Opens the /desk command on click.") - @ConfigEditorBoolean - @FeatureToggle - public boolean deskInSkyBlockMenu = true; - - - @Expose - @ConfigOption(name = "Fungi Cutter Warning", desc = "Warn when breaking mushroom with the wrong Fungi Cutter mode.") - @ConfigEditorBoolean - @FeatureToggle - public boolean fungiCutterWarn = true; - - @Expose - @ConfigOption(name = "Burrowing Spores", desc = "Show a notification when a Burrowing Spores spawns while farming mushrooms.") - @ConfigEditorBoolean - @FeatureToggle - public boolean burrowingSporesNotification = true; - - @Expose - @ConfigOption(name = "Wild Strawberry", desc = "Show a notification when a Wild Strawberry Dye drops while farming.") - @ConfigEditorBoolean - @FeatureToggle - public boolean wildStrawberryDyeNotification = true; - - @Expose - @ConfigOption( - name = "FF for Contest", - desc = "Show the minimum needed Farming Fortune for reaching each medal in Jacob's Farming Contest inventory." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean farmingFortuneForContest = true; - - @Expose - public Position farmingFortuneForContestPos = new Position(180, 156, false, true); - - @Expose - @ConfigOption( - name = "Contest Time Needed", - desc = "Show the time and missing FF for every crop inside Jacob's Farming Contest inventory." - ) - @ConfigEditorBoolean - @FeatureToggle - // TODO rename to jacobContestTimes - public boolean jacobContextTimes = true; - - @Expose - @ConfigOption( - name = "Custom BPS", - desc = "Use custom Blocks per Second value in some GUIs instead of the real one." - ) - @ConfigEditorBoolean - public boolean jacobContestCustomBps = true; - - // TODO moulconfig runnable support - @Expose - @ConfigOption(name = "Custom BPS Value", desc = "Set a custom Blocks per Second value.") - @ConfigEditorSlider( - minValue = 15, - maxValue = 20, - minStep = 0.1f - ) - public double jacobContestCustomBpsValue = 19.9; - - @Expose - // TODO rename to jacobContestTimesPos - public Position jacobContextTimesPos = new Position(-359, 149, false, true); - - @Expose - @ConfigOption( - name = "Contest Summary", - desc = "Show the average Blocks Per Second and blocks clicked at the end of a Jacob Farming Contest in chat." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean jacobContestSummary = true; - - @Expose - @ConfigOption(name = "Always Finnegan", desc = "Forcefully set the Finnegan Farming Simulator perk to be active. This is useful if the auto mayor detection fails.") - @ConfigEditorBoolean - public boolean forcefullyEnabledAlwaysFinnegan = false; - - @Expose - public Position cropSpeedMeterPos = new Position(278, -236, false, true); - - @Expose - @ConfigOption(name = "Enable Plot Borders", desc = "Enable the use of F3 + G hotkey to show Garden plot borders. Similar to how later Minecraft version render chunk borders.") - @ConfigEditorBoolean - @FeatureToggle - public boolean plotBorders = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/InventoryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/InventoryConfig.java deleted file mode 100644 index 50128e85e..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/InventoryConfig.java +++ /dev/null @@ -1,480 +0,0 @@ -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.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class InventoryConfig { - - @Expose - @ConfigOption(name = "Not Clickable Items", desc = "") - @Accordion - public HideNotClickableConfig hideNotClickable = new HideNotClickableConfig(); - - public static class HideNotClickableConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Hide items that are not clickable in the current inventory: ah, bz, accessory bag, etc.") - @ConfigEditorBoolean - @FeatureToggle - public boolean items = false; - - @Expose - @ConfigOption(name = "Block Clicks", desc = "Block the clicks on these items.") - @ConfigEditorBoolean - public boolean itemsBlockClicks = true; - - @Expose - @ConfigOption( - name = "Opacity", - desc = "How strong should the items be grayed out?" - ) - @ConfigEditorSlider( - minValue = 0, - maxValue = 255, - minStep = 5 - ) - public int opacity = 180; - - @Expose - @ConfigOption(name = "Bypass With Control", desc = "Adds the ability to bypass not clickable items when holding the control key.") - @ConfigEditorBoolean - public boolean itemsBypass = true; - - @Expose - @ConfigOption(name = "Green Line", desc = "Adds green line around items that are clickable.") - @ConfigEditorBoolean - public boolean itemsGreenLine = true; - - } - - @Expose - @ConfigOption(name = "RNG Meter", desc = "") - @Accordion - public RngMeterConfig rngMeter = new RngMeterConfig(); - - public static class RngMeterConfig { - @Expose - @ConfigOption(name = "Floor Names", desc = "Show the Floor names in the Catacombs RNG Meter inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean floorName = false; - - @Expose - @ConfigOption(name = "No Drop", desc = "Highlight floors without a drop selected in the Catacombs RNG Meter inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean noDrop = false; - - @Expose - @ConfigOption(name = "Selected Drop", desc = "Highlight the selected drop in the Catacombs or Slayer RNG Meter inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean selectedDrop = false; - } - - @Expose - @ConfigOption(name = "Stats Tuning", desc = "") - @Accordion - public StatsTuningConfig statsTuning = new StatsTuningConfig(); - - public static class StatsTuningConfig { - @Expose - @ConfigOption(name = "Selected Stats", desc = "Show the tuning stats in the Thaumaturgy inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean selectedStats = true; - - @Expose - @ConfigOption(name = "Tuning Points", desc = "Show the amount of selected Tuning Points in the Stats Tuning inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean points = true; - - @Expose - @ConfigOption(name = "Selected Template", desc = "Highlight the selected template in the Stats Tuning inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean selectedTemplate = true; - - @Expose - @ConfigOption(name = "Template Stats", desc = "Show the type of stats for the Tuning Point templates.") - @ConfigEditorBoolean - @FeatureToggle - public boolean templateStats = true; - } - - @Expose - @ConfigOption(name = "Jacob Farming Contest", desc = "") - @Accordion - public JacobFarmingContestConfig jacobFarmingContests = new JacobFarmingContestConfig(); - - public static class JacobFarmingContestConfig { - @Expose - @ConfigOption(name = "Unclaimed Rewards", desc = "Highlight contests with unclaimed rewards in the Jacob inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightRewards = true; - - @Expose - @ConfigOption(name = "Contest Time", desc = "Adds the real time format to the Contest description.") - @ConfigEditorBoolean - @FeatureToggle - public boolean realTime = true; - - @Expose - @ConfigOption(name = "Medal Icon", desc = "Adds a symbol that shows what medal you received in this Contest. " + - "§eIf you use a texture pack this may cause conflicting icons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean medalIcon = true; - - @Expose - @ConfigOption(name = "Finnegan Icon", desc = "Uses a different indicator for when the Contest happened during Mayor Finnegan.") - @ConfigEditorBoolean - public boolean finneganIcon = true; - } - - - @Expose - @ConfigOption(name = "Sack Items Display", desc = "") - @Accordion - public SackDisplayConfig sackDisplay = new SackDisplayConfig(); - - public static class SackDisplayConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Show contained items inside a sack inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption( - name = "Highlight Full", - desc = "Highlight items that are full in red.\n" + - "§eDoes not need the option above to be enabled." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightFull = true; - - @Expose - @ConfigOption(name = "Number Format", desc = "Either show Default, Formatted or Unformatted numbers.\n" + - "§eDefault: §72,240/2.2k\n" + - "§eFormatted: §72.2k/2.2k\n" + - "§eUnformatted: §72,240/2,200") - @ConfigEditorDropdown(values = {"Default", "Formatted", "Unformatted"}) - public int numberFormat = 1; - - @Expose - @ConfigOption(name = "Extra space", desc = "Space between each line of text.") - @ConfigEditorSlider( - minValue = 0, - maxValue = 10, - minStep = 1) - public int extraSpace = 1; - - @Expose - @ConfigOption(name = "Sorting Type", desc = "Sorting type of items in sack.") - @ConfigEditorDropdown(values = {"Descending (Stored)", "Ascending (Stored)", "Descending (Price)", "Ascending (Price)"}) - public int sortingType = 0; - - @Expose - @ConfigOption(name = "Item To Show", desc = "Choose how many items are displayed. (Some sacks have too many items to fit\n" + - "in larger GUI scales, like the nether sack.)") - @ConfigEditorSlider( - minValue = 0, - maxValue = 45, - minStep = 1 - ) - public int itemToShow = 15; - - @Expose - @ConfigOption(name = "Show Empty Item", desc = "Show empty item quantity in the display.") - @ConfigEditorBoolean - public boolean showEmpty = true; - - @Expose - @ConfigOption(name = "Show Price", desc = "Show price for each item in sack.") - @ConfigEditorBoolean - public boolean showPrice = true; - - @Expose - @ConfigOption(name = "Price Format", desc = "Format of the price displayed.\n" + - "§eFormatted: §7(12k)\n" + - "§eUnformatted: §7(12,421)") - @ConfigEditorDropdown(values = {"Formatted", "Unformatted"}) - public int priceFormat = 0; - - @Expose - @ConfigOption(name = "Show Price From", desc = "Show price from Bazaar or NPC.") - @ConfigEditorDropdown(values = {"Bazaar", "NPC"}) - public int priceFrom = 0; - - @Expose - public Position position = new Position(144, 139, false, true); - } - - @Expose - @ConfigOption(name = "Chest Value", desc = "") - @Accordion - public ChestValueConfig chestValueConfig = new ChestValueConfig(); - - public static class ChestValueConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Enable estimated value of chest.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Enabled in dungeons", desc = "Enable the feature in dungeons.") - @ConfigEditorBoolean - public boolean enableInDungeons = false; - - @Expose - @ConfigOption(name = "Enable during Item Value", desc = "Show this display even if the Estimated Item Value is visible.") - @ConfigEditorBoolean - public boolean showDuringEstimatedItemValue = false; - - @Expose - @ConfigOption(name = "Show Stacks", desc = "Show the item icon before name.") - @ConfigEditorBoolean - public boolean showStacks = true; - - @Expose - @ConfigOption(name = "Display Type", desc = "Try to align everything to look nicer.") - @ConfigEditorBoolean - public boolean alignedDisplay = true; - - @Expose - @ConfigOption(name = "Name Length", desc = "Reduce item name length to gain extra space on screen.\n§cCalculated in pixels!") - @ConfigEditorSlider(minStep = 1, minValue = 100, maxValue = 150) - public int nameLength = 100; - - @Expose - @ConfigOption(name = "Highlight Slot", desc = "Highlight slot where the item is when you hover over it in the display.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enableHighlight = true; - - @Expose - @ConfigOption(name = "Highlight Color", desc = "Choose the highlight color.") - @ConfigEditorColour - public String highlightColor = "0:249:0:255:88"; - - @Expose - @ConfigOption(name = "Sorting Type", desc = "Price sorting type.") - @ConfigEditorDropdown(values = {"Descending", "Ascending"}) - public int sortingType = 0; - - @Expose - @ConfigOption(name = "Value formatting Type", desc = "Format of the price.") - @ConfigEditorDropdown(values = {"Short", "Long"}) - public int formatType = 0; - - @Expose - @ConfigOption(name = "Item To Show", desc = "Choose how many items are displayed.\n" + - "All items in the chest are still counted for the total value.") - @ConfigEditorSlider( - minValue = 0, - maxValue = 54, - minStep = 1 - ) - public int itemToShow = 15; - - @Expose - @ConfigOption(name = "Hide below", desc = "Item item value below configured amount.\n" + - "Items are still counted for the total value.") - @ConfigEditorSlider( - minValue = 50_000, - maxValue = 10_000_000, - minStep = 50_000 - ) - public int hideBelow = 100_000; - - - @Expose - public Position position = new Position(107, 141, false, true); - } - - @Expose - @ConfigOption(name = "Helper", desc = "") - @Accordion - public HelperConfig helper = new HelperConfig(); - - public static class HelperConfig { - @Expose - @ConfigOption(name = "Melody's Hair Harp", desc = "") - @Accordion - public HarpConfig harp = new HarpConfig(); - - public static class HarpConfig { - @Expose - @ConfigOption(name = "Use Keybinds", desc = "In the Harp, press buttons with your number row on the keyboard instead of clicking.") - @ConfigEditorBoolean - @FeatureToggle - public boolean keybinds = false; - - @Expose - @ConfigOption(name = "Show Numbers", desc = "In the Harp, show buttons as stack size (intended to be used with the Keybinds).") - @ConfigEditorBoolean - public boolean showNumbers = false; - - @Expose - @ConfigOption(name = "Keybinds", desc = "") - @Accordion - public HarpConfigKeyBinds harpKeybinds = new HarpConfigKeyBinds(); - - public static class HarpConfigKeyBinds { - @Expose - @ConfigOption(name = "Key 1", desc = "Key for the first Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_1) - public int key1 = Keyboard.KEY_1; - @Expose - @ConfigOption(name = "Key 2", desc = "Key for the second Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_2) - public int key2 = Keyboard.KEY_2; - @Expose - @ConfigOption(name = "Key 3", desc = "Key for the third Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_3) - public int key3 = Keyboard.KEY_3; - @Expose - @ConfigOption(name = "Key 4", desc = "Key for the fourth Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_4) - public int key4 = Keyboard.KEY_4; - @Expose - @ConfigOption(name = "Key 5", desc = "Key for the fifth Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_5) - public int key5 = Keyboard.KEY_5; - @Expose - @ConfigOption(name = "Key 6", desc = "Key for the sixth Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_6) - public int key6 = Keyboard.KEY_6; - @Expose - @ConfigOption(name = "Key 7", desc = "Key for the seventh Node") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_7) - public int key7 = Keyboard.KEY_7; - } - } - - @Expose - @ConfigOption(name = "Tia Relay Abiphone Network Maintenance", desc = "") - @Accordion - public TiaRelayConfig tiaRelay = new TiaRelayConfig(); - - public static class TiaRelayConfig { - - @Expose - @ConfigOption(name = "Sound Puzzle Helper", desc = "Helps with solving the sound puzzle for Tia (The 9 Operator Chips to do maintainance for the Abiphone Network).") - @ConfigEditorBoolean - @FeatureToggle - public boolean soundHelper = true; - - @Expose - @ConfigOption(name = "Next Waypoint", desc = "Show the next relay waypoint for Tia the Fairy, where maintenance for the Abiphone network needs to be done.") - @ConfigEditorBoolean - @FeatureToggle - public boolean nextWaypoint = true; - - @Expose - @ConfigOption(name = "All Waypoints", desc = "Show all relay waypoints at once (intended for debugging).") - @ConfigEditorBoolean - public boolean allWaypoints = false; - - @Expose - @ConfigOption(name = "Mute Sound", desc = "Mutes the sound when close to the relay.") - @ConfigEditorBoolean - @FeatureToggle - public boolean tiaRelayMute = true; - } - } - - @Expose - @ConfigOption( - name = "Item Number", - desc = "Showing the item number as a stack size for these items." - ) - @ConfigEditorDraggableList( - exampleText = { - "§bMaster Star Tier", - "§bMaster Skull Tier", - "§bDungeon Head Floor Number", - "§bNew Year Cake", - "§bPet Level", - "§bMinion Tier", - "§bCrimson Armor", - "§7(Removed)", - "§bKuudra Key", - "§bSkill Level", - "§bCollection Level", - "§bRancher's Boots speed", - "§bLarva Hook", - "§bDungeon Potion Level" - } - ) - public List<Integer> itemNumberAsStackSize = new ArrayList<>(Arrays.asList(3, 9, 11, 12)); - - @Expose - @ConfigOption( - name = "Quick Craft Confirmation", - desc = "Require Ctrl+Click to craft items that aren't often quick crafted " + - "(e.g. armor, weapons, accessories). Sack items can be crafted normally." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean quickCraftingConfirmation = false; - - @Expose - @ConfigOption(name = "Sack Name", desc = "Show an abbreviation of the sack name.") - @ConfigEditorBoolean - @FeatureToggle - public boolean displaySackName = false; - - @Expose - @ConfigOption(name = "Anvil Combine Helper", desc = "Suggests the same item in the inventory when trying to combine two items in the anvil.") - @ConfigEditorBoolean - @FeatureToggle - public boolean anvilCombineHelper = false; - - @Expose - @ConfigOption(name = "Item Stars", - desc = "Show a compact star count in the item name for all items.") - @ConfigEditorBoolean - @FeatureToggle - public boolean itemStars = false; - - @Expose - @ConfigOption(name = "Missing Tasks", - desc = "Highlight missing tasks in the SkyBlock Level Guide inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightMissingSkyBlockLevelGuide = true; - - @Expose - @ConfigOption(name = "Highlight Auctions", - desc = "Highlight own items that are sold in green and that are expired in red.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightAuctions = true; - - @Expose - @ConfigOption(name = "Shift Click Equipment", desc = "Makes normal clicks to shift clicks in equipment inventory") - @ConfigEditorBoolean - @FeatureToggle - public boolean shiftClickForEquipment = false; - -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/ItemAbilityConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/ItemAbilityConfig.java deleted file mode 100644 index 30ba1227f..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/ItemAbilityConfig.java +++ /dev/null @@ -1,74 +0,0 @@ -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.ConfigOption; - -public class ItemAbilityConfig { - - @Expose - @ConfigOption(name = "Ability Cooldown", desc = "Show the cooldown of item abilities.") - @ConfigEditorBoolean - @FeatureToggle - public boolean itemAbilityCooldown = false; - - @Expose - @ConfigOption(name = "Ability Cooldown Background", desc = "Show the cooldown color of item abilities in the background.") - @ConfigEditorBoolean - public boolean itemAbilityCooldownBackground = false; - - @Expose - @ConfigOption(name = "Fire Veil", desc = "") - @Accordion - public FireVeilWandConfig fireVeilWands = new FireVeilWandConfig(); - - public static class FireVeilWandConfig { - @Expose - @ConfigOption(name = "Fire Veil Design", desc = "Changes the flame particles of the Fire Veil Wand ability.") - @ConfigEditorDropdown(values = {"Particles", "Line", "Off"}) - public int display = 0; - - @Expose - @ConfigOption( - name = "Line Color", - desc = "Changes the color of the Fire Veil Wand line." - ) - @ConfigEditorColour - public String displayColor = "0:245:255:85:85"; - } - - @ConfigOption(name = "Chicken Head", desc = "") - @Accordion - @Expose - public ChickenHeadConfig chickenHead = new ChickenHeadConfig(); - - public static class ChickenHeadConfig { - - @Expose - @ConfigOption(name = "Checken Head Timer", desc = "Show the cooldown until the next time you can lay an egg with the Chicken Head.") - @ConfigEditorBoolean - @FeatureToggle - public boolean displayTimer = false; - - @Expose - public Position position = new Position(-372, 73, false, true); - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Hide the 'You laid an egg!' chat message.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideChat = true; - } - - @Expose - @ConfigOption(name = "Depleted Bonzo's Masks", - desc = "Highlights used Bonzo's Masks and Spirit Masks with a background.") - @ConfigEditorBoolean - @FeatureToggle - public boolean depletedBonzosMasks = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/MiningConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/MiningConfig.java deleted file mode 100644 index 5272336df..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/MiningConfig.java +++ /dev/null @@ -1,128 +0,0 @@ -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.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigOption; -import io.github.moulberry.moulconfig.observer.Property; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class MiningConfig { - - @Expose - @ConfigOption(name = "Powder Tracker", desc = "") - @Accordion - public PowderTrackerConfig powderTracker = new PowderTrackerConfig(); - - public static class PowderTrackerConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Enable the Powder Tracker overlay for mining.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Only when Grinding", desc = "Only show the overlay when powder grinding.") - @ConfigEditorBoolean - public boolean onlyWhenPowderGrinding = false; - - @Expose - @ConfigOption(name = "Great Explorer", desc = "Enable this if your Great Explorer perk is maxed.") - @ConfigEditorBoolean - public boolean greatExplorerMaxed = false; - - @Expose - @ConfigOption( - name = "Text Format", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§b§lPowder Tracker", - "§7Display Mode: §a[Total] §e[This Session]", - "§d852 Total chests Picked §7(950/h)", - "§bx2 Powder: §aActive!", - "§b250,420 §aMithril Powder §7(350,000/h)", - "§b250,420 §dGemstone Powder §7(350,000/h)", - "", - "§b129 §bDiamond Essence §7(600/h)", - "§b234 §6Gold Essence §7(700/h)", - "", - "§50§7-§90§7-§a0§f-0 §cRuby Gemstone", - "§50§7-§90§7-§a0§f-0 §bSapphire Gemstone", - "§50§7-§90§7-§a0§f-0 §6Amber Gemstone", - "§50§7-§90§7-§a0§f-0 §5Amethyst Gemstone", - "§50§7-§90§7-§a0§f-0 §aJade Gemstone", - "§50§7-§90§7-§a0§f-0 §eTopaz Gemstone", - - "§b14 §9FTX 3070", - "§b14 §9Electron Transmitter", - "§b14 §9Robotron Reflector", - "§b14 §9Superlite Motor", - "§b14 §9Control Switch", - "§b14 §9Synthetic Heart", - "§b14 §9Total Robot Parts", - - "§90§7-§a0§7-§c0§f-§e0§f-§30 §fGoblin Egg", - - "§b12 §aWishing Compass", - - "§b320 §aSludge Juice", - "§b2 §9Ascension Rope", - "§b6 §5Treasurite", - "§b4 §6Jungle Heart", - "§b1 §5Pickonimbus 2000", - "§b14 §aYoggie", - "§b9 §fPrehistoric Egg", - "§b25 §aOil Barrel" - } - ) - public Property<List<Integer>> textFormat = Property.of(new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18))); - - @Expose - public Position position = new Position(-274, 0, false, true); - - } - - @Expose - @ConfigOption(name = "King Talisman", desc = "") - @Accordion - public KingTalismanConfig kingTalisman = new KingTalismanConfig(); - - public static class KingTalismanConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Show kings you have not talked to yet, and when the next missing king will appear.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Outside Mines", desc = "Show the display even while outside the Dwarven Mines.") - @ConfigEditorBoolean - @FeatureToggle - public boolean outsideMines = false; - - @Expose - public Position position = new Position(-400, 220, false, true); - } - - @Expose - @ConfigOption(name = "Highlight Commission Mobs", desc = "Highlight Mobs that are part of active commissions.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightCommissionMobs = false; - - @Expose - @ConfigOption(name = "Names in Core", desc = "Show the names of the 4 areas while in the center of the Crystal Hollows.") - @ConfigEditorBoolean - @FeatureToggle - public boolean crystalHollowsNamesInCore = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/MinionsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/MinionsConfig.java deleted file mode 100644 index a05b913dc..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/MinionsConfig.java +++ /dev/null @@ -1,96 +0,0 @@ -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.ConfigEditorSlider; -import io.github.moulberry.moulconfig.annotations.ConfigOption; - -public class MinionsConfig { - - @Expose - @ConfigOption(name = "Name Display", desc = "Show the minion name and tier over the minion.") - @ConfigEditorBoolean - @FeatureToggle - public boolean nameDisplay = true; - - @Expose - @ConfigOption(name = "Only Tier", desc = "Show only the tier number over the minion. (Useful for Bingo)") - @ConfigEditorBoolean - public boolean nameOnlyTier = false; - - @Expose - @ConfigOption(name = "Last Clicked", desc = "") - @Accordion - public LastClickedMinionConfig lastClickedMinion = new LastClickedMinionConfig(); - - public static class LastClickedMinionConfig { - @Expose - @ConfigOption(name = "Last Minion Display", desc = "Marks the location of the last clicked minion, even through walls.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = false; - - @Expose - @ConfigOption( - name = "Last Minion Color", - desc = "The color in which the last minion should be displayed." - ) - @ConfigEditorColour - public String color = "0:245:85:255:85"; - - @Expose - @ConfigOption( - name = "Last Minion Time", - desc = "Time in seconds how long the last minion should be displayed." - ) - @ConfigEditorSlider( - minValue = 3, - maxValue = 120, - minStep = 1 - ) - public int time = 20; - } - - @Expose - @ConfigOption(name = "Emptied Time", desc = "") - @Accordion - public EmptiedTimeConfig emptiedTime = new EmptiedTimeConfig(); - - public static class EmptiedTimeConfig { - @Expose - @ConfigOption(name = "Emptied Time Display", desc = "Show the time when the hopper in the minion was last emptied.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = false; - - @Expose - @ConfigOption( - name = "Distance", - desc = "Maximum distance to display minion data." - ) - @ConfigEditorSlider( - minValue = 3, - maxValue = 30, - minStep = 1 - ) - public int distance = 10; - } - - @Expose - @ConfigOption(name = "Hopper Profit Display", desc = "Use the hopper's held coins and the last empty time to calculate the coins per day.") - @ConfigEditorBoolean - public boolean hopperProfitDisplay = true; - - @Expose - public Position hopperProfitPos = new Position(360, 90, false, true); - - @Expose - @ConfigOption(name = "Hide Mob Nametag", desc = "Hiding the nametag of mobs close to minions.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideMobsNametagNearby = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java deleted file mode 100644 index 2fc113216..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java +++ /dev/null @@ -1,834 +0,0 @@ -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.ConfigEditorDraggableList; -import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; -import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; -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; -import org.lwjgl.input.Keyboard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class MiscConfig { - - @Expose - @ConfigOption(name = "Pet", desc = "") - @Accordion - public PetConfig pets = new PetConfig(); - - public static class PetConfig { - @Expose - @ConfigOption(name = "Pet Display", desc = "Show the currently active pet.") - @ConfigEditorBoolean - @FeatureToggle - public boolean display = false; - - @Expose - @ConfigOption(name = "Pet Experience Tooltip", desc = "") - @Accordion - public PetExperienceToolTipConfig petExperienceToolTip = new PetExperienceToolTipConfig(); - - public static class PetExperienceToolTipConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Show the full pet exp and the progress to level 100 (ignoring rarity) when hovering over a pet while pressing shift key.") - @ConfigEditorBoolean - @FeatureToggle - public boolean petDisplay = true; - - @Expose - @ConfigOption(name = "Show Always", desc = "Show this info always, even if not pressing shift key.") - @ConfigEditorBoolean - public boolean showAlways = false; - - @Expose - @ConfigOption(name = "Dragon Egg", desc = "For a Golden Dragon Egg, show progress to level 100 instead of 200.") - @ConfigEditorBoolean - public boolean showGoldenDragonEgg = true; - - } - } - - @Expose - public Position petDisplayPos = new Position(-330, -15, false, true); - - @ConfigOption(name = "Hide Armor", desc = "") - @Accordion - @Expose - public HideArmor hideArmor2 = new HideArmor(); - - public static class HideArmor { - - @Expose - @ConfigOption(name = "Mode", desc = "Hide the armor of players.") - @ConfigEditorDropdown(values = {"All", "Own Armor", "Other's Armor", "Off"}) - public int mode = 3; - - @Expose - @ConfigOption(name = "Only Helmet", desc = "Only hide the helmet.") - @ConfigEditorBoolean() - public Boolean onlyHelmet = false; - - } - - @Expose - @ConfigOption(name = "Potion Effects", desc = "") - @Accordion - public PotionEffectsConfig potionEffect = new PotionEffectsConfig(); - - public static class PotionEffectsConfig { - @Expose - @ConfigOption(name = "Non God Pot Effects", desc = "Display the active potion effects that are not part of the God Pot.") - @ConfigEditorBoolean - @FeatureToggle - public boolean nonGodPotEffectDisplay = false; - - @Expose - @ConfigOption(name = "Show Mixins", desc = "Include God Pot mixins in the Non God Pot Effects display.") - @ConfigEditorBoolean - @FeatureToggle - public boolean nonGodPotEffectShowMixins = false; - - @Expose - public Position nonGodPotEffectPos = new Position(10, 10, false, true); - } - - @Expose - @ConfigOption(name = "Particle Hider", desc = "") - @Accordion - public ParticleHiderConfig particleHiders = new ParticleHiderConfig(); - - public static class ParticleHiderConfig { - @Expose - @ConfigOption(name = "Blaze Particles", desc = "Hide Blaze particles.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideBlazeParticles = false; - - @Expose - @ConfigOption(name = "Enderman Particles", desc = "Hide Enderman particles.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideEndermanParticles = false; - - @Expose - @ConfigOption(name = "Fireball Particles", desc = "Hide fireball particles.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideFireballParticles = true; - - @Expose - @ConfigOption(name = "Fire Particles", desc = "Hide particles from the fire block.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideFireBlockParticles = true; - - @Expose - @ConfigOption(name = "Smoke Particles", desc = "Hide smoke particles.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideSmokeParticles = false; - - @Expose - @ConfigOption(name = "Far Particles", desc = "Hide particles that are more than 40 blocks away.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideFarParticles = true; - - @Expose - @ConfigOption(name = "Close Redstone Particles", desc = "Hide Redstone particles around the player (appear for some potion effects).") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideCloseRedstoneParticles = true; - } - - @Expose - @ConfigOption(name = "Estimated Item Value", desc = "(Prices for Enchantments, Reforge Stones, Gemstones, Drill Parts and more)") - @Accordion - public EstimatedItemValueConfig estimatedItemValues = new EstimatedItemValueConfig(); - - public static class EstimatedItemValueConfig { - @Expose - @ConfigOption(name = "Enable Estimated Price", desc = "Displays an Estimated Item Value for the item you hover over.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Hotkey", desc = "Press this key to show the Estimated Item Value.") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int hotkey = Keyboard.KEY_NONE; - - @Expose - @ConfigOption(name = "Show Always", desc = "Ignore the hotkey and always display the item value.") - @ConfigEditorBoolean - public boolean alwaysEnabled = true; - - @Expose - @ConfigOption(name = "Enchantments Cap", desc = "Only show the top # most expensive enchantments.") - @ConfigEditorSlider( - minValue = 1, - maxValue = 30, - minStep = 1 - ) - public Property<Integer> enchantmentsCap = Property.of(7); - - @Expose - @ConfigOption(name = "Show Exact Price", desc = "Show the exact total price instead of the compact number.") - @ConfigEditorBoolean - public boolean exactPrice = false; - - @Expose - @ConfigOption(name = "Show Armor Value", desc = "Show the value of the full armor set in the Wardrobe inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean armor = true; - - @Expose - public Position itemPriceDataPos = new Position(140, 90, false, true); - } - - @ConfigOption(name = "Discord Rich Presence", desc = "") - @Accordion - @Expose - public DiscordRPC discordRPC = new DiscordRPC(); - - public static class DiscordRPC { - - @Expose - @ConfigOption(name = "Enable Discord RPC", desc = "Details about your SkyBlock session displayed through Discord.") - @ConfigEditorBoolean - @FeatureToggle - public Property<Boolean> enabled = Property.of(false); - - @Expose - @ConfigOption(name = "First Line", desc = "Decide what to show in the first line.") - @ConfigEditorDropdown(values = { - "Nothing", - "Location", - "Purse", - "Bits", - "Stats", - "Held Item", - "SkyBlock Date", - "Profile", - "Slayer", - "Custom", - "Dynamic", - "Crop Milestone", - "Current Pet" - }) - public Property<Integer> firstLine = Property.of(0); - - @Expose - @ConfigOption(name = "Second Line", desc = "Decide what to show in the second line.") - @ConfigEditorDropdown(values = { - "Nothing", - "Location", - "Purse", - "Bits", - "Stats", - "Held Item", - "SkyBlock Date", - "Profile", - "Slayer", - "Custom", - "Dynamic", - "Crop Milestone", - "Current Pet" - }) - public Property<Integer> secondLine = Property.of(0); - - @Expose - @ConfigOption(name = "Custom", desc = "What should be displayed if you select \"Custom\" above.") - @ConfigEditorText - public Property<String> customText = Property.of(""); - - @Expose - @ConfigOption(name = "Dynamic Priority", desc = "Disable certain dynamic statuses, or change the priority in case two are triggered at the same time (higher up means higher priority).") - @ConfigEditorDraggableList( - exampleText = { - "Crop Milestones", - "Slayer", - "Stacking Enchantment", - "Dungeon", - "AFK Indicator" - } - ) - public List<Integer> autoPriority = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4)); - - @Expose - @ConfigOption(name = "Dynamic Fallback", desc = "What to show when none of your \"Dynamic Priority\" statuses are active.") - @ConfigEditorDropdown(values = { - "Nothing", - "Location", - "Purse", - "Bits", - "Stats", - "Held Item", - "SkyBlock Date", - "Profile", - "Slayer", - "Custom", - "Crop Milestone", - "Current Pet" - }) - public Property<Integer> auto = Property.of(0); - } - - @ConfigOption(name = "Trevor The Trapper", desc = "") - @Accordion - @Expose - public TrevorTheTrapper trevorTheTrapper = new TrevorTheTrapper(); - - public static class TrevorTheTrapper { - - @Expose - @ConfigOption( - name = "Enable Data Tracker", - desc = "Tracks all of your data from doing Trevor Quests.\n" + - "Shows based on the setting below." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean dataTracker = true; - - @Expose - @ConfigOption( - name = "Show Between Quests", - desc = "Shows the tracker during and between quests otherwise it will only show during them." + - "Will show in the Trapper's Den regardless. §cToggle 'Enable Data Tracker' above." - ) - @ConfigEditorBoolean - public boolean displayType = true; - - @Expose - @ConfigOption( - name = "Text Format", - desc = "Drag text to change the appearance of the overlay." - ) - @ConfigEditorDraggableList( - exampleText = { - "§b§lTrevor Data Tracker", - "§b1,428 §9Quests Started", - "§b11,281 §5Total Pelts Gained", - "§b2,448 §5Pelts Per Hour", - "", - "§b850 §cKilled Animals", - "§b153 §cSelf Killing Animals", - "§b788 §fTrackable Animals", - "§b239 §aUntrackable Animals", - "§b115 §9Undetected Animals", - "§b73 §5Endangered Animals", - "§b12 §6Elusive Animals" - } - ) - public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11)); - - @Expose - public Position position = new Position(10, 80, false, true); - - @Expose - @ConfigOption(name = "Trapper Solver", desc = "Assists you in finding Trevor's mobs. §eNote: May not always work as expected. " + - "§cWill not help you to find rabbits or sheep in the Oasis!") - @ConfigEditorBoolean - @FeatureToggle - public boolean trapperSolver = true; - - @Expose - @ConfigOption(name = "Mob Dead Warning", desc = "Show a message when Trevor's mob dies.") - @ConfigEditorBoolean - public boolean trapperMobDiedMessage = true; - - @Expose - @ConfigOption(name = "Warp to Trapper", desc = "Warp to Trevor's Den. Works only inside the Farming Islands.") - @ConfigEditorBoolean - @FeatureToggle - public boolean warpToTrapper = false; - - @Expose - @ConfigOption(name = "Accept Trapper Quest", desc = "Click this key after the chat prompt to accept Trevor's quest.") - @ConfigEditorBoolean - @FeatureToggle - public boolean acceptQuest = false; - - @Expose - @ConfigOption(name = "Trapper Hotkey", desc = "Press this key to warp to Trevor's Den or to accept the quest. " + - "§eRequires the relevant above settings to be toggled") - @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) - public int keyBindWarpTrapper = Keyboard.KEY_NONE; - - - @Expose - @ConfigOption(name = "Trapper Cooldown", desc = "Change the color of Trevor and adds a cooldown over his head.") - @ConfigEditorBoolean - @FeatureToggle - public boolean trapperTalkCooldown = true; - - @Expose - @ConfigOption( - name = "Trapper Cooldown GUI", - desc = "Show the cooldown on screen in an overlay (intended for Abiphone users)." - ) - @ConfigEditorBoolean - public boolean trapperCooldownGui = false; - - @Expose - public Position trapperCooldownPos = new Position(10, 10, false, true); - } - - @ConfigOption(name = "Teleport Pads On Private Island", desc = "") - @Accordion - @Expose - public TeleportPad teleportPad = new TeleportPad(); - - public static class TeleportPad { - - @Expose - @ConfigOption(name = "Compact Name", desc = "Hide the 'Warp to' and 'No Destination' texts over teleport pads.") - @ConfigEditorBoolean - @FeatureToggle - public boolean compactName = false; - - @Expose - @ConfigOption(name = "Inventory Numbers", desc = "Show the number of the teleport pads inside the 'Change Destination' inventory as stack size.") - @ConfigEditorBoolean - @FeatureToggle - public boolean inventoryNumbers = false; - } - - @ConfigOption(name = "Pocket Sack-In-A-Sack", desc = "") - @Accordion - @Expose - public PocketSackInASack pocketSackInASack = new PocketSackInASack(); - - public static class PocketSackInASack { - - @Expose - @ConfigOption(name = "Show in Overlay", desc = "Show the number of Pocket Sack-In-A-Sack applied on a sack icon as an overlay.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showOverlay = false; - - @Expose - @ConfigOption(name = "Replace In Lore", desc = "Replace how text is displayed in lore.\nShow §eis stitched with 2/3...\n§7Instead of §eis stitched with two...") - @ConfigEditorBoolean - @FeatureToggle - public boolean replaceLore = true; - } - - @ConfigOption(name = "Quick Mod Menu Switch", desc = "") - @Accordion - @Expose - public QuickModMenuSwitch quickModMenuSwitch = new QuickModMenuSwitch(); - - public static class QuickModMenuSwitch { - - @Expose - @ConfigOption(name = "Enabled", desc = "Adding a mod list, allowing to quickly switch between different mod menus.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Inside Escape Menu", desc = "Show the mod list while inside the Escape menu.") - @ConfigEditorBoolean - public boolean insideEscapeMenu = true; - - @Expose - @ConfigOption(name = "Inside Inventory", desc = "Show the mod list while inside the player inventory (no chest inventory).") - @ConfigEditorBoolean - public boolean insidePlayerInventory = false; - - @Expose - public Position pos = new Position(-178, 143, false, true); - } - - @Expose - @ConfigOption(name = "Cosmetic", desc = "") - @Accordion - public CosmeticConfig cosmeticConfig = new CosmeticConfig(); - - public static class CosmeticConfig { - - @Expose - @ConfigOption(name = "Following Line", desc = "") - @Accordion - public FollowingLineConfig followingLineConfig = new FollowingLineConfig(); - - public static class FollowingLineConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Draw a colored line behind the player.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Line Color", desc = "Color of the line.") - @ConfigEditorColour - public String lineColor = "0:255:255:255:255"; - - @Expose - @ConfigOption(name = "Time Alive", desc = "Time in seconds until the line fades out.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 30) - public int secondsAlive = 3; - - @Expose - @ConfigOption(name = "Max Line Width", desc = "Max width of the line.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) - public int lineWidth = 4; - - @Expose - @ConfigOption(name = "Behind Blocks", desc = "Show behind blocks.") - @ConfigEditorBoolean - public boolean behindBlocks = false; - } - - @Expose - @ConfigOption(name = "Arrow Trail", desc = "") - @Accordion - public ArrowTrailConfig arrowTrailConfig = new ArrowTrailConfig(); - - public static class ArrowTrailConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Draw a colored line behind arrows in the air.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Hide Nonplayer Arrows", desc = "Only shows for arrows the player has shot.") - @ConfigEditorBoolean - public boolean hideOtherArrows = true; - - @Expose - @ConfigOption(name = "Arrow Color", desc = "Color of the line.") - @ConfigEditorColour - public String arrowColor = "0:200:85:255:85"; - - @Expose - @ConfigOption(name = "Player Arrows", desc = "Different color for the line of arrows that you have shot.") - @ConfigEditorBoolean - public boolean handlePlayerArrowsDifferently = false; - - @Expose - @ConfigOption(name = "Player Arrow Color", desc = "Color of the line of your own arrows.") - @ConfigEditorColour - public String playerArrowColor = "0:200:85:255:255"; - - @Expose - @ConfigOption(name = "Time Alive", desc = "Time in seconds until the trail fades out.") - @ConfigEditorSlider(minStep = 0.1f, minValue = 0.1f, maxValue = 10) - public float secondsAlive = 0.5f; - - @Expose - @ConfigOption(name = "Line Width", desc = "Width of the line.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) - public int lineWidth = 4; - } - } - - - @Expose - @ConfigOption(name = "Glowing Dropped Items", desc = "") - @Accordion - public GlowingDroppedItems glowingDroppedItems = new GlowingDroppedItems(); - - public static class GlowingDroppedItems { - - @Expose - @ConfigOption(name = "Enabled", desc = "Draws a glowing outline around all dropped items on the ground.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Highlight Showcase Items", desc = "Draws a glowing outline around showcase items.") - @ConfigEditorBoolean - public boolean highlightShowcase = false; - - @Expose - @ConfigOption(name = "Highlight Fishing Bait", desc = "Draws a glowing outline around fishing bait.") - @ConfigEditorBoolean - public boolean highlightFishingBait = false; - - } - - - @Expose - @ConfigOption(name = "Highlight Party Members", desc = "") - @Accordion - public HighlightPartyMembers highlightPartyMembers = new HighlightPartyMembers(); - - public static class HighlightPartyMembers { - - @Expose - @ConfigOption(name = "Enabled", desc = "Marking party members with a bright outline to better find them in the world.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption( - name = "Outline Color", - desc = "The color to outline party members in." - ) - @ConfigEditorColour - public String outlineColor = "0:245:85:255:85"; - - } - - - @Expose - @ConfigOption(name = "Compact Tab List", desc = "") - @Accordion - public CompactTabListConfig compactTabList = new CompactTabListConfig(); - - public static class CompactTabListConfig { - @Expose - @ConfigOption(name = "Enabled", desc = "Compacts the tablist to make it look much nicer like SBA did. Also " + - "doesn't break god-pot detection and shortens some other lines.") - //made tablist one word here so both searches will pick it up - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Hide Hypixel Adverts", desc = "Hides text from advertising the Hypixel server or store in the tablist.") - @ConfigEditorBoolean - public boolean hideAdverts = false; - - @Expose - @ConfigOption(name = "Advanced Player List", desc = "") - @Accordion - public AdvancedPlayerList advancedPlayerList = new AdvancedPlayerList(); - - public static class AdvancedPlayerList { - - @Expose - @ConfigOption(name = "Player Sort", desc = "Change the sort order of player names in the tab list.") - @ConfigEditorDropdown(values = {"Rank (Default)", "SB Level", "Name (Abc)", "Ironman/Bingo", "Party/Friends/Guild", "Random"}) - public int playerSortOrder = 0; - - @Expose - @ConfigOption(name = "Invert Sort", desc = "Flip the player list order on its head (also works with default rank).") - @ConfigEditorBoolean - public boolean reverseSort = false; - - @Expose - @ConfigOption(name = "Hide Player Icons", desc = "Hide the icons/skins of player in the tab list.") - @ConfigEditorBoolean - public boolean hidePlayerIcons = false; - - @Expose - @ConfigOption(name = "Hide Rank Color", desc = "Hide the player rank color.") - @ConfigEditorBoolean - public boolean hideRankColor = false; - - @Expose - @ConfigOption(name = "Hide Emblems", desc = "Hide the emblems behind the player name.") - @ConfigEditorBoolean - public boolean hideEmblem = false; - - @Expose - @ConfigOption(name = "Hide Level", desc = "Hide the SkyBlock level numbers.") - @ConfigEditorBoolean - public boolean hideLevel = false; - - @Expose - @ConfigOption(name = "Hide Level Brackets", desc = "Hide the gray brackets in front of and behind the level numbers.") - @ConfigEditorBoolean - public boolean hideLevelBrackets = false; - - @Expose - @ConfigOption(name = "Level Color As Name", desc = "Use the color of the SkyBlock level for the player color.") - @ConfigEditorBoolean - public boolean useLevelColorForName = false; - - @Expose - @ConfigOption(name = "Bingo Rank Number", desc = "Show the number of the bingo rank next to the icon. Useful if you are not so familar with bingo.") - @ConfigEditorBoolean - public boolean showBingoRankNumber = false; - - @Expose - @ConfigOption(name = "Hide Factions", desc = "Hide the icon of the Crimson Isle Faction in the tab list.") - @ConfigEditorBoolean - public boolean hideFactions = false; - - @Expose - @ConfigOption(name = "Mark Special Persons", desc = "Show speical icons behind the name of guild members, party members, friends, and marked players.") - @ConfigEditorBoolean - public boolean markSpecialPersons = false; - - @Expose - @ConfigOption( - name = "Mark SkyHanni Devs", - desc = "Adds a §c:O §7behind the tablist name of §cSkyHanni's contributors§7. " + - "§eThose are the folks that coded the mod for you for free :)" - ) - @ConfigEditorBoolean - public boolean markSkyHanniContributors = false; - } - } - - @Expose - @ConfigOption(name = "Kick Duration", desc = "") - @Accordion - public KickDurationConfig kickDuration = new KickDurationConfig(); - - public static class KickDurationConfig { - - @Expose - @ConfigOption( - name = "Enabled", - desc = "Show in the Hypixel lobby since when you were last kicked from SkyBlock (" + - "useful if you get blocked because of '§cYou were kicked while joining that server!§7')." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Warn Time", desc = "Send warning and sound this seconds after a SkyBlock kick.") - @ConfigEditorSlider( - minValue = 5, - maxValue = 300, - minStep = 1 - ) - public Property<Integer> warnTime = Property.of(60); - - @Expose - public Position position = new Position(400, 200, 1.3f); - } - - @Expose - @ConfigOption(name = "Exp Bottles", desc = "Hides all the experience orbs lying on the ground.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideExpBottles = false; - - @Expose - public Position collectionCounterPos = new Position(10, 10, false, true); - - @Expose - @ConfigOption(name = "Brewing Stand Overlay", desc = "Display the Item names directly inside the Brewing Stand.") - @ConfigEditorBoolean - @FeatureToggle - public boolean brewingStandOverlay = true; - - @Expose - @ConfigOption(name = "Red Scoreboard Numbers", desc = "Hide the red scoreboard numbers on the right side of the screen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideScoreboardNumbers = false; - - @Expose - @ConfigOption(name = "Hide Piggy", desc = "Replacing 'Piggy' with 'Purse' in the Scoreboard.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hidePiggyScoreboard = true; - - @Expose - @ConfigOption(name = "Explosions Hider", desc = "Hide explosions.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideExplosions = false; - - @Expose - @ConfigOption(name = "CH Join", desc = "Helps buy a Pass for accessing the Crystal Hollows if needed.") - @ConfigEditorBoolean - @FeatureToggle - public boolean crystalHollowsJoin = true; - - @Expose - @ConfigOption(name = "Fire Overlay Hider", desc = "Hide the fire overlay (Like in Skytils).") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideFireOverlay = false; - - @Expose - @ConfigOption(name = "Paste Into Signs", desc = "Allows you to paste the clipboard into signs when you press Ctrl + V.") - @ConfigEditorBoolean - @FeatureToggle - public boolean pasteIntoSigns = true; - - @Expose - @ConfigOption(name = "Movement Speed", desc = "Show the player movement speed in blocks per second.") - @ConfigEditorBoolean - @FeatureToggle - public boolean playerMovementSpeed = false; - - @Expose - public Position playerMovementSpeedPos = new Position(394, 124, false, true); - - @Expose - @ConfigOption(name = "Pet Candy Used", desc = "Show the number of Pet Candy used on a pet.") - @ConfigEditorBoolean - @FeatureToggle - public boolean petCandyUsed = true; - - @Expose - @ConfigOption(name = "Server Restart Title", desc = "Show a title with seconds remaining until the server restarts after a Game Update or Scheduled Restart.") - @ConfigEditorBoolean - @FeatureToggle - public boolean serverRestartTitle = true; - - @Expose - @ConfigOption(name = "Piece Of Wizard Portal", desc = "Restore the Earned By lore line on bought Piece Of Wizard Portal.") - @ConfigEditorBoolean - @FeatureToggle - public boolean restorePieceOfWizardPortalLore = true; - - @Expose - @ConfigOption(name = "Patcher Coords Waypoint", desc = "Highlight the coordinates sent by Patcher.") - @ConfigEditorBoolean - @FeatureToggle - public boolean patcherSendCoordWaypoint = false; - - - @Expose - @ConfigOption(name = "Account Upgrade Reminder", desc = "Remind you to claim account upgrades when complete.") - @ConfigEditorBoolean - @FeatureToggle - public boolean accountUpgradeReminder = true; - - @Expose - @ConfigOption(name = "Superpairs Clicks Alert", desc = "Display an alert when you reach the maximum clicks gained from Chronomatron or Ultrasequencer.") - @ConfigEditorBoolean - @FeatureToggle - public boolean superpairsClicksAlert = false; - - @Expose - @ConfigOption(name = "NEU Heavy Pearls", desc = "Fixing NEU Heavy Pearl detection.") - @ConfigEditorBoolean - @FeatureToggle - public boolean fixNeuHeavyPearls = true; - - @Expose - @ConfigOption( - name = "Time In Limbo", - desc = "Show the time since you entered the limbo.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showTimeInLimbo = true; - - @Expose - public Position showTimeInLimboPosition = new Position(400, 200, 1.3f); - - @Expose - public Position lockedMouseDisplay = new Position(400, 200, 0.8f); - - @Expose - public Position inventoryLoadPos = new Position(394, 124, false, true); -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java deleted file mode 100644 index 9021ec9be..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/RiftConfig.java +++ /dev/null @@ -1,720 +0,0 @@ -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<Boolean> 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 an " + - "§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<Integer> lookAhead = Property.of(3); - - @Expose - @ConfigOption(name = "Rainbow Color", desc = "Show the rainbow color effect instead of a boring monochrome.") - @ConfigEditorBoolean - public Property<Boolean> rainbowColor = Property.of(true); - - @Expose - @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") - @ConfigEditorColour - public Property<String> 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<Integer> 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<Boolean> rainbowColor = Property.of(true); - - @Expose - @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") - @ConfigEditorColour - public Property<String> 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<Integer> 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<Boolean> rainbowColor = Property.of(true); - - @Expose - @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") - @ConfigEditorColour - public Property<String> 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<String> 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 = "Highlight Size", desc = "Set render size for highlighted Motes Orbs.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 5) - public int size = 3; - - @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; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/SlayerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/SlayerConfig.java deleted file mode 100644 index 1c0003eab..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/SlayerConfig.java +++ /dev/null @@ -1,529 +0,0 @@ -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; - -public class SlayerConfig { - - @Expose - @ConfigOption(name = "Enderman Slayer Features", desc = "") - @Accordion - public EndermanConfig endermen = new EndermanConfig(); - - public static class EndermanConfig { - @Expose - @ConfigOption(name = "Yang Glyph (beacon)", desc = "") - @Accordion - public EndermanBeaconConfig endermanBeaconConfig = new EndermanBeaconConfig(); - - public static class EndermanBeaconConfig { - - @Expose - @ConfigOption(name = "Highlight Beacon", - desc = "Highlight the Enderman Slayer Yang Glyph (beacon) in red color and added a timer for when he explodes. " + - "Supports beacon in hand and beacon flying.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightBeacon = true; - - @Expose - @ConfigOption(name = "Beacon Color", desc = "Color of the beacon.") - @ConfigEditorColour - public String beaconColor = "0:255:255:0:88"; - - @Expose - @ConfigOption(name = "Show Warning", desc = "Displays a warning mid-screen when the Enderman Slayer throws a Yang Glyph (beacon).") - @ConfigEditorBoolean - @FeatureToggle - public boolean showWarning = false; - - @Expose - @ConfigOption(name = "Show Line", desc = "Draw a line starting at your crosshair to the beacon.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showLine = false; - - @Expose - @ConfigOption(name = "Line Color", desc = "Color of the line.") - @ConfigEditorColour - public String lineColor = "0:255:255:0:88"; - - @Expose - @ConfigOption(name = "Line Width", desc = "Width of the line.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) - public int lineWidth = 3; - } - - @Expose - @ConfigOption(name = "Highlight Nukekubi Skulls", desc = "Highlights the Enderman Slayer Nukekubi Skulls (Eyes).") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightNukekebi = false; - - @Expose - @ConfigOption(name = "Phase Display", desc = "Show the current phase of the Enderman Slayer in damage indcator.") - @ConfigEditorBoolean - public boolean phaseDisplay = false; - - @Expose - @ConfigOption(name = "Hide Particles", desc = "Hide particles around Enderman Slayer bosses and Mini-Bosses.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideParticles = false; - } - - - @Expose - @ConfigOption(name = "Blaze", desc = "") - @Accordion - public BlazeConfig blazes = new BlazeConfig(); - - public static class BlazeConfig { - @Expose - @ConfigOption(name = "Hellion Shields", desc = "") - @Accordion - public BlazeHellionConfig hellion = new BlazeHellionConfig(); - - public static class BlazeHellionConfig { - @Expose - @ConfigOption(name = "Colored Mobs", desc = "Color the Blaze Slayer boss and the demons in the right hellion shield color.") - @ConfigEditorBoolean - @FeatureToggle - public boolean coloredMobs = false; - - @Expose - @ConfigOption(name = "Blaze Daggers", desc = "Faster and permanent display for the Blaze Slayer daggers.") - @ConfigEditorBoolean - @FeatureToggle - public boolean daggers = false; - - @Expose - @ConfigOption(name = "Right Dagger", desc = "Mark the right dagger to use for Blaze Slayer in the dagger overlay.") - @ConfigEditorBoolean - @FeatureToggle - public boolean markRightHellionShield = false; - - @Expose - @ConfigOption(name = "First Dagger", desc = "Select the first, left sided dagger for the display.") - @ConfigEditorDropdown(values = {"Spirit/Crystal", "Ashen/Auric"}) - public int firstDagger = 0; - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Remove the wrong Blaze Slayer dagger messages from chat.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideDaggerWarning = false; - - @Expose - public Position positionTop = new Position(-475, 173, 4.4f, true); - - @Expose - public Position positionBottom = new Position(-475, 230, 3.2f, true); - } - - - @Expose - @ConfigOption(name = "Fire Pits", desc = "Warning when the fire pit phase starts for the Blaze Slayer tier 3 and 4.") - @ConfigEditorBoolean - @FeatureToggle - public boolean firePitsWarning = false; - - @Expose - @ConfigOption(name = "Phase Display", desc = "Show the current phase of the Blaze Slayer boss.") - @ConfigEditorBoolean - public boolean phaseDisplay = false; - - @Expose - @ConfigOption(name = "Clear View", desc = "Hide particles and fireballs near Blaze Slayer bosses and demons.") - @ConfigEditorBoolean - @FeatureToggle - public boolean clearView = false; - } - - - @Expose - @ConfigOption(name = "Vampire Slayer Features", desc = "") - @Accordion - public VampireSlayerConfig vampireSlayerConfig = new VampireSlayerConfig(); - - public static class VampireSlayerConfig { - - @Expose - @ConfigOption(name = "Your Boss", desc = "") - @Accordion - public OwnBossConfig ownBoss = new OwnBossConfig(); - - public static class OwnBossConfig { - - @Expose - @ConfigOption(name = "Highlight Your Boss", desc = "Highlight your own Vampire Slayer boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = true; - - @Expose - @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") - @ConfigEditorColour - public String highlightColor = "0:249:0:255:88"; - - @Expose - @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak your boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean steakAlert = true; - - @Expose - @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.\nWork on others highlighted people boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsTitle = true; - - @Expose - @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsSound = true; - } - - @Expose - @ConfigOption(name = "Others Boss", desc = "") - @Accordion - public OthersBossConfig othersBoss = new OthersBossConfig(); - - public static class OthersBossConfig { - - @Expose - @ConfigOption(name = "Highlight Others Boss", desc = "Highlight others players boss.\nYou need to hit them first.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = true; - - @Expose - @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") - @ConfigEditorColour - public String highlightColor = "0:249:0:255:88"; - - @Expose - @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak the boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean steakAlert = true; - - @Expose - @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsTitle = true; - - @Expose - @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsSound = true; - } - - @Expose - @ConfigOption(name = "Co-op Boss", desc = "") - @Accordion - public CoopBossHighlightConfig coopBoss = new CoopBossHighlightConfig(); - - public static class CoopBossHighlightConfig { - @Expose - @ConfigOption(name = "Highlight Co-op Boss", desc = "Highlight boss of your co-op member.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = true; - - @Expose - @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") - @ConfigEditorColour - public String highlightColor = "0:249:0:255:88"; - - @Expose - @ConfigOption(name = "Co-op Members", desc = "Add your co-op member here.\n§eFormat: §7Name1,Name2,Name3") - @ConfigEditorText - public String coopMembers = ""; - - @Expose - @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak the boss.") - @ConfigEditorBoolean - @FeatureToggle - public boolean steakAlert = true; - - @Expose - @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsTitle = true; - - @Expose - @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") - @ConfigEditorBoolean - @FeatureToggle - public boolean twinClawsSound = true; - } - - @Expose - @ConfigOption(name = "Transparency", desc = "Choose the transparency of the color.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 250) - public int withAlpha = 80; - - @Expose - @ConfigOption(name = "See Through Blocks", desc = "Highlight even when behind others mobs/players.") - @ConfigEditorBoolean - public boolean seeThrough = false; - - @Expose - @ConfigOption(name = "Low Health", desc = "Change color when the boss is below 20% health.") - @ConfigEditorBoolean - @FeatureToggle - public boolean changeColorWhenCanSteak = true; - - @Expose - @ConfigOption(name = "Can use Steak Color", desc = "Color when the boss is below 20% health.") - @ConfigEditorColour - public String steakColor = "0:255:255:0:88"; - - @Expose - @ConfigOption(name = "Twinclaws", desc = "Delay the sound and title of Twinclaws alert for a given amount in milliseconds.") - @ConfigEditorSlider(minStep = 1, minValue = 0, maxValue = 1000) - public int twinclawsDelay = 0; - - @Expose - @ConfigOption(name = "Draw Line", desc = "Draw a line starting at your crosshair to the boss head.") - @ConfigEditorBoolean - @FeatureToggle - public boolean drawLine = false; - - @Expose - @ConfigOption(name = "Line Color", desc = "Color of the line.") - @ConfigEditorColour - public String lineColor = "0:255:255:0:88"; - - @Expose - @ConfigOption(name = "Line Width", desc = "Width of the line.") - @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) - public int lineWidth = 1; - - - @Expose - @ConfigOption(name = "Blood Ichor", desc = "") - @Accordion - public BloodIchorConfig bloodIchor = new BloodIchorConfig(); - - public static class BloodIchorConfig { - @Expose - @ConfigOption(name = "Highlight Blood Ichor", desc = "Highlight the Blood Ichor.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = false; - - @Expose - @ConfigOption(name = "Beacon Beam", desc = "Render a beacon beam where the Blood Ichor is.") - @ConfigEditorBoolean - @FeatureToggle - public boolean renderBeam = true; - - @Expose - @ConfigOption(name = "Color", desc = "Highlight color.") - @ConfigEditorColour - public String color = "0:199:100:0:88"; - - @Expose - @ConfigOption(name = "Show Lines", desc = "Draw lines that start from the head of the boss and end on the Blood Ichor.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showLines = false; - - @Expose - @ConfigOption(name = "Lines Start Color", desc = "Starting color of the lines.") - @ConfigEditorColour - public String linesColor = "0:255:255:13:0"; - - } - - @Expose - @ConfigOption(name = "Killer Spring", desc = "") - @Accordion - public KillerSpringConfig killerSpring = new KillerSpringConfig(); - - public static class KillerSpringConfig { - @Expose - @ConfigOption(name = "Highlight Killer Spring", desc = "Highlight the Killer Spring tower.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlight = false; - - @Expose - @ConfigOption(name = "Color", desc = "Highlight color.") - @ConfigEditorColour - public String color = "0:199:100:0:88"; - - @Expose - @ConfigOption(name = "Show Lines", desc = "Draw lines that start from the head of the boss and end on the Killer Spring tower.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showLines = false; - - @Expose - @ConfigOption(name = "Lines Start Color", desc = "Starting color of the lines.") - @ConfigEditorColour - public String linesColor = "0:255:255:13:0"; - } - } - - @Expose - @ConfigOption(name = "Item Profit Tracker", desc = "") - @Accordion - public ItemProfitTrackerConfig itemProfitTracker = new ItemProfitTrackerConfig(); - - public static class ItemProfitTrackerConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Count all items you pick up while doing slayer, " + - "keep track of how much you pay for starting slayers and calculating the overall profit.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - public Position pos = new Position(20, 20, false, true); - - @Expose - @ConfigOption(name = "Price in Chat", desc = "Show an extra chat message when you pick up an item. " + - "(This contains name, amount and price)") - @ConfigEditorBoolean - @FeatureToggle - public boolean priceInChat = false; - - @Expose - @ConfigOption(name = "Show Price From", desc = "Show price from Bazaar or NPC.") - @ConfigEditorDropdown(values = {"Instant Sell", "Sell Offer", "NPC"}) - public int priceFrom = 1; - - @Expose - @ConfigOption(name = "Minimum Price", desc = "Items below this price will not show up in chat.") - @ConfigEditorSlider(minValue = 1, maxValue = 5_000_000, minStep = 1) - public int minimumPrice = 100_000; - - @Expose - @ConfigOption(name = "Title Warning", desc = "Show a title for expensive item pickups.") - @ConfigEditorBoolean - @FeatureToggle - public boolean titleWarning = false; - - @Expose - @ConfigOption(name = "Title Price", desc = "Items above this price will show up as a title.") - @ConfigEditorSlider(minValue = 1, maxValue = 20_000_000, minStep = 1) - public int minimumPriceWarning = 500_000; - } - - @Expose - @ConfigOption(name = "Items on Ground", desc = "") - @Accordion - public ItemsOnGroundConfig itemsOnGround = new ItemsOnGroundConfig(); - - public static class ItemsOnGroundConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Show the name and price of items laying on the ground. §cOnly in slayer areas!") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Minimum Price", desc = "Items below this price will be ignored.") - @ConfigEditorSlider(minValue = 1, maxValue = 1_000_000, minStep = 1) - public int minimumPrice = 50_000; - } - - @Expose - @ConfigOption(name = "RNG Meter Display", desc = "") - @Accordion - public RngMeterDisplayConfig rngMeterDisplay = new RngMeterDisplayConfig(); - - public static class RngMeterDisplayConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Display amount of bosses needed until next RNG meter drop.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = true; - - @Expose - @ConfigOption(name = "Warn Empty", desc = "Warn when no item is set in the RNG Meter.") - @ConfigEditorBoolean - public boolean warnEmpty = false; - - @Expose - @ConfigOption(name = "Hide Chat", desc = "Hide the RNG meter message from chat if current item is selected.") - @ConfigEditorBoolean - public boolean hideChat = true; - - @Expose - public Position pos = new Position(410, 110, false, true); - - } - - @Expose - @ConfigOption(name = "Boss Spawn Warning", desc = "") - @Accordion - public SlayerBossWarningConfig slayerBossWarning = new SlayerBossWarningConfig(); - - public static class SlayerBossWarningConfig { - - @Expose - @ConfigOption(name = "Enabled", desc = "Send a title when your boss is about to spawn.") - @ConfigEditorBoolean - @FeatureToggle - public boolean enabled = false; - - @Expose - @ConfigOption(name = "Percent", desc = "The percentage at which the title and sound should be sent.") - @ConfigEditorSlider(minStep = 1, minValue = 50, maxValue = 90) - public int percent = 80; - - @Expose - @ConfigOption(name = "Repeat", desc = "Resend the title and sound on every kill after reaching the configured percent value.") - @ConfigEditorBoolean - public boolean repeat = false; - } - - @Expose - @ConfigOption(name = "Miniboss Highlight", desc = "Highlight Slayer Mini-Boss in blue color.") - @ConfigEditorBoolean - @FeatureToggle - public boolean slayerMinibossHighlight = false; - - @Expose - @ConfigOption(name = "Line to Miniboss", desc = "Adds a line to every Slayer Mini-Boss around you.") - @ConfigEditorBoolean - @FeatureToggle - public boolean slayerMinibossLine = false; - - @Expose - @ConfigOption(name = "Hide Mob Names", desc = "Hide the name of the mobs you need to kill in order for the Slayer boss to spawn. Exclude mobs that are damaged, corrupted, runic or semi rare.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideMobNames = false; - - @Expose - @ConfigOption(name = "Quest Warning", desc = "Warning when wrong Slayer quest is selected, or killing mobs for the wrong Slayer.") - @ConfigEditorBoolean - @FeatureToggle - public boolean questWarning = true; - - @Expose - @ConfigOption(name = "Quest Warning Title", desc = "Sends a title when warning.") - @ConfigEditorBoolean - @FeatureToggle - public boolean questWarningTitle = true; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/bazaar/BazaarConfig.java index b02c0ef40..515255e4b 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/bazaar/BazaarConfig.java @@ -1,4 +1,4 @@ -package at.hannibal2.skyhanni.config.features; +package at.hannibal2.skyhanni.config.features.bazaar; import at.hannibal2.skyhanni.config.FeatureToggle; import at.hannibal2.skyhanni.config.core.config.Position; diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatConfig.java new file mode 100644 index 000000000..09df4f5e7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatConfig.java @@ -0,0 +1,91 @@ +package at.hannibal2.skyhanni.config.features.chat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class ChatConfig { + + @Expose + @ConfigOption(name = "Peek Chat", desc = "Hold this key to keep the chat open.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_Z) + public int peekChat = Keyboard.KEY_Z; + + @Expose + @ConfigOption(name = "Chat Filter Types", desc = "") + @Accordion + public FilterTypesConfig filterType = new FilterTypesConfig(); + + + @Expose + @ConfigOption(name = "Player Messages", desc = "") + @Accordion + public PlayerMessagesConfig playerMessage = new PlayerMessagesConfig(); + + @Expose + @ConfigOption(name = "Player Chat Symbols", desc = "") + @Accordion + public ChatSymbols chatSymbols = new ChatSymbols(); + + @Expose + @ConfigOption(name = "Dungeon Filter", desc = "Hide annoying messages in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean dungeonMessages = true; + + @Expose + @ConfigOption(name = "Dungeon Boss Messages", desc = "Hide messages from the Watcher and bosses in the Dungeon.") + @ConfigEditorBoolean + @FeatureToggle + public boolean dungeonBossMessages = false; + + @Expose + @ConfigOption(name = "Hide Far Deaths", desc = "Hide other players' death messages, " + + "except for players who are nearby or during Dungeons/a Kuudra fight.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideFarDeathMessages = false; + //TODO jawbus + thunder + + @Expose + @ConfigOption(name = "Compact Potion Messages", desc = "") + @Accordion + public CompactPotionConfig compactPotionMessages = new CompactPotionConfig(); + + @Expose + @ConfigOption(name = "Compact Bestiary Message", desc = "Shorten the Bestiary level up message, showing additional information when hovering.") + @ConfigEditorBoolean + @FeatureToggle + public boolean compactBestiaryMessage = true; + + @Expose + @ConfigOption(name = "Arachne Hider", desc = "Hide chat messages about the Arachne Fight while outside of §eArachne's Sanctuary§7.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideArachneMessages = false; + + @Expose + @ConfigOption( + name = "Sacks Hider", + desc = "Hide the chat's sack change message with this, " + + "not in Hypixel settings, for mods to access sack data in new features." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean hideSacksChange = false; + + @Expose + @ConfigOption( + name = "Translator", + desc = "Click on a message to translate it into English. " + + "Use §e/shcopytranslation§7 to get the translation from English. " + + "§cTranslation is not guaranteed to be 100% accurate." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean translator = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatSymbols.java b/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatSymbols.java new file mode 100644 index 000000000..c8ea29aee --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chat/ChatSymbols.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.chat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ChatSymbols { + + @Expose + @ConfigOption(name = "Enabled", desc = "Adds extra symbols to the chat such as those from ironman, " + + "stranded, bingo or nether factions and places them next to your regular player emblems. " + + "§cDoes not work with hide rank hider!") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Chat Symbol Location", desc = "Determines where the symbols should go in chat in relation to the " + + "player's name. Hidden will hide all emblems from the chat. §eRequires above setting to be on to hide the symbols.") + @ConfigEditorDropdown(values = {"Left", "Right", "Hidden"}) + public int symbolLocation = 0; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/chat/CompactPotionConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/chat/CompactPotionConfig.java new file mode 100644 index 000000000..c06244b90 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chat/CompactPotionConfig.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.config.features.chat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CompactPotionConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Shorten chat messages about player potion effects.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Clickable Chat Message", desc = "Makes the Compact Potion message open the Potion effects menu on click.") + @ConfigEditorBoolean + public boolean clickableChatMessage = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/chat/FilterTypesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/chat/FilterTypesConfig.java new file mode 100644 index 000000000..42cca5b59 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chat/FilterTypesConfig.java @@ -0,0 +1,83 @@ +package at.hannibal2.skyhanni.config.features.chat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FilterTypesConfig { + + @Expose + @ConfigOption(name = "Hypixel Hub", desc = "Block messages outside SkyBlock in the Hypixel lobby: player joins, loot boxes, prototype lobby messages, radiating generosity and Hypixel tournaments.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hypixelHub = true; + + @Expose + @ConfigOption(name = "Empty", desc = "Hide all the empty messages from the chat.") + @ConfigEditorBoolean + @FeatureToggle + public boolean empty = true; + + @Expose + @ConfigOption(name = "Warping", desc = "Block 'Sending request to join...' and 'Warping...' messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean warping = true; + + @Expose + @ConfigOption(name = "Welcome", desc = "Hide the 'Welcome to SkyBlock' message.") + @ConfigEditorBoolean + @FeatureToggle + public boolean welcome = true; + + @Expose + @ConfigOption(name = "Guild Exp", desc = "Hide Guild EXP messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean guildExp = true; + + @Expose + @ConfigOption(name = "Friend Join Left", desc = "Hide friend join/left messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean friendJoinLeft = false; + + @Expose + @ConfigOption(name = "Winter Gifts", desc = "Hide useless Winter Gift messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean winterGift = false; + + @Expose + @ConfigOption(name = "Powder Mining", desc = "Hide messages while opening chests in the Crystal Hollows. " + + "(Except powder numbers over 1k, essence numbers over 2, Prehistoric Eggs, and Automaton Parts)") + @ConfigEditorBoolean + @FeatureToggle + public boolean powderMining = true; + + @Expose + @ConfigOption(name = "Kill Combo", desc = "Hide messages about the current Kill Combo from the Grandma Wolf Pet.") + @ConfigEditorBoolean + @FeatureToggle + public boolean killCombo = false; + + @Expose + @ConfigOption(name = "Watchdog", desc = "Hide the message where Hypixel is flexing how many players they have banned over the last week.") + @ConfigEditorBoolean + @FeatureToggle + public boolean watchDog = true; + + @Expose + @ConfigOption(name = "Profile Join", desc = "Hide 'You are playing on profile' and 'Profile ID' chat messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean profileJoin = true; + + //TODO remove + @Expose + @ConfigOption(name = "Others", desc = "Hide other annoying messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean others = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/chat/PlayerMessagesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/chat/PlayerMessagesConfig.java new file mode 100644 index 000000000..93c22adab --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chat/PlayerMessagesConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.chat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PlayerMessagesConfig { + + @Expose + @ConfigOption(name = "Player Rank Hider", desc = "Hide player ranks in all chat messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean playerRankHider = false; + + @Expose + @ConfigOption(name = "Chat Filter", desc = "Scan messages sent by players for blacklisted words and gray out the message if any are found.") + @ConfigEditorBoolean + @FeatureToggle + public boolean chatFilter = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/ChromaConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/chroma/ChromaConfig.java index 80c40cd98..81e3b26df 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/ChromaConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/chroma/ChromaConfig.java @@ -1,4 +1,4 @@ -package at.hannibal2.skyhanni.config.features; +package at.hannibal2.skyhanni.config.features.chroma; import at.hannibal2.skyhanni.SkyHanniMod; import at.hannibal2.skyhanni.config.FeatureToggle; diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/BestiaryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/BestiaryConfig.java new file mode 100644 index 000000000..97c41da3d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/BestiaryConfig.java @@ -0,0 +1,48 @@ +package at.hannibal2.skyhanni.config.features.combat; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class BestiaryConfig { + @Expose + @ConfigOption(name = "Enable", desc = "Show Bestiary Data overlay in the Bestiary menu.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Number format", desc = "Short: 1.1k\nLong: 1.100") + @ConfigEditorDropdown(values = {"Short", "Long"}) + public int numberFormat = 0; + + @Expose + @ConfigOption(name = "Display type", desc = "Choose what the display should show") + @ConfigEditorDropdown(values = { + "Global to max", + "Global to next tier", + "Lowest total kills", + "Highest total kills", + "Lowest kills needed to max", + "Highest kills needed to max", + "Lowest kills needed to next tier", + "Highest kills needed to next tier" + }) + public int displayType = 0; + + @Expose + @ConfigOption(name = "Hide maxed", desc = "Hide maxed mobs.") + @ConfigEditorBoolean + public boolean hideMaxed = false; + + @Expose + @ConfigOption(name = "Replace Romans", desc = "Replace Roman numerals (IX) with regular numbers (9)") + @ConfigEditorBoolean + public boolean replaceRoman = false; + + @Expose + public Position position = new Position(100, 100, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/CombatConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/CombatConfig.java new file mode 100644 index 000000000..94780f9dd --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/CombatConfig.java @@ -0,0 +1,47 @@ +package at.hannibal2.skyhanni.config.features.combat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig; +import at.hannibal2.skyhanni.config.features.combat.ghostcounter.GhostCounterConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CombatConfig { + + @Expose + @Category(name = "Damage Indicator", desc = "Damage Indicator settings") + public DamageIndicatorConfig damageIndicator = new DamageIndicatorConfig(); + + @Expose + @Category(name = "Ghost Counter", desc = "Ghost counter settings") + public GhostCounterConfig ghostCounter = new GhostCounterConfig(); + + @Expose + @ConfigOption(name = "Summonings", desc = "") + @Accordion + public SummoningsConfig summonings = new SummoningsConfig(); + + @Expose + @ConfigOption(name = "Mobs", desc = "") + @Accordion + public MobsConfig mobs = new MobsConfig(); + + @Expose + @ConfigOption(name = "Bestiary", desc = "") + @Accordion + public BestiaryConfig bestiary = new BestiaryConfig(); + + @Expose + @ConfigOption(name = "Ender Node Tracker", desc = "") + @Accordion + public EnderNodeConfig enderNodeTracker = new EnderNodeConfig(); + + @Expose + @ConfigOption(name = "Hide Damage Splash", desc = "Hide all damage splashes anywhere in SkyBlock.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideDamageSplash = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/EnderNodeConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/EnderNodeConfig.java new file mode 100644 index 000000000..0fd962084 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/EnderNodeConfig.java @@ -0,0 +1,64 @@ +package at.hannibal2.skyhanni.config.features.combat; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class EnderNodeConfig { + @Expose + @ConfigOption( + name = "Enabled", + desc = "Tracks all of your drops from mining Ender Nodes in the End.\n" + + "Also tracks drops from Endermen." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption( + name = "Text Format", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§5§lEnder Node Tracker", + "§d1,303 Ender Nodes Mined", + "§615.3M Coins Made", + " ", + "§b123 §cEndermite Nest", + "§b832 §aEnchanted End Stone", + "§b230 §aEnchanted Obsidian", + "§b1630 §aEnchanted Ender Pearl", + "§b85 §aGrand Experience Bottle", + "§b4 §9Titanic Experience Bottle", + "§b15 §9End Stone Shulker", + "§b53 §9End Stone Geode", + "§b10 §d◆ Magical Rune I", + "§b24 §5Ender Gauntlet", + "§b357 §5Mite Gel", + "§b2 §cShrimp The Fish", + " ", + "§b200 §5Ender Armor", + "§b24 §5Ender Helmet", + "§b24 §5Ender Chestplate", + "§b24 §5Ender Leggings", + "§b24 §5Ender Boots", + "§b24 §5Ender Necklace", + "§f10§7-§a8§7-§93§7-§52§7-§61 §fEnderman Pet", + " " + } + ) + public Property<List<Integer>> textFormat = Property.of(new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 16, 17, 23))); + + @Expose + public Position position = new Position(10, 80, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/MobsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/MobsConfig.java new file mode 100644 index 000000000..77731d854 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/MobsConfig.java @@ -0,0 +1,94 @@ +package at.hannibal2.skyhanni.config.features.combat; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MobsConfig { + + @Expose + @ConfigOption(name = "Highlighters", desc = "") + public boolean highlighters = false; + + @Expose + @ConfigOption(name = "Area Boss", desc = "Highlight Golden Ghoul, Old Wolf, Voidling Extremist and Millenia-Aged Blaze.") + @ConfigEditorBoolean + @FeatureToggle + public boolean areaBossHighlight = true; + + @Expose + @ConfigOption(name = "Arachne Keeper", desc = "Highlight the Arachne Keeper in the Spider's Den in purple color.") + @ConfigEditorBoolean + @FeatureToggle + public boolean arachneKeeperHighlight = true; + + @Expose + @ConfigOption(name = "Corleone", desc = "Highlight Boss Corleone in the Crystal Hollows.") + @ConfigEditorBoolean + @FeatureToggle + public boolean corleoneHighlighter = true; + + @Expose + @ConfigOption(name = "Zealot", desc = "Highlight Zealots and Bruisers in The End.") + @ConfigEditorBoolean + @FeatureToggle + public boolean zealotBruiserHighlighter = false; + + @Expose + @ConfigOption( + name = "Special Zealots", + desc = "Highlight Special Zealots (the ones that drop Summoning Eyes) in the End." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean specialZealotHighlighter = true; + + @Expose + @ConfigOption(name = "Corrupted Mob", desc = "Highlight corrupted mobs in purple color.") + @ConfigEditorBoolean + @FeatureToggle + public boolean corruptedMobHighlight = false; + + @Expose + @ConfigOption(name = "Arachne Boss", desc = "Highlight the Arachne boss in red and mini-bosses in orange.") + @ConfigEditorBoolean + @FeatureToggle + public boolean arachneBossHighlighter = true; + + @Expose + @ConfigOption(name = "Respawn Timers", desc = "") + public boolean timers = false; + + @Expose + @ConfigOption( + name = "Area Boss", + desc = "Show a timer when Golden Ghoul, Old Wolf, Voidling Extremist or Millenia-Aged Blaze respawns. " + + "§cSometimes it takes 20-30 seconds to calibrate correctly." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean areaBossRespawnTimer = false; + + @Expose + @ConfigOption( + name = "Arachne Spawn Timer", + desc = "Show a timer when Arachne fragments or crystals are placed to indicate how long " + + "until the boss will spawn. §cTimer may be 1-2 seconds off." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean showArachneSpawnTimer = true; + + @Expose + @ConfigOption(name = "Enderman TP Hider", desc = "Stops the Enderman Teleportation animation.") + @ConfigEditorBoolean + @FeatureToggle + public boolean endermanTeleportationHider = true; + + @Expose + @ConfigOption(name = "Arachne Minis Hider", desc = "Hides the nametag above Arachne minis.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideNameTagArachneMinis = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/SummoningsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/SummoningsConfig.java new file mode 100644 index 000000000..9abe2bf8d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/SummoningsConfig.java @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.config.features.combat; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class SummoningsConfig { + + @Expose + @ConfigOption(name = "Summoning Soul Display", desc = "Show the name of dropped Summoning Souls laying on the ground. " + + "§cNot working in Dungeons if Skytils' 'Hide Non-Starred Mobs Nametags' feature is enabled!") + @ConfigEditorBoolean + @FeatureToggle + public boolean summoningSoulDisplay = false; + + @Expose + @ConfigOption(name = "Summoning Mob Display", desc = "Show the health of your spawned summons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean summoningMobDisplay = false; + + @Expose + public Position summoningMobDisplayPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Summoning Mob Nametag", desc = "Hide the nametag of your spawned summons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean summoningMobHideNametag = false; + + @Expose + @ConfigOption(name = "Summoning Mob Color", desc = "Marks own summons green.") + @ConfigEditorBoolean + @FeatureToggle + public boolean summoningMobColored = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/DamageIndicatorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/DamageIndicatorConfig.java new file mode 100644 index 000000000..c77e5f3f0 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/DamageIndicatorConfig.java @@ -0,0 +1,102 @@ +package at.hannibal2.skyhanni.config.features.combat.damageindicator; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DamageIndicatorConfig { + + @Expose + @ConfigOption(name = "Damage Indicator Enabled", desc = "Show the boss' remaining health.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Healing Chat Message", desc = "Sends a chat message when a boss heals themself.") + @ConfigEditorBoolean + public boolean healingMessage = false; + + @Expose + @ConfigOption( + name = "Boss Name", + desc = "Change how the boss name should be displayed.") + @ConfigEditorDropdown(values = {"Hidden", "Full Name", "Short Name"}) + public int bossName = 1; + + @Expose + @ConfigOption( + name = "Select Boss", + desc = "Change what type of boss you want the damage indicator be enabled for." + ) + @ConfigEditorDraggableList( + exampleText = { + "§bDungeon All", + "§bNether Mini Bosses", + "§bVanquisher", + "§bEndstone Protector (not tested)", + "§bEnder Dragon (not finished)", + "§bRevenant Horror", + "§bTarantula Broodfather", + "§bSven Packmaster", + "§bVoidgloom Seraph", + "§bInferno Demonlord", + "§bHeadless Horseman (bugged)", + "§bDungeon Floor 1", + "§bDungeon Floor 2", + "§bDungeon Floor 3", + "§bDungeon Floor 4", + "§bDungeon Floor 5", + "§bDungeon Floor 6", + "§bDungeon Floor 7", + "§bDiana Mobs", + "§bSea Creatures", + "Dummy", + "§bArachne", + "§bThe Rift Bosses", + "§bRiftstalker Bloodfiend", + "§6Reindrake" + } + ) + //TODO only show currently working and tested features + public List<Integer> bossesToShow = new ArrayList<>(Arrays.asList(0, 1, 2, 5, 6, 7, 8, 9, 18, 19, 21, 22, 23, 24)); + + @Expose + @ConfigOption(name = "Hide Damage Splash", desc = "Hiding damage splashes near the damage indicator.") + @ConfigEditorBoolean + public boolean hideDamageSplash = false; + + @Expose + @ConfigOption(name = "Damage Over Time", desc = "Show damage and health over time below the damage indicator.") + @ConfigEditorBoolean + public boolean showDamageOverTime = false; + + @Expose + @ConfigOption(name = "Hide Nametag", desc = "Hide the vanilla nametag of damage indicator bosses.") + @ConfigEditorBoolean + public boolean hideVanillaNametag = false; + + @Expose + @ConfigOption(name = "Time to Kill", desc = "Show the time it takes to kill the slayer boss.") + @ConfigEditorBoolean + public boolean timeToKillSlayer = true; + + + @Expose + @ConfigOption(name = "Ender Slayer", desc = "") + @Accordion + public EnderSlayerConfig enderSlayer = new EnderSlayerConfig(); + + @Expose + @ConfigOption(name = "Vampire Slayer", desc = "") + @Accordion + public VampireSlayerConfig vampireSlayer = new VampireSlayerConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/EnderSlayerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/EnderSlayerConfig.java new file mode 100644 index 000000000..392505686 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/EnderSlayerConfig.java @@ -0,0 +1,18 @@ +package at.hannibal2.skyhanni.config.features.combat.damageindicator; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class EnderSlayerConfig { + + @Expose + @ConfigOption(name = "Laser Phase Timer", desc = "Show a timer when the laser phase will end.") + @ConfigEditorBoolean + public boolean laserPhaseTimer = false; + + @Expose + @ConfigOption(name = "Health During Laser", desc = "Show the health of Voidgloom Seraph 4 during the laser phase.") + @ConfigEditorBoolean + public boolean showHealthDuringLaser = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/VampireSlayerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/VampireSlayerConfig.java new file mode 100644 index 000000000..ec1d07b92 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/damageindicator/VampireSlayerConfig.java @@ -0,0 +1,23 @@ +package at.hannibal2.skyhanni.config.features.combat.damageindicator; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class VampireSlayerConfig { + + @Expose + @ConfigOption(name = "HP Until Steak", desc = "Show the amount of HP missing until the Steak can be used on the Vampire Slayer on top of the boss.") + @ConfigEditorBoolean + public boolean hpTillSteak = false; + + @Expose + @ConfigOption(name = "Mania Circles", desc = "Show a timer until the boss leaves the invincible Mania Circles state.") + @ConfigEditorBoolean + public boolean maniaCircles = false; + + @Expose + @ConfigOption(name = "Percentage HP", desc = "Show the percentage of HP next to the HP.") + @ConfigEditorBoolean + public boolean percentage = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/GhostCounterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/GhostCounterConfig.java new file mode 100644 index 000000000..783c4cda5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/GhostCounterConfig.java @@ -0,0 +1,96 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting.TextFormattingConfig; +import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostUtil; +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.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class GhostCounterConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enable the ghost counter (invisible creepers in the Dwarven Mines The Mist area).") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Display Text", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§6Ghosts Counter", + " §bGhost Killed: 42", + " §bSorrow: 6", + " §bGhost since Sorrow: 1", + " §bGhosts/Sorrow: 5", + " §bVolta: 6", + " §bPlasma: 8", + " §bGhostly Boots: 1", + " §bBag Of Cash: 4", + " §bAvg Magic Find: 271", + " §bScavenger Coins: 15,000", + " §bKill Combo: 14", + " §bHighest Kill Combo: 96", + " §bSkill XP Gained: 145,648", + " §bBestiary 1: 0/10", + " §bXP/h: 810,410", + " §bKills/h: 420", + " §bETA: 14d", + " §bMoney/h: 13,420,069", + " §bMoney made: 14B" + } + ) + public List<Integer> ghostDisplayText = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 9, 10, 11, 12)); + + @ConfigOption(name = "Text Formatting", desc = "") + @Accordion + @Expose + public TextFormattingConfig textFormatting = new TextFormattingConfig(); + + @Expose + @ConfigOption(name = "Extra space", desc = "Space between each line of text.") + @ConfigEditorSlider( + minValue = -5, + maxValue = 10, + minStep = 1) + public int extraSpace = 1; + + @Expose + @ConfigOption(name = "Pause Timer", desc = "How many seconds does it wait before pausing.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 20, + minStep = 1 + ) + public int pauseTimer = 3; + + @Expose + @ConfigOption(name = "Show only in The Mist", desc = "Show the overlay only when you are in The Mist.") + @ConfigEditorBoolean + public boolean onlyOnMist = true; + + @Expose + @ConfigOption(name = "Maxed Bestiary", desc = "Show progress to max bestiary instead of next level.") + @ConfigEditorBoolean + public boolean showMax = false; + + @ConfigOption(name = "Reset", desc = "Reset the counter.") + @ConfigEditorButton(buttonText = "Reset") + public Runnable resetCounter = GhostUtil.INSTANCE::reset; + + @Expose + public Position position = new Position(50, 50, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/BestiaryFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/BestiaryFormattingConfig.java new file mode 100644 index 000000000..c41b23fe1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/BestiaryFormattingConfig.java @@ -0,0 +1,41 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class BestiaryFormattingConfig { + + @Expose + @ConfigOption(name = "Bestiary", desc = "Bestiary Progress line.\n§e%value% §7is replaced with\n" + + "Your current progress to next level.\n" + + "§e%currentLevel% &7is replaced with your current bestiary level\n" + + "§e%nextLevel% §7is replaced with your current bestiary level +1.\n" + + "§e%value% §7is replaced with one of the text below.") + @ConfigEditorText + public String base = " &6Bestiary %display%: &b%value%"; + + @Expose + @ConfigOption(name = "No Data", desc = "Text to show when you need to open the\nBestiary Menu to gather data.") + @ConfigEditorText + public String openMenu = "§cOpen Bestiary Menu !"; + + @Expose + @ConfigOption(name = "Maxed", desc = "Text to show when your bestiary for ghost is at max level.\n" + + "§e%currentKill% §7is replaced with your current total kill.") + @ConfigEditorText + public String maxed = "%currentKill% (&c&lMaxed!)"; + + @Expose + @ConfigOption(name = "Progress to Max", desc = "Text to show progress when the §eMaxed Bestiary §7option is §aON\n" + + "§e%currentKill% §7is replaced with your current total kill.") + @ConfigEditorText + public String showMax_progress = "%currentKill%/250k (%percentNumber%%)"; + + @Expose + @ConfigOption(name = "Progress", desc = "Text to show progress when the §eMaxed Bestiary§7 option is §cOFF\n" + + "§e%currentKill% §7is replaced with how many kill you have to the next level.\n" + + "§e%killNeeded% §7is replaced with how many kill you need to reach the next level.") + @ConfigEditorText + public String progress = "%currentKill%/%killNeeded%"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/ETAFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/ETAFormattingConfig.java new file mode 100644 index 000000000..146b56811 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/ETAFormattingConfig.java @@ -0,0 +1,42 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ETAFormattingConfig { + @Expose + @ConfigOption(name = "ETA to next level", desc = "ETA To Next Level Line.\n" + + "§e%value% §7is replaced with one of the text below.") + @ConfigEditorText + public String base = " &6ETA: &b%value%"; + + @Expose + @ConfigOption(name = "Maxed!", desc = "So you really maxed ghost bestiary ?") + @ConfigEditorText + public String maxed = "&c&lMAXED!"; + + @Expose + @ConfigOption(name = "No Data", desc = "Start killing some ghosts !") + @ConfigEditorText + public String noData = "&bN/A"; + + @Expose + @ConfigOption(name = "Progress", desc = "Text to show progress to next level.") + @ConfigEditorText + public String progress = "&b%value%"; + + @Expose + @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + + "when you are doing nothing for a given amount of seconds") + @ConfigEditorText + public String paused = "&c(PAUSED)"; + + @Expose + @ConfigOption(name = "Time", desc = "§e%days% §7is replaced with days remaining.\n" + + "§e%hours% §7is replaced with hours remaining.\n" + + "§e%minutes% §7is replaced with minutes remaining.\n" + + "§e%seconds% §7is replaced with seconds remaining.") + @ConfigEditorText + public String time = "&6%days%%hours%%minutes%%seconds%"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/KillHourFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/KillHourFormattingConfig.java new file mode 100644 index 000000000..41cf0dcdd --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/KillHourFormattingConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class KillHourFormattingConfig { + @Expose + @ConfigOption(name = "Kill/h", desc = "Kill Per Hour line.\n§e%value% §7is replaced with\nEstimated kills per hour you get.") + @ConfigEditorText + public String base = " &6Kill/h: &b%value%"; + + @Expose + @ConfigOption(name = "No Data", desc = "Start killing some ghosts !") + @ConfigEditorText + public String noData = "&bN/A"; + + @Expose + @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + + "when you are doing nothing for a given amount of seconds") + @ConfigEditorText + public String paused = "&c(PAUSED)"; +} + diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/TextFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/TextFormattingConfig.java new file mode 100644 index 000000000..750b3ae2c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/TextFormattingConfig.java @@ -0,0 +1,148 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting; + +import at.hannibal2.skyhanni.features.combat.ghostcounter.GhostFormatting; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigEditorInfoText; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TextFormattingConfig { + + @ConfigOption(name = "§eText Formatting Info", desc = "§e%session% §ris §e§lalways §rreplaced with\n" + + "§7the count for your current session.\n" + + "§7Reset when restarting the game.\n" + + "§7You can use §e&Z §7color code to use SBA chroma.") + @ConfigEditorInfoText + public boolean formatInfo = false; + + @ConfigOption(name = "Reset Formatting", desc = "Reset formatting to default text.") + @ConfigEditorButton(buttonText = "Reset") + public Runnable resetFormatting = GhostFormatting.INSTANCE::reset; + + @ConfigOption(name = "Export Formatting", desc = "Export current formatting to clipboard.") + @ConfigEditorButton(buttonText = "Export") + public Runnable exportFormatting = GhostFormatting.INSTANCE::export; + + @ConfigOption(name = "Import Formatting", desc = "Import formatting from clipboard.") + @ConfigEditorButton(buttonText = "Import") + public Runnable importFormatting = GhostFormatting.INSTANCE::importFormat; + + @Expose + @ConfigOption(name = "Title", desc = "Title Line.") + @ConfigEditorText + public String titleFormat = "&6Ghost Counter"; + + @Expose + @ConfigOption(name = "Ghost Killed", desc = "Ghost Killed line.\n§e%value% §ris replaced with\n" + + "Ghost Killed.\n" + + "§e%session% §7is replaced with Ghost killed") + @ConfigEditorText + public String ghostKilledFormat = " &6Ghost Killed: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Sorrows", desc = "Sorrows drop line.\n" + + "§e%value% §7is replaced with\nsorrows dropped.") + @ConfigEditorText + public String sorrowsFormat = " &6Sorrow: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Ghost Since Sorrow", desc = "Ghost Since Sorrow line.\n" + + "§e%value% §7is replaced with\nGhost since last sorrow drop.") + @ConfigEditorText + public String ghostSinceSorrowFormat = " &6Ghost since Sorrow: &b%value%"; + + @Expose + @ConfigOption(name = "Ghost Kill Per Sorrow", desc = "Ghost Kill Per Sorrow line.\n" + + "§e%value% §7is replaced with\naverage ghost kill per sorrow drop.") + @ConfigEditorText + public String ghostKillPerSorrowFormat = " &6Ghosts/Sorrow: &b%value%"; + + @Expose + @ConfigOption(name = "Voltas", desc = "Voltas drop line.\n" + + "§e%value% §7is replaced with\nvoltas dropped.") + @ConfigEditorText + public String voltasFormat = " &6Voltas: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Plasmas", desc = "Plasmas drop line.\n" + + "§e%value% §7is replaced with\nplasmas dropped.") + @ConfigEditorText + public String plasmasFormat = " &6Plasmas: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Ghostly Boots", desc = "Ghostly Boots drop line.\n" + + "§e%value% §7is replaced with\nGhostly Boots dropped.") + @ConfigEditorText + public String ghostlyBootsFormat = " &6Ghostly Boots: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Bag Of Cash", desc = "Bag Of Cash drop line.\n" + + "§e%value% §7is replaced with\nBag Of Cash dropped.") + @ConfigEditorText + public String bagOfCashFormat = " &6Bag Of Cash: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Average Magic Find", desc = "Average Magic Find line.\n" + + "§e%value% §7is replaced with\nAverage Magic Find.") + @ConfigEditorText + public String avgMagicFindFormat = " &6Avg Magic Find: &b%value%"; + + @Expose + @ConfigOption(name = "Scavenger Coins", desc = "Scavenger Coins line.\n" + + "§e%value% §7is replaced with\nCoins earned from kill ghosts.\nInclude: Scavenger Enchant, Scavenger Talismans, Kill Combo.") + @ConfigEditorText + public String scavengerCoinsFormat = " &6Scavenger Coins: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Kill Combo", desc = "Kill Combo line.\n" + + "§e%value% §7is replaced with\nYour current kill combo.") + @ConfigEditorText + public String killComboFormat = " &6Kill Combo: &b%value%"; + + @Expose + @ConfigOption(name = "Highest Kill Combo", desc = "Highest Kill Combo line.\n" + + "§e%value% §7is replaced with\nYour current highest kill combo.") + @ConfigEditorText + public String highestKillComboFormat = " &6Highest Kill Combo: &b%value% &7(%session%)"; + + @Expose + @ConfigOption(name = "Skill XP Gained", desc = "Skill XP Gained line.\n" + + "§e%value% §7is replaced with\nSkill XP Gained from killing Ghosts.") + @ConfigEditorText + public String skillXPGainFormat = " &6Skill XP Gained: &b%value% &7(%session%)"; + + @ConfigOption(name = "Bestiary Formatting", desc = "") + @Accordion + @Expose + public BestiaryFormattingConfig bestiaryFormatting = new BestiaryFormattingConfig(); + + @ConfigOption(name = "XP Per Hour Formatting", desc = "") + @Accordion + @Expose + public XPHourFormattingConfig xpHourFormatting = new XPHourFormattingConfig(); + + @ConfigOption(name = "ETA Formatting", desc = "") + @Accordion + @Expose + public ETAFormattingConfig etaFormatting = new ETAFormattingConfig(); + + @ConfigOption(name = "Kill Per Hour Formatting", desc = "") + @Expose + @Accordion + public KillHourFormattingConfig killHourFormatting = new KillHourFormattingConfig(); + + @Expose + @ConfigOption(name = "Money Per Hour", desc = "Money Per Hour.\n§e%value% §7is replaced with\nEstimated money you get per hour\n" + + "Calculated with your kill per hour and your average magic find.") + @ConfigEditorText + public String moneyHourFormat = " &6$/h: &b%value%"; + + @Expose + @ConfigOption(name = "Money made", desc = "Calculate the money you made.\nInclude §eSorrow§7, §ePlasma§7, §eVolta§7, §e1M coins drop\n" + + "§eGhostly Boots§7, §eScavenger coins.\n" + + "§cUsing current Sell Offer value.") + @ConfigEditorText + public String moneyMadeFormat = " &6Money made: &b%value%"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/XPHourFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/XPHourFormattingConfig.java new file mode 100644 index 000000000..d04f4942a --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/combat/ghostcounter/textformatting/XPHourFormattingConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.combat.ghostcounter.textformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class XPHourFormattingConfig { + + @Expose + @ConfigOption(name = "XP/h", desc = "XP Per Hour line.\n" + + "§e%value% §7is replaced with one of the text below.") + @ConfigEditorText + public String base = " &6XP/h: &b%value%"; + + @Expose + @ConfigOption(name = "No Data", desc = "XP Per Hour line.\n§e%value% §7is replaced with\nEstimated amount of combat xp you gain per hour.") + @ConfigEditorText + public String noData = "&bN/A"; + + @Expose + @ConfigOption(name = "Paused", desc = "Text displayed next to the time \n" + + "when you are doing nothing for a given amount of seconds") + @ConfigEditorText + public String paused = "&c(PAUSED)"; +} + diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java new file mode 100644 index 000000000..777d543a3 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.commands; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class CommandsConfig { + + @ConfigOption(name = "Tab Complete", desc = "") + @Accordion + @Expose + public TabCompleteConfig tabComplete = new TabCompleteConfig(); + + @ConfigOption(name = "Fandom Wiki for §e/wiki", desc = "") + @Accordion + @Expose + public FandomWikiCommandConfig fandomWiki = new FandomWikiCommandConfig(); + + @ConfigOption(name = "Party Commands", desc = "Shortens party commands and allows tab-completing for them. " + + "\n§eCommands: /pt /pp /pko /pk §7SkyBlock command §e/pt §7to check the play time still works.") + @Expose + @ConfigEditorBoolean + @FeatureToggle + public boolean shortCommands = true; + + @Expose + @ConfigOption(name = "Replace Warp Is", desc = "Adds §e/warp is §7alongside §e/is§7. Idk why. Ask §cKaeso") + @ConfigEditorBoolean + @FeatureToggle + public boolean replaceWarpIs = false; + + @Expose + @ConfigOption(name = "/viewrecipe Lower Case", desc = "Adds support for lower case item IDs to the Hypixel command §e/viewrecipe§7.") + @ConfigEditorBoolean + @FeatureToggle + public boolean viewRecipeLowerCase = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/FandomWikiCommandConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/FandomWikiCommandConfig.java new file mode 100644 index 000000000..c8a25a204 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/FandomWikiCommandConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.commands; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class FandomWikiCommandConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Use Fandom Wiki (§ehypixel-skyblock.fandom.com§7) instead of the Hypixel wiki (§ewiki.hypixel.net§7) in most wiki-related chat messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Skip Chat", desc = "Directly opens the Fandom Wiki instead of sending the §e\"Click to search for this thing on the Fandom Wiki\"§7 message beforehand.") + @ConfigEditorBoolean + public boolean skipWikiChat = false; + + @Expose + @ConfigOption(name = "Fandom Wiki Key", desc = "Search for an item on Fandom Wiki with this keybind.\n§4For optimal experiences, do §lNOT§r §4bind this to a mouse button.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int fandomWikiKeybind = Keyboard.KEY_NONE; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/TabCompleteConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/TabCompleteConfig.java new file mode 100644 index 000000000..6e3420a59 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/TabCompleteConfig.java @@ -0,0 +1,61 @@ +package at.hannibal2.skyhanni.config.features.commands; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TabCompleteConfig { + + @Expose + @ConfigOption(name = "Warps", desc = "Tab complete the warp-point names when typing §e/warp <TAB>§7.") + @ConfigEditorBoolean + @FeatureToggle + public boolean warps = true; + + @Expose + @ConfigOption(name = "Island Players", desc = "Tab complete other players on the same island.") + public boolean islandPlayers = true; + + @Expose + @ConfigOption(name = "Friends", desc = "Tab complete friends from your friends list.") + @ConfigEditorBoolean + @FeatureToggle + public boolean friends = true; + + @Expose + @ConfigOption(name = "Only Best Friends", desc = "Only Tab Complete best friends.") + @ConfigEditorBoolean + @FeatureToggle + public boolean onlyBestFriends = false; + + @Expose + @ConfigOption(name = "Party", desc = "Tab complete Party Members.") + @ConfigEditorBoolean + @FeatureToggle + public boolean party = true; + + @Expose + @ConfigOption(name = "VIP Visits", desc = "Tab complete the visit to special users with cake souls on it.") + @ConfigEditorBoolean + @FeatureToggle + public boolean vipVisits = true; + + @Expose + @ConfigOption(name = "/gfs Sack", desc = "Tab complete §e/gfs §7sack items.") + @ConfigEditorBoolean + @FeatureToggle + public boolean gfsSack = true; + + @Expose + @ConfigOption(name = "Party Commands", desc = "Tab complete commonly used party commands.") + @ConfigEditorBoolean + @FeatureToggle + public boolean partyCommands = true; + + @Expose + @ConfigOption(name = "View Recipe", desc = "Tab complete item IDs in the the Hypixel command §e/viewrecipe§7. Only items with recipes are tab completed.") + @ConfigEditorBoolean + @FeatureToggle + public boolean viewrecipeItems = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/CrimsonIsleConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/CrimsonIsleConfig.java new file mode 100644 index 000000000..7dd530bc4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/CrimsonIsleConfig.java @@ -0,0 +1,34 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.features.crimsonisle.ashfang.AshfangConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CrimsonIsleConfig { + + @Category(name = "Ashfang", desc = "Ashfang settings") + @Expose + public AshfangConfig ashfang = new AshfangConfig(); + + @ConfigOption(name = "Reputation Helper", desc = "") + @Accordion + @Expose + public ReputationHelperConfig reputationHelper = new ReputationHelperConfig(); + + @Expose + @ConfigOption(name = "Quest Item Helper", desc = "When you open the fetch item quest in the town board, " + + "it shows a clickable chat message that will grab the items needed from the sacks.") + @ConfigEditorBoolean + @FeatureToggle + public boolean questItemHelper = false; + + @Expose + @ConfigOption(name = "Pablo NPC Helper", desc = "Similar to Quest Item Helper, shows a clickable message that grabs the flower needed from sacks.") + @ConfigEditorBoolean + @FeatureToggle + public boolean pabloHelper = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ReputationHelperConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ReputationHelperConfig.java new file mode 100644 index 000000000..cddce2228 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ReputationHelperConfig.java @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class ReputationHelperConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enable features around Reputation features in the Crimson Isle.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Use Hotkey", desc = "Only show the Reputation Helper while pressing the hotkey.") + @ConfigEditorBoolean + public boolean useHotkey = false; + + @Expose + @ConfigOption(name = "Hotkey", desc = "Press this hotkey to show the Reputation Helper.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int hotkey = Keyboard.KEY_NONE; + + + @Expose + public Position position = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Show Locations", desc = "Crimson Isles waypoints for locations to get reputation.") + @ConfigEditorDropdown(values = {"Always", "Only With Hotkey", "Never"}) + public int showLocation = 1; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/AshfangConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/AshfangConfig.java new file mode 100644 index 000000000..6e983e440 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/AshfangConfig.java @@ -0,0 +1,50 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle.ashfang; + +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.ConfigOption; + +public class AshfangConfig { + + @ConfigOption(name = "Gravity Orbs", desc = "") + @Accordion + @Expose + public GravityOrbsConfig gravityOrbs = new GravityOrbsConfig(); + + @ConfigOption(name = "Blazing Souls", desc = "") + @Accordion + @Expose + public BlazingSoulsColor blazingSouls = new BlazingSoulsColor(); + + @ConfigOption(name = "Hide Stuff", desc = "") + @Accordion + @Expose + public HideAshfangConfig hide = new HideAshfangConfig(); + + @Expose + @ConfigOption(name = "Highlight Blazes", desc = "Highlight the different blazes in their respective colors.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightBlazes = false; + + @Expose + @ConfigOption(name = "Freeze Cooldown", desc = "Show the cooldown for how long Ashfang blocks your abilities.") + @ConfigEditorBoolean + @FeatureToggle + public boolean freezeCooldown = false; + + @Expose + public Position freezeCooldownPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Reset Time", desc = "Show the cooldown until Ashfang pulls his underlings back.") + @ConfigEditorBoolean + @FeatureToggle + public boolean nextResetCooldown = false; + + @Expose + public Position nextResetCooldownPos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/BlazingSoulsColor.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/BlazingSoulsColor.java new file mode 100644 index 000000000..6af0547d8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/BlazingSoulsColor.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle.ashfang; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class BlazingSoulsColor { + + @Expose + @ConfigOption(name = "Enabled", desc = "Shows the Blazing Souls more clearly.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Souls Color", desc = "Color of the Blazing Souls.") + @ConfigEditorColour + public String color = "0:245:85:255:85"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/GravityOrbsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/GravityOrbsConfig.java new file mode 100644 index 000000000..a9e1fddf5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/GravityOrbsConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle.ashfang; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class GravityOrbsConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Shows the Gravity Orbs more clearly.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Color", desc = "Color of the Gravity Orbs.") + @ConfigEditorColour + public String color = "0:120:255:85:85"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/HideAshfangConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/HideAshfangConfig.java new file mode 100644 index 000000000..1160988e5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/crimsonisle/ashfang/HideAshfangConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.crimsonisle.ashfang; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class HideAshfangConfig { + + @Expose + @ConfigOption(name = "Hide Particles", desc = "Hide particles around the Ashfang boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean particles = false; + + @Expose + @ConfigOption(name = "Hide Full Names", desc = "Hide the names of full health blazes around Ashfang (only useful when highlight blazes is enabled)") + @ConfigEditorBoolean + @FeatureToggle + public boolean fullNames = false; + + @Expose + @ConfigOption(name = "Hide Damage Splash", desc = "Hide damage splashes around Ashfang.") + @ConfigEditorBoolean + @FeatureToggle + public boolean damageSplash = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java new file mode 100644 index 000000000..7f7b9af63 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java @@ -0,0 +1,88 @@ +package at.hannibal2.skyhanni.config.features.dev; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class DebugConfig { + @Expose + @ConfigOption(name = "Enable Debug", desc = "Enable Test logic") + @ConfigEditorBoolean + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Command Logging", desc = "Logs stack trace information into the console when a command gets sent to Hypixel. (by any mod or the player)") + @ConfigEditorBoolean + public boolean commandLogs = false; + + @Expose + @ConfigOption( + name = "Mod Menu Log", + desc = "Enables debug messages when the currently opened GUI changes, with the path to the gui class. " + + "Useful for adding more mods to quick mod menu switch." + ) + @ConfigEditorBoolean + public boolean modMenuLog = false; + + @Expose + @ConfigOption(name = "Show Internal Name", desc = "Show internal names in item lore.") + @ConfigEditorBoolean + public boolean showInternalName = false; + + @Expose + @ConfigOption(name = "Show Empty Internal Names", desc = "Shows internal name even for items with none.") + @ConfigEditorBoolean + public boolean showEmptyNames = false; + + @Expose + @ConfigOption(name = "Show Item Rarity", desc = "Show item rarities in item lore.") + @ConfigEditorBoolean + public boolean showItemRarity = false; + + @Expose + @ConfigOption(name = "Copy Internal Name", desc = "Copies the internal name of an item on key press in the clipboard.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int copyInternalName = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Show NPC Price", desc = "Show NPC price in item lore.") + @ConfigEditorBoolean + public boolean showNpcPrice = false; + + @Expose + @ConfigOption(name = "Show Item UUID", desc = "Show the Unique Identifier of items in the lore.") + @ConfigEditorBoolean + public boolean showItemUuid = false; + + @Expose + @ConfigOption(name = "Copy Item Data", desc = "Copies item NBT data on key press in a GUI to clipboard.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int copyItemData = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Copy Compressed Item Data", desc = "Copies compressed item NBT data on key press in a GUI to clipboard.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int copyItemDataCompressed = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Copy RNG Meter", desc = "Copies internal names and maxed XP needed from RNG meter inventories as json to clipboard.") + @ConfigEditorBoolean + public boolean copyRngMeter = false; + + @Expose + @ConfigOption(name = "Copy Bestiary Data", desc = "Copies the bestiary data from the inventory as json to clipboard.") + @ConfigEditorBoolean + public boolean copyBestiaryData = false; + + @Expose + @ConfigOption(name = "Highlight Missing Repo Items", desc = "Highlights each item in the current inventory that is not in your current NEU repo.") + @ConfigEditorBoolean + public boolean highlightMissingRepo = false; + + @Expose + @ConfigOption(name = "Hot Swap Detection", desc = "Show chat messages when Hot Swap starts and ends.") + @ConfigEditorBoolean + public boolean hotSwapDetection = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dev/DevConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dev/DevConfig.java new file mode 100644 index 000000000..7c5282cf4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/DevConfig.java @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.config.features.dev; + +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.dev.minecraftconsole.MinecraftConsoleConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class DevConfig { + + @Expose + @ConfigOption(name = "Repo Auto Update", desc = "Update the repository on every startup.\n" + + "§cOnly disable this if you know what you are doing!") + @ConfigEditorBoolean + public boolean repoAutoUpdate = true; + + @Expose + @ConfigOption(name = "Debug", desc = "") + @Accordion + public DebugConfig debug = new DebugConfig(); + + @Expose + @ConfigOption(name = "Slot Number", desc = "Show slot number in inventory while pressing this key.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int showSlotNumberKey = Keyboard.KEY_NONE; + + @ConfigOption(name = "Parkour Waypoints", desc = "") + @Accordion + @Expose + public WaypointsConfig waypoint = new WaypointsConfig(); + + @Expose + public Position debugPos = new Position(10, 10, false, true); + + @Expose + public Position debugLocationPos = new Position(1, 160, false, true); + + @Expose + @Category(name = "Minecraft Console", desc = "Minecraft Console Settings") + public MinecraftConsoleConfig minecraftConsoles = new MinecraftConsoleConfig(); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dev/WaypointsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dev/WaypointsConfig.java new file mode 100644 index 000000000..863f91476 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/WaypointsConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.dev; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class WaypointsConfig { + + @Expose + @ConfigOption(name = "Save Hotkey", desc = "Saves block location to a temporarily parkour and copies everything to your clipboard.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int saveKey = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Delete Hotkey", desc = "Deletes the last saved location for when you make a mistake.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int deleteKey = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Show Platform Number", desc = "Show the index number over the platform for every parkour.") + @ConfigEditorBoolean + public boolean showPlatformNumber = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/ConsoleFiltersConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/ConsoleFiltersConfig.java new file mode 100644 index 000000000..6f537f300 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/ConsoleFiltersConfig.java @@ -0,0 +1,53 @@ +package at.hannibal2.skyhanni.config.features.dev.minecraftconsole; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ConsoleFiltersConfig { + @Expose + @ConfigOption(name = "Filter Chat", desc = "Filter chat messages.") + @ConfigEditorBoolean + public boolean filterChat = false; + + @Expose + @ConfigOption(name = "Filter Grow Buffer", desc = "Filter 'Needed to grow BufferBuilder buffer:'") + @ConfigEditorBoolean + public boolean filterGrowBuffer = true; + + @Expose + @ConfigOption(name = "Filter Sound Error", desc = "Filter 'Unable to play unknown soundEvent'.") + @ConfigEditorBoolean + public boolean filterUnknownSound = true; + + @Expose + @ConfigOption(name = "Filter Scoreboard Errors", desc = "Filter error messages with Scoreboard: removeTeam, createTeam, " + + "removeObjective and 'scoreboard team already exists'.") + @ConfigEditorBoolean + public boolean filterScoreboardErrors = true; + + @Expose + @ConfigOption(name = "Filter Particle", desc = "Filter message 'Could not spawn particle effect VILLAGER_HAPPY'.") + @ConfigEditorBoolean + public boolean filterParticleVillagerHappy = true; + + @Expose + @ConfigOption(name = "Filter OptiFine", desc = "Filter OptiFine messages CustomItems and ConnectedTextures during loading.") + @ConfigEditorBoolean + public boolean filterOptiFine = true; + + @Expose + @ConfigOption(name = "Filter AsmHelper Transformer", desc = "Filter messages when AsmHelper is Transforming a class during loading.") + @ConfigEditorBoolean + public boolean filterAmsHelperTransformer = true; + + @Expose + @ConfigOption(name = "Filter Applying AsmWriter", desc = "Filter messages when AsmHelper is applying AsmWriter ModifyWriter.") + @ConfigEditorBoolean + public boolean filterAsmHelperApplying = true; + + @Expose + @ConfigOption(name = "Filter Biome ID Bounds", desc = "Filter message 'Biome ID is out of bounds'.") + @ConfigEditorBoolean + public boolean filterBiomeIdBounds = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/MinecraftConsoleConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/MinecraftConsoleConfig.java new file mode 100644 index 000000000..bdca34590 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/minecraftconsole/MinecraftConsoleConfig.java @@ -0,0 +1,40 @@ +package at.hannibal2.skyhanni.config.features.dev.minecraftconsole; + +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.ConfigOption; + +public class MinecraftConsoleConfig { + @Expose + @ConfigOption(name = "Unfiltered Debug", desc = "Print the debug information for unfiltered console messages.") + @ConfigEditorBoolean + public boolean printUnfilteredDebugs = false; + + @Expose + @ConfigOption(name = "Unfiltered Debug File", desc = "Print the debug information into log files instead of into the console for unfiltered console messages.") + @ConfigEditorBoolean + public boolean logUnfilteredFile = false; + + @Expose + @ConfigOption( + name = "Outside SkyBlock", + desc = "Print the debug information for unfiltered console messages outside SkyBlock too." + ) + @ConfigEditorBoolean + public boolean printUnfilteredDebugsOutsideSkyBlock = false; + + @Expose + @ConfigOption( + name = "Log Filtered", + desc = "Log the filtered messages into the console." + ) + @ConfigEditorBoolean + public boolean printFilteredReason = false; + + @Expose + @ConfigOption(name = "Console Filters", desc = "") + @Accordion + public ConsoleFiltersConfig consoleFilter = new ConsoleFiltersConfig(); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/CleanEndConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/CleanEndConfig.java new file mode 100644 index 000000000..4dcdc6d7f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/CleanEndConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CleanEndConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "After the last Dungeon boss has died, all entities and " + + "particles are no longer displayed and the music stops playing, but the loot chests are still displayed.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Ignore Guardians", desc = "Ignore F3 and M3 Guardians from the clean end feature when " + + "sneaking. Makes it easier to kill them after the boss died already. Thanks Hypixel.") + @ConfigEditorBoolean + public boolean F3IgnoreGuardians = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonConfig.java new file mode 100644 index 000000000..84cba4de7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonConfig.java @@ -0,0 +1,102 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +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.ConfigOption; + +public class DungeonConfig { + + @Expose + @ConfigOption(name = "Clicked Blocks", desc = "Highlight levers, chests, and Wither Essence when clicked in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightClickedBlocks = false; + + @Expose + @ConfigOption(name = "Milestones Display", desc = "Show the current milestone in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showMilestonesDisplay = false; + + @Expose + public Position showMileStonesDisplayPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Death Counter Display", desc = "Display the total amount of deaths in the current Dungeon.") + @ConfigEditorBoolean + @FeatureToggle + public boolean deathCounterDisplay = false; + + @Expose + public Position deathCounterPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Clean End", desc = "") + @Accordion + public CleanEndConfig cleanEnd = new CleanEndConfig(); + + @Expose + @ConfigOption(name = "Boss Damage Splash", desc = "Hides damage splashes while inside the boss room (fixes a Skytils feature).") + @ConfigEditorBoolean + @FeatureToggle + public boolean damageSplashBoss = false; + + @Expose + @ConfigOption(name = "Highlight Deathmites", desc = "Highlight Deathmites in Dungeons in red color.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightDeathmites = true; + + @Expose + @ConfigOption(name = "Highlight Teammates", desc = "Highlight Dungeon teammates with a glowing outline.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightTeammates = true; + + @Expose + @ConfigOption(name = "Object Hider", desc = "Hide various things in Dungeons.") + @Accordion + public ObjectHiderConfig objectHider = new ObjectHiderConfig(); + + @Expose + @ConfigOption(name = "Message Filter", desc = "") + @Accordion + public MessageFilterConfig messageFilter = new MessageFilterConfig(); + + @Expose + @ConfigOption(name = "Dungeon Copilot", desc = "") + @Accordion + public DungeonCopilotConfig dungeonCopilot = new DungeonCopilotConfig(); + + @Expose + @ConfigOption(name = "Party Finder", desc = "") + @Accordion + public PartyFinderConfig partyFinder = new PartyFinderConfig(); + + @Expose + @ConfigOption(name = "Tab List", desc = "") + @Accordion + public TabListConfig tabList = new TabListConfig(); + + @Expose + @ConfigOption(name = "Livid Finder", desc = "") + @Accordion + public LividFinderConfig lividFinder = new LividFinderConfig(); + + @Expose + @ConfigOption(name = "Moving Skeleton Skulls", desc = "Highlight Skeleton Skulls when combining into an " + + "orange Skeletor (not useful when combined with feature Hide Skeleton Skull).") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightSkeletonSkull = true; + + @Expose + @ConfigOption(name = "Croesus Chest", desc = "Adds a visual highlight to the Croesus inventory that " + + "shows unopened chests.") + @ConfigEditorBoolean + @FeatureToggle + public boolean croesusUnopenedChestTracker = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonCopilotConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonCopilotConfig.java new file mode 100644 index 000000000..e285fd951 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/DungeonCopilotConfig.java @@ -0,0 +1,18 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class DungeonCopilotConfig { + @Expose + @ConfigOption(name = "Copilot Enabled", desc = "Suggests what to do next in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + public Position pos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/LividFinderConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/LividFinderConfig.java new file mode 100644 index 000000000..4525d1c31 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/LividFinderConfig.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class LividFinderConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Helps find the correct livid in F5 and in M5.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Hide Wrong Livids", desc = "Hide wrong livids entirely.") + @ConfigEditorBoolean + public boolean hideWrong = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/MessageFilterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/MessageFilterConfig.java new file mode 100644 index 000000000..5455ab0f5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/MessageFilterConfig.java @@ -0,0 +1,14 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MessageFilterConfig { + @Expose + @ConfigOption(name = "Keys and Doors", desc = "Hides the chat message when picking up keys or opening doors in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean keysAndDoors = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/ObjectHiderConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/ObjectHiderConfig.java new file mode 100644 index 000000000..690d09249 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/ObjectHiderConfig.java @@ -0,0 +1,65 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ObjectHiderConfig { + @Expose + @ConfigOption(name = "Hide Superboom TNT", desc = "Hide Superboom TNT laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideSuperboomTNT = false; + + @Expose + @ConfigOption(name = "Hide Blessings", desc = "Hide Blessings laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideBlessing = false; + + @Expose + @ConfigOption(name = "Hide Revive Stones", desc = "Hide Revive Stones laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideReviveStone = false; + + @Expose + @ConfigOption(name = "Hide Premium Flesh", desc = "Hide Premium Flesh laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hidePremiumFlesh = false; + + @Expose + @ConfigOption(name = "Hide Journal Entry", desc = "Hide Journal Entry pages laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideJournalEntry = false; + + @Expose + @ConfigOption(name = "Hide Skeleton Skull", desc = "Hide Skeleton Skulls laying around in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideSkeletonSkull = true; + + @Expose + @ConfigOption(name = "Hide Healer Orbs", desc = "Hides the damage, ability damage and defensive orbs that spawn when the Healer kills mobs.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideHealerOrbs = false; + + @Expose + @ConfigOption(name = "Hide Healer Fairy", desc = "Hide the Golden Fairy that follows the Healer in Dungeons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideHealerFairy = false; + + @Expose + @ConfigOption( + name = "Hide Soulweaver Skulls", + desc = "Hide the annoying soulweaver skulls that float around you if you have the soulweaver gloves equipped.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideSoulweaverSkulls = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/PartyFinderConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/PartyFinderConfig.java new file mode 100644 index 000000000..2abb3ec22 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/PartyFinderConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PartyFinderConfig { + @Expose + @ConfigOption(name = "Colored Class Level", desc = "Color class levels in Party Finder.") + @ConfigEditorBoolean + @FeatureToggle + public boolean coloredClassLevel = true; + + @Expose + @ConfigOption(name = "Floor Stack Size", desc = "Display the party finder floor as the item stack size.") + @ConfigEditorBoolean + @FeatureToggle + public boolean floorAsStackSize = true; + + @Expose + @ConfigOption(name = "Mark Paid Carries", desc = "Highlight paid carries with a red background to make them easier to find/skip.") + @ConfigEditorBoolean + @FeatureToggle + public boolean markPaidCarries = true; + + @Expose + @ConfigOption(name = "Mark Low Levels", desc = "Highlight groups with players at or below the specified class level to make them easier to find/skip.") + @ConfigEditorSlider(minValue = 0, maxValue = 50, minStep = 1) + public int markBelowClassLevel = 0; + + @Expose + @ConfigOption(name = "Mark Ineligible Groups", desc = "Highlight groups with requirements that you do not meet.") + @ConfigEditorBoolean + @FeatureToggle + public boolean markIneligibleGroups = true; + + @Expose + @ConfigOption(name = "Mark Missing Class", desc = "Highlight groups that don't currently have any members of your selected dungeon class.") + @ConfigEditorBoolean + @FeatureToggle + public boolean markMissingClass = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/TabListConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/TabListConfig.java new file mode 100644 index 000000000..221cf4651 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dungeon/TabListConfig.java @@ -0,0 +1,15 @@ +package at.hannibal2.skyhanni.config.features.dungeon; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TabListConfig { + + @Expose + @ConfigOption(name = "Colored Class Level", desc = "Color class levels in tab list. (Also hides rank colors and emblems, because who needs that in Dungeons anyway?)") + @ConfigEditorBoolean + @FeatureToggle + public boolean coloredClassLevel = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/CenturyConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/CenturyConfig.java new file mode 100644 index 000000000..d5636117d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/CenturyConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.event; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CenturyConfig { + + @ConfigOption(name = "Enable Active Player Timer", desc = "Show a HUD telling you how much longer you have to wait to be eligible for another free ticket.") + @Expose + @ConfigEditorBoolean + @FeatureToggle + public boolean enableActiveTimer = true; + + @Expose + public Position activeTimerPosition = new Position(100, 100, false, true); + + @ConfigOption(name = "Enable Active Player Alert", desc = "Loudly proclaim when it is time to break some wheat.") + @Expose + @ConfigEditorBoolean + public boolean enableActiveAlert = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/CityProjectConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/CityProjectConfig.java new file mode 100644 index 000000000..ec0b853bb --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/CityProjectConfig.java @@ -0,0 +1,31 @@ +package at.hannibal2.skyhanni.config.features.event; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CityProjectConfig { + + @Expose + @ConfigOption(name = "Show Materials", desc = "Show materials needed for contributing to the City Project.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showMaterials = true; + + @Expose + @ConfigOption(name = "Show Ready", desc = "Mark contributions that are ready to participate.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showReady = true; + + @Expose + @ConfigOption(name = "Daily Reminder", desc = "Remind every 24 hours to participate.") + @ConfigEditorBoolean + @FeatureToggle + public boolean dailyReminder = true; + + @Expose + public Position pos = new Position(150, 150, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java new file mode 100644 index 000000000..ef27a42bd --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java @@ -0,0 +1,51 @@ +package at.hannibal2.skyhanni.config.features.event; + +import at.hannibal2.skyhanni.config.features.event.bingo.BingoConfig; +import at.hannibal2.skyhanni.config.features.event.diana.DianaConfig; +import at.hannibal2.skyhanni.config.features.event.winter.WinterConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class EventConfig { + + @Category(name = "Bingo", desc = "Monthly Bingo Event settings") + @Expose + public BingoConfig bingo = new BingoConfig(); + + @Category(name = "Diana", desc = "Diana's Mythological Burrows") + @Expose + public DianaConfig diana = new DianaConfig(); + + @Category(name = "Winter", desc = "Winter Season on Jerry's Island") + @Expose + public WinterConfig winter = new WinterConfig(); + + @ConfigOption(name = "City Project", desc = "") + @Accordion + @Expose + public CityProjectConfig cityProject = new CityProjectConfig(); + + @ConfigOption(name = "Mayor Jerry's Jerrypocalypse", desc = "") + @Accordion + @Expose + public MayorJerryConfig jerry = new MayorJerryConfig(); + + @ConfigOption(name = "The Great Spook", desc = "") + @Accordion + @Expose + public GreatSpookConfig spook = new GreatSpookConfig(); + + // comment in if the event is needed again +// @ConfigOption(name = "300þ Anniversary Celebration", desc = "Features for the 300þ year of SkyBlock") + @Accordion + @Expose + public CenturyConfig century = new CenturyConfig(); + + @Expose + @ConfigOption(name = "Main Lobby Halloween Basket Waypoints", desc = "") + @Accordion + public HalloweenBasketConfig halloweenBasket = new HalloweenBasketConfig(); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/GreatSpookConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/GreatSpookConfig.java new file mode 100644 index 000000000..69eb0ae06 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/GreatSpookConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.event; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class GreatSpookConfig { + + @Expose + @ConfigOption(name = "Primal Fear Timer", desc = "Shows cooldown timer for next primal fear.") + @ConfigEditorBoolean + @FeatureToggle + public boolean primalFearTimer = false; + + @Expose + @ConfigOption(name = "Primal Fear Notify", desc = "Plays a notification sound when the next primal fear can spawn.") + @ConfigEditorBoolean + @FeatureToggle + public boolean primalFearNotification = false; + + @Expose + public Position positionTimer = new Position(20, 20, false, true); + + @Expose + @ConfigOption(name = "Fear Stat Display", desc = "Shows your current Fear stat value.") + @ConfigEditorBoolean + @FeatureToggle + public boolean fearStatDisplay = false; + + @Expose + public Position positionFear = new Position(30, 30, false, true); + + @Expose + @ConfigOption(name = "IRL Time Left", desc = "Shows the IRL time left before The Great Spook ends.") + @ConfigEditorBoolean + @FeatureToggle + public boolean greatSpookTimeLeft = false; + + @Expose + public Position positionTimeLeft = new Position(40, 40, false, true); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/HalloweenBasketConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/HalloweenBasketConfig.java new file mode 100644 index 000000000..5cb2bfef4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/HalloweenBasketConfig.java @@ -0,0 +1,25 @@ +package at.hannibal2.skyhanni.config.features.event; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class HalloweenBasketConfig { + + @Expose + @ConfigOption(name = "Basket Waypoints", desc = "Show all Halloween Basket waypoints.\nShoutout to §bTobbbb §7for the coordinates.\n(AS OF 2023)") + @ConfigEditorBoolean + @FeatureToggle + public boolean allWaypoints = false; + + @Expose + @ConfigOption(name = "Entrance Waypoints", desc = "Show helper waypoints to Baskets #23, #24, and #25. Coordinates by §bErymanthus§7.") + @ConfigEditorBoolean + public boolean allEntranceWaypoints = false; + + @Expose + @ConfigOption(name = "Only Closest", desc = "Only show the closest waypoint") + @ConfigEditorBoolean + public boolean onlyClosest = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/MayorJerryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/MayorJerryConfig.java new file mode 100644 index 000000000..b3afe6c1a --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/MayorJerryConfig.java @@ -0,0 +1,16 @@ +package at.hannibal2.skyhanni.config.features.event; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MayorJerryConfig { + + @Expose + @ConfigOption(name = "Highlight Jerries", desc = "Highlights Jerries found from the Jerrypocalypse perk. Highlight color is based on color of the Jerry.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightJerries = true; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoCardConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoCardConfig.java new file mode 100644 index 000000000..44dd23ec4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoCardConfig.java @@ -0,0 +1,45 @@ +package at.hannibal2.skyhanni.config.features.event.bingo; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class BingoCardConfig { + @Expose + @ConfigOption(name = "Enable", desc = "Displays the Bingo Card.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + @Expose + @ConfigOption(name = "Quick Toggle", desc = "Quickly toggle the Bingo Card or the step helper by sneaking with SkyBlock Menu in hand.") + @ConfigEditorBoolean + public boolean quickToggle = true; + + @Expose + @ConfigOption(name = "Bingo Steps", desc = "Show help with the next step in Bingo instead of the Bingo Card. " + + "§cThis feature is in early development. Expect bugs and missing goals.") + @ConfigEditorBoolean + public boolean stepHelper = false; + + @Expose + @ConfigOption(name = "Hide Community Goals", desc = "Hide Community Goals from the Bingo Card display.") + @ConfigEditorBoolean + public Property<Boolean> hideCommunityGoals = Property.of(false); + + @Expose + @ConfigOption( + name = "Show Guide", + desc = "Show tips and difficulty for bingo goals inside the Bingo Card inventory.\n" + + "These tips are made from inspirations and guides from the community,\n" + + "aiming to help you to complete the bingo card." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean bingoSplashGuide = true; + + @Expose + public Position bingoCardPos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoConfig.java new file mode 100644 index 000000000..816f8a194 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/BingoConfig.java @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.config.features.event.bingo; + +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.ConfigOption; + +public class BingoConfig { + + @Expose + @ConfigOption(name = "Bingo Card", desc = "") + @Accordion + public BingoCardConfig bingoCard = new BingoCardConfig(); + + @Expose + @ConfigOption(name = "Compact Chat Messages", desc = "") + @Accordion + public CompactChatConfig compactChat = new CompactChatConfig(); + + @Expose + @ConfigOption(name = "Minion Craft Helper", desc = "Show how many more items you need to upgrade the minion in your inventory. Especially useful for Bingo.") + @ConfigEditorBoolean + @FeatureToggle + public boolean minionCraftHelperEnabled = true; + + @Expose + public Position minionCraftHelperPos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/CompactChatConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/CompactChatConfig.java new file mode 100644 index 000000000..bbf737646 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/bingo/CompactChatConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.event.bingo; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CompactChatConfig { + + @Expose + @ConfigOption(name = "Enable", desc = "Shortens chat messages about skill level ups, collection gains, " + + "new area discoveries and SkyBlock level up messages while on Bingo.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Hide Border", desc = "Hide the border messages before and after the compact level up messages.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideBorder = true; + + @Expose + @ConfigOption(name = "Outside Bingo", desc = "Compact the level up chat messages outside of an Bingo profile as well.") + @ConfigEditorBoolean + public boolean outsideBingo = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/DianaConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/DianaConfig.java new file mode 100644 index 000000000..b5d21bade --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/DianaConfig.java @@ -0,0 +1,60 @@ +package at.hannibal2.skyhanni.config.features.event.diana; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class DianaConfig { + + @Expose + @ConfigOption(name = "Soopy Guess", desc = "Uses §eSoopy's Guess Logic §7to find the next burrow. Does not require SoopyV2 or ChatTriggers to be installed.") + @ConfigEditorBoolean + @FeatureToggle + public boolean burrowsSoopyGuess = false; + + @Expose + @ConfigOption(name = "Nearby Detection", desc = "Show burrows near you.") + @ConfigEditorBoolean + @FeatureToggle + public boolean burrowsNearbyDetection = false; + + @Expose + @ConfigOption(name = "Smooth Transition", desc = "Show the way from one burrow to another smoothly.") + @ConfigEditorBoolean + public boolean burrowSmoothTransition = false; + + @Expose + @ConfigOption(name = "Nearest Warp", desc = "Warps to the nearest warp point on the hub, if closer to the next burrow.") + @ConfigEditorBoolean + public boolean burrowNearestWarp = false; + + @Expose + @ConfigOption(name = "Warp Key", desc = "Press this key to warp to nearest burrow waypoint.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int keyBindWarp = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Ignored Warps", desc = "") + @Accordion + public IgnoredWarpsConfig ignoredWarps = new IgnoredWarpsConfig(); + + @Expose + @ConfigOption(name = "Inquisitor Waypoint Sharing", desc = "") + @Accordion + public InquisitorSharingConfig inquisitorSharing = new InquisitorSharingConfig(); + + @Expose + @ConfigOption(name = "Griffin Pet Warning", desc = "Warn when holding an Ancestral Spade if a Griffin Pet is not equipped.") + @ConfigEditorBoolean + @FeatureToggle + public boolean petWarning = true; + + @Expose + @ConfigOption(name = "Always Diana", desc = "Forcefully set the Diana event to be active. This is useful if the auto mayor detection fails.") + @ConfigEditorBoolean + public boolean alwaysDiana = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/IgnoredWarpsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/IgnoredWarpsConfig.java new file mode 100644 index 000000000..2cef22331 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/IgnoredWarpsConfig.java @@ -0,0 +1,19 @@ +package at.hannibal2.skyhanni.config.features.event.diana; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class IgnoredWarpsConfig { + + @Expose + @ConfigOption(name = "Crypt", desc = "Ignore the Crypt warp point (Because it takes a long time to leave).") + @ConfigEditorBoolean + public boolean crypt = false; + + @Expose + @ConfigOption(name = "Wizard", desc = "Ignore the Wizard Tower warp point (Because it is easy to fall into the rift).") + @ConfigEditorBoolean + public boolean wizard = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/InquisitorSharingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/InquisitorSharingConfig.java new file mode 100644 index 000000000..c719a7101 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/diana/InquisitorSharingConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.event.diana; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class InquisitorSharingConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Shares your Inquisitor and receiving other Inquisitors via Party Chat.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Focus", desc = "Hide other waypoints when your Party finds an Inquisitor.") + @ConfigEditorBoolean + public boolean focusInquisitor = false; + + @Expose + @ConfigOption(name = "Instant Share", desc = "Share the waypoint as soon as you find an Inquisitor. As an alternative, you can share it only via key press.") + @ConfigEditorBoolean + public boolean instantShare = true; + + @Expose + @ConfigOption(name = "Share Key", desc = "Press this key to share your Inquisitor Waypoint.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_Y) + public int keyBindShare = Keyboard.KEY_Y; + + @Expose + @ConfigOption(name = "Show Despawn Time", desc = "Show the time until the shared Inquisitor will despawn.") + @ConfigEditorBoolean + public boolean showDespawnTime = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/FrozenTreasureConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/FrozenTreasureConfig.java new file mode 100644 index 000000000..2b41265a6 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/FrozenTreasureConfig.java @@ -0,0 +1,72 @@ +package at.hannibal2.skyhanni.config.features.event.winter; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class FrozenTreasureConfig { + + @Expose + @ConfigOption( + name = "Enabled", + desc = "Tracks all of your drops from Frozen Treasure in the Glacial Caves.\n" + + "§eIce calculations are an estimate but are relatively accurate." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Text Format", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§1§lFrozen Treasure Tracker", + "§61,636 Treasures Mined", + "§33.2m Total Ice", + "§3342,192 Ice/hr", + "§81,002 Compact Procs", + " ", + "§b182 §fWhite Gift", + "§b94 §aGreen Gift", + "§b17 §9§cRed Gift", + "§b328 §fPacked Ice", + "§b80 §aEnchanted Ice", + "§b4 §9Enchanted Packed Ice", + "§b182 §aIce Bait", + "§b3 §aGlowy Chum Bait", + "§b36 §5Glacial Fragment", + "§b6 §fGlacial Talisman", + " ", + } + ) + public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15)); + + @Expose + @ConfigOption(name = "Only in Glacial Cave", desc = "Only shows the overlay while in the Glacial Cave.") + @ConfigEditorBoolean + public boolean onlyInCave = true; + + @Expose + @ConfigOption(name = "Show as Drops", desc = "Multiplies the numbers on the display by the base drop. \n" + + "E.g. 3 Ice Bait -> 48 Ice Bait") + @ConfigEditorBoolean + public boolean showAsDrops = false; + + @Expose + @ConfigOption(name = "Hide Chat Messages", desc = "Hides the chat messages from Frozen Treasures.") + @ConfigEditorBoolean + public boolean hideMessages = false; + + @Expose + public Position position = new Position(10, 80, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/WinterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/WinterConfig.java new file mode 100644 index 000000000..8af9472b1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/winter/WinterConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.event.winter; + +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.ConfigOption; + +public class WinterConfig { + + @Expose + @ConfigOption(name = "Frozen Treasure Tracker", desc = "") + @Accordion + public FrozenTreasureConfig frozenTreasureTracker = new FrozenTreasureConfig(); + + @Expose + @ConfigOption(name = "Island Close Time", desc = "While on the Winter Island, show a timer until Jerry's Workshop closes.") + @ConfigEditorBoolean + @FeatureToggle + public boolean islandCloseTime = true; + + @Expose + public Position islandCloseTimePosition = new Position(10, 10, false, true); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/BarnTimerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/BarnTimerConfig.java new file mode 100644 index 000000000..eb0577135 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/BarnTimerConfig.java @@ -0,0 +1,62 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class BarnTimerConfig { + @Expose + @ConfigOption( + name = "Barn Fishing Timer", + desc = "Show the time and amount of sea creatures while fishing on the barn via hub." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Worm Fishing", + desc = "Show the Barn Fishing Timer even for worms or other sea creatures in the Crystal Hollows." + ) + @ConfigEditorBoolean + public boolean crystalHollows = true; + + @Expose + @ConfigOption( + name = "Stranded Fishing", + desc = "Show the Barn Fishing Timer even on all the different islands Stranded players can visit." + ) + @ConfigEditorBoolean + public boolean forStranded = true; + + @Expose + @ConfigOption( + name = "Worm Cap Alert", + desc = "Alerts you with title and sound if you hit the Worm Sea Creature limit of 60." + ) + @ConfigEditorBoolean + public boolean wormLimitAlert = true; + + @Expose + @ConfigOption(name = "Reset Timer Hotkey", desc = "Press this key to reset the timer manualy") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int manualResetTimer = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Fishing Timer Alert", desc = "Change the amount of time in seconds until the timer dings.") + @ConfigEditorSlider( + minValue = 240, + maxValue = 360, + minStep = 10 + ) + public int alertTime = 330; + + @Expose + public Position pos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ChumBucketHiderConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ChumBucketHiderConfig.java new file mode 100644 index 000000000..aaf8a891e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ChumBucketHiderConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class ChumBucketHiderConfig { + + @Expose + @ConfigOption(name = "Enable", desc = "Hide the Chum/Chumcap Bucket name tags for other players.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(true); + + @Expose + @ConfigOption(name = "Hide Bucket", desc = "Hide the Chum/Chumcap Bucket.") + @ConfigEditorBoolean + public Property<Boolean> hideBucket = Property.of(false); + + @Expose + @ConfigOption(name = "Hide Own", desc = "Hides your own Chum/Chumcap Bucket.") + @ConfigEditorBoolean + public Property<Boolean> hideOwn = Property.of(false); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishedItemNameConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishedItemNameConfig.java new file mode 100644 index 000000000..51c37e5ea --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishedItemNameConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FishedItemNameConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show the fished item name above the item when fishing.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Show Bait", desc = "Also show the name of the consumed bait.") + @ConfigEditorBoolean + public boolean showBaits = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingBaitWarningsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingBaitWarningsConfig.java new file mode 100644 index 000000000..ae2dd9c9b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingBaitWarningsConfig.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FishingBaitWarningsConfig { + @Expose + @ConfigOption(name = "Bait Change Warning", desc = "Show warning when fishing bait is changed") + @ConfigEditorBoolean + @FeatureToggle + public boolean baitChangeWarning = false; + + @Expose + @ConfigOption(name = "No Bait Warning", desc = "Show warning when no bait is used") + @ConfigEditorBoolean + @FeatureToggle + public boolean noBaitWarning = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingConfig.java new file mode 100644 index 000000000..13ef30f84 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingConfig.java @@ -0,0 +1,76 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.fishing.trophyfishing.TrophyFishingConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FishingConfig { + + @Expose + @Category(name = "Trophy Fishing", desc = "Trophy Fishing Settings") + public TrophyFishingConfig trophyFishing = new TrophyFishingConfig(); + + @Expose + @ConfigOption(name = "Thunder Spark", desc = "") + @Accordion + public ThunderSparkConfig thunderSpark = new ThunderSparkConfig(); + + @Expose + @ConfigOption(name = "Barn Fishing Timer", desc = "") + @Accordion + public BarnTimerConfig barnTimer = new BarnTimerConfig(); + + @Expose + @ConfigOption(name = "Chum/Chumcap Bucket Hider", desc = "") + @Accordion + public ChumBucketHiderConfig chumBucketHider = new ChumBucketHiderConfig(); + + @Expose + @ConfigOption(name = "Fished Item Name", desc = "") + @Accordion + public FishedItemNameConfig fishedItemName = new FishedItemNameConfig(); + + @Expose + @ConfigOption(name = "Fishing Hook Display", desc = "") + @Accordion + public FishingHookDisplayConfig fishingHookDisplay = new FishingHookDisplayConfig(); + + @Expose + @ConfigOption(name = "Bait Warnings", desc = "") + @Accordion + public FishingBaitWarningsConfig fishingBaitWarnings = new FishingBaitWarningsConfig(); + + @Expose + @ConfigOption(name = "Rare Sea Creatures", desc = "") + @Accordion + public RareCatchesConfig rareCatches = new RareCatchesConfig(); + + @Expose + @ConfigOption( + name = "Shark Fish Counter", + desc = "Counts how many Sharks have been caught." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean sharkFishCounter = false; + + @Expose + public Position sharkFishCounterPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Shorten Fishing Message", desc = "Shortens the chat message that says what type of Sea Creature you have fished.") + @ConfigEditorBoolean + @FeatureToggle + public boolean shortenFishingMessage = false; + + @Expose + @ConfigOption(name = "Compact Double Hook", desc = "Adds Double Hook to the Sea Creature chat message instead of in a previous line.") + @ConfigEditorBoolean + @FeatureToggle + public boolean compactDoubleHook = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingHookDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingHookDisplayConfig.java new file mode 100644 index 000000000..e2cfdfa05 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingHookDisplayConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FishingHookDisplayConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Display the Hypixel timer until the fishing hook can be pulled out of the water/lava, only bigger and on your screen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Hide Armor Stand", + desc = "Hide the original armor stand from Hypixel when the SkyHanni display is enabled." + ) + @ConfigEditorBoolean + public boolean hideArmorStand = true; + + @Expose + public Position position = new Position(460, -240, 3.4f); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/RareCatchesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/RareCatchesConfig.java new file mode 100644 index 000000000..b89347c65 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/RareCatchesConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class RareCatchesConfig { + + @Expose + @ConfigOption(name = "Alert (Own Sea Creatures)", desc = "Show an alert on screen when you catch a rare sea creature.") + @ConfigEditorBoolean + @FeatureToggle + public boolean alertOwnCatches = true; + + @Expose + @ConfigOption(name = "Alert (Other Sea Creatures)", desc = "Show an alert on screen when other players nearby catch a rare sea creature.") + @ConfigEditorBoolean + public boolean alertOtherCatches = false; + + @Expose + @ConfigOption(name = "Play Sound Alert", desc = "Play a sound effect when rare sea creature alerts are displayed.") + @ConfigEditorBoolean + public boolean playSound = true; + + @Expose + @ConfigOption(name = "Highlight", desc = "Highlight nearby rare sea creatures.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ThunderSparkConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ThunderSparkConfig.java new file mode 100644 index 000000000..78e75f6c4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/ThunderSparkConfig.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.config.features.fishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ThunderSparkConfig { + @Expose + @ConfigOption(name = "Thunder Spark Highlight", desc = "Highlight Thunder Sparks after killing a Thunder.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = false; + + @Expose + @ConfigOption(name = "Thunder Spark Color", desc = "Color of the Thunder Sparks.") + @ConfigEditorColour + public String color = "0:255:255:255:255"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/ChatMessagesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/ChatMessagesConfig.java new file mode 100644 index 000000000..f19fc0d86 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/ChatMessagesConfig.java @@ -0,0 +1,56 @@ +package at.hannibal2.skyhanni.config.features.fishing.trophyfishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ChatMessagesConfig { + + @Expose + @ConfigOption( + name = "Trophy Counter", + desc = "Counts Trophy messages from chat and tells you how many you have found." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption( + name = "Trophy Counter Design", + desc = "§fStyle 1: §72. §6§lGOLD §5Moldfin\n" + + "§fStyle 2: §bYou caught a §5Moldfin §6§lGOLD§b. §7(2)\n" + + "§fStyle 3: §bYou caught your 2nd §6§lGOLD §5Moldfin§b." + ) + @ConfigEditorDropdown(values = {"Style 1", "Style 2", "Style 3"}) + public int design = 0; + + @Expose + @ConfigOption(name = "Show Total Amount", desc = "Show total amount of all rarities at the end of the chat message.") + @ConfigEditorBoolean + public boolean totalAmount = false; + + @Expose + @ConfigOption(name = "Trophy Fish Info", desc = "Show information and stats about a Trophy Fish when hovering over a catch message in chat.") + @ConfigEditorBoolean + @FeatureToggle + public boolean tooltip = true; + + @Expose + @ConfigOption(name = "Hide Repeated Catches", desc = "Delete past catches of the same Trophy Fish from chat.") + @ConfigEditorBoolean + @FeatureToggle + public boolean duplicateHider = false; + + @Expose + @ConfigOption(name = "Bronze Duplicates", desc = "Hide duplicate messages for bronze Trophy Fishes from chat.") + @ConfigEditorBoolean + public boolean bronzeHider = false; + + @Expose + @ConfigOption(name = "Silver Duplicates", desc = "Hide duplicate messages for silver Trophy Fishes from chat.") + @ConfigEditorBoolean + public boolean silverHider = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/TrophyFishingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/TrophyFishingConfig.java new file mode 100644 index 000000000..ce774a72f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/trophyfishing/TrophyFishingConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.fishing.trophyfishing; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class TrophyFishingConfig { + + @Expose + @ConfigOption(name = "Trophy Fishing Chat Messages", desc = "") + @Accordion + public ChatMessagesConfig chatMessages = new ChatMessagesConfig(); + + @Expose + @ConfigOption(name = "Fillet Tooltip", desc = "Show fillet value of Trophy Fish in tooltip.") + @ConfigEditorBoolean + @FeatureToggle + public boolean filletTooltip = true; + + @Expose + @ConfigOption(name = "Odger Waypoint", desc = "Show the Odger waypoint when Trophy Fishes are in the inventory and no lava rod in hand.") + @ConfigEditorBoolean + @FeatureToggle + public boolean odgerLocation = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/AnitaShopConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/AnitaShopConfig.java new file mode 100644 index 000000000..f45f8cbc1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/AnitaShopConfig.java @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class AnitaShopConfig { + @Expose + @ConfigOption( + name = "Medal Prices", + desc = "Helps to identify profitable items to buy at the Anita item shop " + + "and potential profit from selling the item in the Auction House." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean medalProfitEnabled = true; + + @Expose + @ConfigOption( + name = "Extra Farming Fortune", + desc = "Show current tier and cost to max out in the item tooltip.") + @ConfigEditorBoolean + @FeatureToggle + public boolean extraFarmingFortune = true; + + @Expose + public Position medalProfitPos = new Position(206, 158, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/CropStartLocationConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/CropStartLocationConfig.java new file mode 100644 index 000000000..33a797bcb --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/CropStartLocationConfig.java @@ -0,0 +1,16 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CropStartLocationConfig { + + @Expose + @ConfigOption(name = "Enable", desc = "Show the start waypoint for your farm with the currently holding tool.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/DicerCounterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/DicerCounterConfig.java new file mode 100644 index 000000000..63087dab1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/DicerCounterConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class DicerCounterConfig { + @Expose + @ConfigOption(name = "RNG Drop Counter", desc = "Count RNG drops for Melon Dicer and Pumpkin Dicer.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide the chat message when dropping a RNG Dicer drop.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideChat = false; + + @Expose + public Position pos = new Position(16, -232, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java new file mode 100644 index 000000000..c192ac763 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/EliteFarmingWeightConfig.java @@ -0,0 +1,53 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class EliteFarmingWeightConfig { + @Expose + @ConfigOption(name = "Display", desc = "Display your farming weight on screen. " + + "The calculation and API is provided by The Elite SkyBlock farmers. " + + "See §ehttps://elitebot.dev/info §7for more info.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + public Position pos = new Position(180, 10, false, true); + + @Expose + @ConfigOption(name = "Leaderboard Ranking", desc = "Show your position in the farming weight leaderboard. " + + "Only if your farming weight is high enough! Updates every 10 minutes.") + @ConfigEditorBoolean + public boolean leaderboard = true; + + @Expose + @ConfigOption(name = "Overtake ETA", desc = "Show a timer estimating when you'll move up a spot in the leaderboard! " + + "Will show an ETA to rank #10,000 if you're not on the leaderboard yet.") + @ConfigEditorBoolean + public boolean overtakeETA = false; + + @Expose + @ConfigOption(name = "Offscreen Drop Message", desc = "Show a chat message when joining Garden how many spots you have dropped since last Garden join.") + @ConfigEditorBoolean + public boolean offScreenDropMessage = true; + + @Expose + @ConfigOption(name = "Always ETA", desc = "Show the Overtake ETA always, even when not farming at the moment.") + @ConfigEditorBoolean + public boolean overtakeETAAlways = true; + + @Expose + @ConfigOption(name = "ETA Goal", desc = "Override the Overtake ETA to show when you'll reach the specified rank (if not there yet). (Default: \"10,000\")") + @ConfigEditorText + public String ETAGoalRank = "10000"; + + @Expose + @ConfigOption(name = "Show below 200", desc = "Show the farming weight data even if you are below 200 weight.") + @ConfigEditorBoolean + public boolean ignoreLow = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingArmorDropsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingArmorDropsConfig.java new file mode 100644 index 000000000..64d04f932 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingArmorDropsConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FarmingArmorDropsConfig { + @Expose + @ConfigOption(name = "Show Counter", desc = "Count all §9Cropie§7, §5Squash §7and §6Fermento §7dropped.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide the chat message when receiving a farming armor drop.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideChat = false; + + @Expose + public Position pos = new Position(16, -232, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingFortuneConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingFortuneConfig.java new file mode 100644 index 000000000..aadf97fee --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/FarmingFortuneConfig.java @@ -0,0 +1,36 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.commands.Commands; +import at.hannibal2.skyhanni.config.core.config.Position; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FarmingFortuneConfig { + @Expose + @ConfigOption( + name = "FF Display", + desc = "Displays the true Farming Fortune for the current crop, including all crop-specific and hidden bonuses." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + @ConfigOption( + name = "Show As Drop Multiplier", + desc = "Adds 100 to the displayed Farming Fortune so that it represents a drop multiplier rather than" + + " the chance for bonus drops. " + ) + @ConfigEditorBoolean + public boolean dropMultiplier = true; + + @ConfigOption(name = "Farming Fortune Guide", desc = "Opens a guide that breaks down your Farming Fortune.\n§eCommand: /ff") + @ConfigEditorButton(buttonText = "Open") + public Runnable open = Commands::openFortuneGuide; + + @Expose + public Position pos = new Position(5, -180, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenConfig.java new file mode 100644 index 000000000..65a416dca --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenConfig.java @@ -0,0 +1,205 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.garden.composter.ComposterConfig; +import at.hannibal2.skyhanni.config.features.garden.cropmilestones.CropMilestonesConfig; +import at.hannibal2.skyhanni.config.features.garden.optimalspeed.OptimalSpeedConfig; +import at.hannibal2.skyhanni.config.features.garden.visitor.VisitorConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class GardenConfig { + + @Expose + @ConfigOption(name = "SkyMart", desc = "") + @Accordion + public SkyMartConfig skyMart = new SkyMartConfig(); + + @Expose + @Category(name = "Visitor", desc = "Visitor Settings") + public VisitorConfig visitors = new VisitorConfig(); + + @Expose + @ConfigOption(name = "Numbers", desc = "") + @Accordion + public NumbersConfig number = new NumbersConfig(); + + @Expose + @Category(name = "Crop Milestones", desc = "Crop Milestones Settings") + public CropMilestonesConfig cropMilestones = new CropMilestonesConfig(); + + // TODO moulconfig runnable support + @Expose + @ConfigOption(name = "Custom Keybinds", desc = "") + @Accordion + public KeyBindConfig keyBind = new KeyBindConfig(); + + @Expose + @Category(name = "Optimal Speed", desc = "Optimal Speed Settings") + public OptimalSpeedConfig optimalSpeeds = new OptimalSpeedConfig(); + + @Expose + @ConfigOption(name = "Garden Level", desc = "") + @Accordion + public GardenLevelConfig gardenLevels = new GardenLevelConfig(); + + @Expose + @ConfigOption(name = "Farming Weight", desc = "") + @Accordion + public EliteFarmingWeightConfig eliteFarmingWeights = new EliteFarmingWeightConfig(); + + @Expose + @ConfigOption(name = "Dicer Counter", desc = "") + @Accordion + public DicerCounterConfig dicerCounters = new DicerCounterConfig(); + + @Expose + @ConfigOption(name = "Money per Hour", desc = "") + @Accordion + public MoneyPerHourConfig moneyPerHours = new MoneyPerHourConfig(); + + @Expose + @ConfigOption(name = "Next Jacob's Contest", desc = "") + @Accordion + public NextJacobContestConfig nextJacobContests = new NextJacobContestConfig(); + + @Expose + @ConfigOption(name = "Farming Armor Drops", desc = "") + + @Accordion + public FarmingArmorDropsConfig farmingArmorDrop = new FarmingArmorDropsConfig(); + + @Expose + @ConfigOption(name = "Anita Shop", desc = "") + @Accordion + public AnitaShopConfig anitaShop = new AnitaShopConfig(); + + @Expose + @Category(name = "Composter", desc = "Composter Settings") + public ComposterConfig composters = new ComposterConfig(); + + @Expose + @ConfigOption(name = "Farming Fortune Display", desc = "") + @Accordion + public FarmingFortuneConfig farmingFortunes = new FarmingFortuneConfig(); + + @Expose + @ConfigOption(name = "Tooltip Tweaks", desc = "") + @Accordion + public TooltipTweaksConfig tooltipTweak = new TooltipTweaksConfig(); + + @Expose + @ConfigOption(name = "Yaw and Pitch", desc = "") + @Accordion + public YawPitchDisplayConfig yawPitchDisplay = new YawPitchDisplayConfig(); + + @Expose + @ConfigOption(name = "Crop Start Location", desc = "") + @Accordion + public CropStartLocationConfig cropStartLocation = new CropStartLocationConfig(); + + @Expose + @ConfigOption(name = "Garden Plot Icon", desc = "") + @Accordion + public PlotIconConfig plotIcon = new PlotIconConfig(); + + @Expose + @ConfigOption(name = "Plot Price", desc = "Show the price of the plot in coins when inside the Configure Plots inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean plotPrice = true; + + @Expose + @ConfigOption(name = "Desk in Menu", desc = "Show a Desk button in the SkyBlock Menu. Opens the /desk command on click.") + @ConfigEditorBoolean + @FeatureToggle + public boolean deskInSkyBlockMenu = true; + + @Expose + @ConfigOption(name = "Fungi Cutter Warning", desc = "Warn when breaking mushroom with the wrong Fungi Cutter mode.") + @ConfigEditorBoolean + @FeatureToggle + public boolean fungiCutterWarn = true; + + @Expose + @ConfigOption(name = "Burrowing Spores", desc = "Show a notification when a Burrowing Spores spawns while farming mushrooms.") + @ConfigEditorBoolean + @FeatureToggle + public boolean burrowingSporesNotification = true; + + @Expose + @ConfigOption(name = "Wild Strawberry", desc = "Show a notification when a Wild Strawberry Dye drops while farming.") + @ConfigEditorBoolean + @FeatureToggle + public boolean wildStrawberryDyeNotification = true; + + @Expose + @ConfigOption( + name = "FF for Contest", + desc = "Show the minimum needed Farming Fortune for reaching each medal in Jacob's Farming Contest inventory." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean farmingFortuneForContest = true; + + @Expose + public Position farmingFortuneForContestPos = new Position(180, 156, false, true); + + @Expose + @ConfigOption( + name = "Contest Time Needed", + desc = "Show the time and missing FF for every crop inside Jacob's Farming Contest inventory." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean jacobContextTimes = true; + + @Expose + @ConfigOption( + name = "Custom BPS", + desc = "Use custom Blocks per Second value in some GUIs instead of the real one." + ) + @ConfigEditorBoolean + public boolean jacobContestCustomBps = true; + + // TODO moulconfig runnable support + @Expose + @ConfigOption(name = "Custom BPS Value", desc = "Set a custom Blocks per Second value.") + @ConfigEditorSlider( + minValue = 15, + maxValue = 20, + minStep = 0.1f + ) + public double jacobContestCustomBpsValue = 19.9; + + @Expose + public Position jacobContextTimesPos = new Position(-359, 149, false, true); + + @Expose + @ConfigOption( + name = "Contest Summary", + desc = "Show the average Blocks Per Second and blocks clicked at the end of a Jacob Farming Contest in chat." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean jacobContestSummary = true; + + @Expose + @ConfigOption(name = "Always Finnegan", desc = "Forcefully set the Finnegan Farming Simulator perk to be active. This is useful if the auto mayor detection fails.") + @ConfigEditorBoolean + public boolean forcefullyEnabledAlwaysFinnegan = false; + + @Expose + public Position cropSpeedMeterPos = new Position(278, -236, false, true); + + @Expose + @ConfigOption(name = "Enable Plot Borders", desc = "Enable the use of F3 + G hotkey to show Garden plot borders. Similar to how later Minecraft version render chunk borders.") + @ConfigEditorBoolean + @FeatureToggle + public boolean plotBorders = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenLevelConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenLevelConfig.java new file mode 100644 index 000000000..07f330dcd --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenLevelConfig.java @@ -0,0 +1,18 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class GardenLevelConfig { + @Expose + @ConfigOption(name = "Display", desc = "Show the current Garden level and progress to the next level.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + public Position pos = new Position(390, 40, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/KeyBindConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/KeyBindConfig.java new file mode 100644 index 000000000..c016cac7c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/KeyBindConfig.java @@ -0,0 +1,87 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import net.minecraft.client.Minecraft; +import org.lwjgl.input.Keyboard; + +public class KeyBindConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Use custom keybinds while holding a farming tool or Daedalus Axe in the hand.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @ConfigOption(name = "Disable All", desc = "Disable all keys.") + @ConfigEditorButton(buttonText = "Disable") + public Runnable presetDisable = () -> { + attack = Keyboard.KEY_NONE; + useItem = Keyboard.KEY_NONE; + left = Keyboard.KEY_NONE; + right = Keyboard.KEY_NONE; + forward = Keyboard.KEY_NONE; + back = Keyboard.KEY_NONE; + jump = Keyboard.KEY_NONE; + sneak = Keyboard.KEY_NONE; + + Minecraft.getMinecraft().thePlayer.closeScreen(); + }; + + @ConfigOption(name = "Set Default", desc = "Reset all keys to default.") + @ConfigEditorButton(buttonText = "Default") + public Runnable presetDefault = () -> { + attack = -100; + useItem = -99; + left = Keyboard.KEY_A; + right = Keyboard.KEY_D; + forward = Keyboard.KEY_W; + back = Keyboard.KEY_S; + jump = Keyboard.KEY_SPACE; + sneak = Keyboard.KEY_LSHIFT; + Minecraft.getMinecraft().thePlayer.closeScreen(); + }; + + @Expose + @ConfigOption(name = "Attack", desc = "") + @ConfigEditorKeybind(defaultKey = -100) + public int attack = -100; + + @Expose + @ConfigOption(name = "Use Item", desc = "") + @ConfigEditorKeybind(defaultKey = -99) + public int useItem = -99; + + @Expose + @ConfigOption(name = "Move Left", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_A) + public int left = Keyboard.KEY_A; + + @Expose + @ConfigOption(name = "Move Right", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_D) + public int right = Keyboard.KEY_D; + + @Expose + @ConfigOption(name = "Move Forward", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_W) + public int forward = Keyboard.KEY_W; + + @Expose + @ConfigOption(name = "Move Back", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_S) + public int back = Keyboard.KEY_S; + + @Expose + @ConfigOption(name = "Jump", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_SPACE) + public int jump = Keyboard.KEY_SPACE; + + @Expose + @ConfigOption(name = "Sneak", desc = "") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_LSHIFT) + public int sneak = Keyboard.KEY_LSHIFT; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/MoneyPerHourConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/MoneyPerHourConfig.java new file mode 100644 index 000000000..5606e5e3d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/MoneyPerHourConfig.java @@ -0,0 +1,126 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class MoneyPerHourConfig { + @Expose + @ConfigOption(name = "Show Money per Hour", + desc = "Displays the money per hour YOU get with YOUR crop/minute value when selling the item to bazaar. " + + "Supports Bountiful, Mushroom Cow Perk, Armor Crops and Dicer Drops. Their toggles are below.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + // TODO moulconfig runnable support + @Expose + @ConfigOption(name = "Only Show Top", desc = "Only show the best # items.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 25, + minStep = 1 + ) + public int showOnlyBest = 5; + + @Expose + @ConfigOption(name = "Extend Top List", desc = "Add current crop to the list if its lower ranked than the set limit by extending the list.") + @ConfigEditorBoolean + public boolean showCurrent = true; + + // TODO moulconfig runnable support + @Expose + @ConfigOption( + name = "Always On", + desc = "Always show the money/hour Display while on the garden.") + @ConfigEditorBoolean + public boolean alwaysOn = false; + + @Expose + @ConfigOption( + name = "Compact Mode", + desc = "Hide the item name and the position number.") + @ConfigEditorBoolean + public boolean compact = false; + + @Expose + @ConfigOption( + name = "Compact Price", + desc = "Show the price more compact.") + @ConfigEditorBoolean + public boolean compactPrice = false; + + @Expose + @ConfigOption( + name = "Use Custom", + desc = "Use the custom format below instead of classic ➜ §eSell Offer §7and other profiles ➜ §eNPC Price.") + @ConfigEditorBoolean + public boolean useCustomFormat = false; + + @Expose + @ConfigOption( + name = "Custom Format", + desc = "Set what prices to show") + @ConfigEditorDraggableList( + exampleText = { + "§eSell Offer", + "§eInstant Sell", + "§eNPC Price" + }, + requireNonEmpty = true + ) + public List<Integer> customFormat = new ArrayList<>(Arrays.asList(0, 1, 2)); + + @Expose + @ConfigOption( + name = "Merge Seeds", + desc = "Merge the seeds price with the wheat price.") + @ConfigEditorBoolean + public boolean mergeSeeds = true; + + @Expose + @ConfigOption( + name = "Include Bountiful", + desc = "Includes the coins from Bountiful in the calculation.") + @ConfigEditorBoolean + public boolean bountiful = true; + + @Expose + @ConfigOption( + name = "Include Mooshroom Cow", + desc = "Includes the coins you get from selling the mushrooms from your Mooshroom Cow pet.") + @ConfigEditorBoolean + public boolean mooshroom = true; + + @Expose + @ConfigOption( + name = "Include Armor Drops", + desc = "Includes the average coins/hr from your armor.") + @ConfigEditorBoolean + public boolean armor = true; + + @Expose + @ConfigOption( + name = "Include Dicer Drops", + desc = "Includes the average coins/hr from your melon or pumpkin dicer.") + @ConfigEditorBoolean + public boolean dicer = true; + + @Expose + @ConfigOption( + name = "Hide Title", + desc = "Hides the first line of 'Money Per Hour' entirely.") + @ConfigEditorBoolean + public boolean hideTitle = false; + + @Expose + public Position pos = new Position(-330, 170, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/NextJacobContestConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/NextJacobContestConfig.java new file mode 100644 index 000000000..f9b0f80e4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/NextJacobContestConfig.java @@ -0,0 +1,59 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class NextJacobContestConfig { + @Expose + @ConfigOption(name = "Show Jacob's Contest", desc = "Show the current or next Jacob's farming contest time and crops.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + @ConfigOption(name = "Outside Garden", desc = "Show the timer not only in Garden but everywhere in SkyBlock.") + @ConfigEditorBoolean + public boolean everywhere = false; + + @Expose + @ConfigOption(name = "In Other Guis", desc = "Mark the current or next Farming Contest crops in other farming GUIs as underlined.") + @ConfigEditorBoolean + public boolean otherGuis = false; + + @Expose + @ConfigOption(name = "Fetch Contests", desc = "Automatically fetch Contests from elitebot.dev for the current year if they're uploaded already.") + @ConfigEditorBoolean + public boolean fetchAutomatically = true; + + @Expose + @ConfigOption(name = "Share Contests", desc = "Share the list of upcoming Contests to elitebot.dev for everyone else to then fetch automatically.") + @ConfigEditorDropdown(values = {"Ask When Needed", "Share Automatically", "Disabled"}) + public int shareAutomatically = 0; + + @Expose + @ConfigOption(name = "Warning", desc = "Show a warning shortly before a new Jacob's Contest starts.") + @ConfigEditorBoolean + public boolean warn = false; + + @Expose + @ConfigOption(name = "Warning Time", desc = "Set the warning time in seconds before a Jacob's Contest begins.") + @ConfigEditorSlider( + minValue = 10, + maxValue = 60 * 5, + minStep = 1 + ) + public int warnTime = 60 * 2; + + @Expose + @ConfigOption(name = "Popup Warning", desc = "Opens a popup when the warning time is reached and Minecraft is not in focus.") + @ConfigEditorBoolean + public boolean warnPopup = false; + + @Expose + public Position pos = new Position(-200, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/NumbersConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/NumbersConfig.java new file mode 100644 index 000000000..106af45c8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/NumbersConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class NumbersConfig { + @Expose + @ConfigOption(name = "Crop Milestone", desc = "Show the number of crop milestones in the inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean cropMilestone = true; + + @Expose + @ConfigOption(name = "Average Milestone", desc = "Show the average crop milestone in the crop milestone inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean averageCropMilestone = true; + + @Expose + @ConfigOption(name = "Crop Upgrades", desc = "Show the number of upgrades in the crop upgrades inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean cropUpgrades = true; + + @Expose + @ConfigOption(name = "Composter Upgrades", desc = "Show the number of upgrades in the Composter upgrades inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean composterUpgrades = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/PlotIconConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/PlotIconConfig.java new file mode 100644 index 000000000..cb47862a2 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/PlotIconConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.features.garden.inventory.GardenPlotIcon; +import at.hannibal2.skyhanni.utils.LorenzUtils; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PlotIconConfig { + @Expose + @ConfigOption(name = "Enable", desc = "Enable icon replacement in the Configure Plots menu.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @ConfigOption(name = "Hard Reset", desc = "Reset every slot to its original item.") + @ConfigEditorButton(buttonText = "Reset") + public Runnable hardReset = () -> { + GardenPlotIcon.INSTANCE.setHardReset(true); + LorenzUtils.INSTANCE.sendCommandToServer("desk"); + }; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/SkyMartConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/SkyMartConfig.java new file mode 100644 index 000000000..7dfd94b34 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/SkyMartConfig.java @@ -0,0 +1,23 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class SkyMartConfig { + @Expose + @ConfigOption(name = "Copper Price", desc = "Show copper to coin prices inside the SkyMart inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean copperPrice = true; + + @Expose + @ConfigOption(name = "Advanced Stats", desc = "Show the BIN price and copper price for every item.") + @ConfigEditorBoolean + public boolean copperPriceAdvancedStats = false; + + @Expose + public Position copperPricePos = new Position(211, 132, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/TooltipTweaksConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/TooltipTweaksConfig.java new file mode 100644 index 000000000..560fcaaa7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/TooltipTweaksConfig.java @@ -0,0 +1,47 @@ +package at.hannibal2.skyhanni.config.features.garden; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class TooltipTweaksConfig { + @Expose + @ConfigOption( + name = "Compact Descriptions", + desc = "Hides redundant parts of reforge descriptions, generic counter description, and Farmhand perk explanation." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean compactToolTooltips = false; + + @Expose + @ConfigOption( + name = "Breakdown Hotkey", + desc = "When the keybind is pressed, show a breakdown of all fortune sources on a tool." + ) + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_LSHIFT) + public int fortuneTooltipKeybind = Keyboard.KEY_LSHIFT; + + @Expose + @ConfigOption( + name = "Tooltip Format", + desc = "Show crop-specific Farming Fortune in tooltip.\n" + + "§fShow: §7Crop-specific Fortune indicated as §6[+196]\n" + + "§fReplace: §7Edits the total Fortune to include crop-specific Fortune." + ) + @ConfigEditorDropdown(values = {"Default", "Show", "Replace"}) + public int cropTooltipFortune = 1; + + @Expose + @ConfigOption( + name = "Total Crop Milestone", + desc = "Shows the progress bar till maxed crop milestone in the crop milestone inventory." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean cropMilestoneTotalProgress = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/YawPitchDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/YawPitchDisplayConfig.java new file mode 100644 index 000000000..dd7997fba --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/YawPitchDisplayConfig.java @@ -0,0 +1,64 @@ +package at.hannibal2.skyhanni.config.features.garden; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class YawPitchDisplayConfig { + + @Expose + @ConfigOption(name = "Enable", desc = "Displays yaw and pitch while holding a farming tool. Automatically fades out if there is no movement.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Yaw Precision", desc = "Yaw precision up to specified decimal.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 10, + minStep = 1 + ) + public int yawPrecision = 4; + + @Expose + @ConfigOption(name = "Pitch Precision", desc = "Pitch precision up to specified decimal.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 10, + minStep = 1 + ) + public int pitchPrecision = 4; + + @Expose + @ConfigOption(name = "Display Timeout", desc = "Duration in seconds for which the overlay is being displayed after moving.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 20, + minStep = 1 + ) + public int timeout = 5; + + @Expose + @ConfigOption(name = "Show Without Tool", desc = "Does not require you to hold a tool for the overlay to show.") + @ConfigEditorBoolean + public boolean showWithoutTool = false; + + @Expose + @ConfigOption(name = "Show Outside Garden", desc = "The overlay will work outside of the Garden.") + @ConfigEditorBoolean + public boolean showEverywhere = false; + + @Expose + @ConfigOption(name = "Ignore Timeout", desc = "Ignore the timeout after not moving mouse.") + @ConfigEditorBoolean + public boolean showAlways = false; + + @Expose + public Position pos = new Position(445, 225, false, true); + @Expose + public Position posOutside = new Position(445, 225, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/ComposterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/ComposterConfig.java new file mode 100644 index 000000000..700c4fc49 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/ComposterConfig.java @@ -0,0 +1,108 @@ +package at.hannibal2.skyhanni.config.features.garden.composter; + +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.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ComposterConfig { + @Expose + @ConfigOption( + name = "Composter Overlay", + desc = "Show organic matter, fuel, and profit prices while inside the Composter Inventory." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean overlay = true; + + @Expose + @ConfigOption(name = "Overlay Price", desc = "Toggle for Bazaar 'buy order' vs 'instant buy' price in composter overlay.") + @ConfigEditorDropdown(values = {"Instant Buy", "Buy Order"}) + public int overlayPriceType = 0; + + @Expose + @ConfigOption(name = "Retrieve From", desc = "Change where to retrieve the materials from in the composter overlay: The Bazaar or Sacks.") + @ConfigEditorDropdown(values = {"Bazaar", "Sacks"}) + public int retrieveFrom = 0; + + @Expose + public Position overlayOrganicMatterPos = new Position(140, 152, false, true); + + @Expose + public Position overlayFuelExtrasPos = new Position(-320, 152, false, true); + + @Expose + @ConfigOption( + name = "Display Element", + desc = "Displays the Compost data from the tab list as GUI element." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean displayEnabled = true; + + @Expose + @ConfigOption( + name = "Outside Garden", + desc = "Show Time till Composter is empty outside Garden" + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean displayOutsideGarden = false; + + @Expose + @ConfigOption( + name = "Composter Warning", + desc = "Warn when the Composter gets close to empty, even outside Garden." + ) + @ConfigEditorBoolean + public boolean warnAlmostClose = false; + + @Expose + @ConfigOption( + name = "Upgrade Price", + desc = "Show the price for the Composter Upgrade in the lore." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean upgradePrice = true; + + @Expose + @ConfigOption( + name = "Round Amount Needed", + desc = "Rounds the amount needed to fill your Composter down so that you don't overspend." + ) + @ConfigEditorBoolean + public boolean roundDown = true; + + @Expose + @ConfigOption( + name = "Highlight Upgrade", + desc = "Highlight Upgrades that can be bought right now." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightUpgrade = true; + + @Expose + @ConfigOption( + name = "Inventory Numbers", + desc = "Show the amount of Organic Matter, Fuel and Composts Available while inside the Composter Inventory." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean inventoryNumbers = true; + + @Expose + @ConfigOption(name = "Notification When Low Composter", desc = "") + @Accordion + public NotifyLowConfig notifyLow = new NotifyLowConfig(); + + @Expose + public Position displayPos = new Position(-390, 10, false, true); + + @Expose + public Position outsideGardenPos = new Position(-363, 13, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/NotifyLowConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/NotifyLowConfig.java new file mode 100644 index 000000000..a854fa6a9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/composter/NotifyLowConfig.java @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.config.features.garden.composter; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class NotifyLowConfig { + @Expose + @ConfigOption(name = "Enable", desc = "Show a notification when Organic Matter or Fuel runs low in your Composter.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Show Title", desc = "Send a title to notify.") + @ConfigEditorBoolean + public boolean title = false; + + @Expose + @ConfigOption(name = "Min Organic Matter", desc = "Warn when Organic Matter is below this value.") + @ConfigEditorSlider( + minValue = 1_000, + maxValue = 80_000, + minStep = 1 + ) + public int organicMatter = 20_000; + + @Expose + @ConfigOption(name = "Min Fuel Cap", desc = "Warn when Fuel is below this value.") + @ConfigEditorSlider( + minValue = 500, + maxValue = 40_000, + minStep = 1 + ) + public int fuel = 10_000; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/CropMilestonesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/CropMilestonesConfig.java new file mode 100644 index 000000000..053ffe900 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/CropMilestonesConfig.java @@ -0,0 +1,101 @@ +package at.hannibal2.skyhanni.config.features.garden.cropmilestones; + +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.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class CropMilestonesConfig { + @Expose + @ConfigOption( + name = "Progress Display", + desc = "Shows the progress and ETA until the next crop milestone is reached and the current crops/minute value. " + + "§eRequires a tool with either a counter or Cultivating enchantment for full accuracy." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean progress = true; + + @Expose + @ConfigOption( + name = "Warn When Close", + desc = "Warn with title and sound when the next crop milestone upgrade happens in 5 seconds. " + + "Useful for switching to a different pet for leveling.") + @ConfigEditorBoolean + public boolean warnClose = false; + + @Expose + @ConfigOption( + name = "Time Format", + desc = "Change the highest time unit to show (1h30m vs 90min)") + @ConfigEditorDropdown(values = {"Year", "Day", "Hour", "Minute", "Second"}) + public Property<Integer> highestTimeFormat = Property.of(0); + + @Expose + @ConfigOption( + name = "Maxed Milestone", + desc = "Calculate the progress and ETA till maxed milestone (46) instead of next milestone.") + @ConfigEditorBoolean + public Property<Boolean> bestShowMaxedNeeded = Property.of(false); + + @Expose + @ConfigOption( + name = "Milestone Text", + desc = "Drag text to change the appearance of the overlay.\n" + + "Hold a farming tool to show the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§6Crop Milestones", + "§7Pumpkin Tier 22", + "§e12,300§8/§e100,000", + "§7In §b12m 34s", + "§7Crops/Minute§8: §e12,345", + "§7Blocks/Second§8: §e19.85", + "§7Percentage: §e12.34%", + } + ) + public List<Integer> text = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5)); + + @Expose + @ConfigOption(name = "Block Broken Precision", desc = "The amount of decimals displayed in blocks/second.") + @ConfigEditorSlider( + minValue = 0, + maxValue = 6, + minStep = 1 + ) + public int blocksBrokenPrecision = 2; + + @Expose + @ConfigOption(name = "Seconds Before Reset", desc = "How many seconds of not farming until blocks/second resets.") + @ConfigEditorSlider( + minValue = 2, + maxValue = 60, + minStep = 1 + ) + public int blocksBrokenResetTime = 5; + + @Expose + public Position progressDisplayPos = new Position(-400, -200, false, true); + + @Expose + @ConfigOption(name = "Best Crop", desc = "") + @Accordion + public NextConfig next = new NextConfig(); + + @Expose + @ConfigOption(name = "Mushroom Pet Perk", desc = "") + @Accordion + public MushroomPetPerkConfig mushroomPetPerk = new MushroomPetPerkConfig(); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/MushroomPetPerkConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/MushroomPetPerkConfig.java new file mode 100644 index 000000000..66ef83a4c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/MushroomPetPerkConfig.java @@ -0,0 +1,43 @@ +package at.hannibal2.skyhanni.config.features.garden.cropmilestones; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +// TODO moulconfig runnable support +public class MushroomPetPerkConfig { + @Expose + @ConfigOption( + name = "Display Enabled", + desc = "Show the progress and ETA for mushroom crops when farming other crops because of the Mooshroom Cow perk.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Mushroom Text", + desc = "Drag text to change the appearance of the overlay.\n" + + "Hold a farming tool to show the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§6Mooshroom Cow Perk", + "§7Mushroom Tier 8", + "§e6,700§8/§e15,000", + "§7In §b12m 34s", + "§7Percentage: §e12.34%", + } + ) + public List<Integer> text = new ArrayList<>(Arrays.asList(0, 1, 2, 3)); + + @Expose + public Position pos = new Position(-112, -143, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/NextConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/NextConfig.java new file mode 100644 index 000000000..6dcd047a9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/cropmilestones/NextConfig.java @@ -0,0 +1,66 @@ +package at.hannibal2.skyhanni.config.features.garden.cropmilestones; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +// TODO moulconfig runnable support +public class NextConfig { + @Expose + @ConfigOption( + name = "Best Display", + desc = "Lists all crops and their ETA till next milestone. Sorts for best crop for getting garden or SkyBlock levels.") + @ConfigEditorBoolean + @FeatureToggle + public boolean bestDisplay = true; + + // TODO moulconfig runnable support + @Expose + @ConfigOption(name = "Sort Type", desc = "Sort the crops by either garden or SkyBlock EXP.") + @ConfigEditorDropdown(values = {"Garden Exp", "SkyBlock Exp"}) + public int bestType = 0; + + // TODO moulconfig runnable support + @Expose + @ConfigOption(name = "Only Show Top", desc = "Only show the top # crops.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 10, + minStep = 1 + ) + public int showOnlyBest = 10; + + @Expose + @ConfigOption(name = "Extend Top List", desc = "Add current crop to the list if its lower ranked than the set limit by extending the list.") + @ConfigEditorBoolean + public boolean showCurrent = true; + + // TODO moulconfig runnable support + @Expose + @ConfigOption( + name = "Always On", + desc = "Show the Best Display always while on the garden.") + @ConfigEditorBoolean + public boolean bestAlwaysOn = false; + + @Expose + @ConfigOption( + name = "Compact Display", + desc = "A more compact best crop time: Removing the crop name and exp, hide the # number and using a more compact time format.") + @ConfigEditorBoolean + public boolean bestCompact = false; + + @Expose + @ConfigOption( + name = "Hide Title", + desc = "Hides the 'Best Crop Time' line entirely.") + @ConfigEditorBoolean + public boolean bestHideTitle = false; + + @Expose + public Position displayPos = new Position(-200, -200, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/CustomSpeedConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/CustomSpeedConfig.java new file mode 100644 index 000000000..615883c96 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/CustomSpeedConfig.java @@ -0,0 +1,79 @@ +package at.hannibal2.skyhanni.config.features.garden.optimalspeed; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CustomSpeedConfig { + + @Expose + @ConfigOption(name = "Wheat", desc = "Suggested farm speed:\n" + + "§e5 Blocks§7: §f✦ 93 speed\n" + + "§e4 Blocks§7: §f✦ 116 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int wheat = 93; + + @Expose + @ConfigOption(name = "Carrot", desc = "Suggested farm speed:\n" + + "§e5 Blocks§7: §f✦ 93 speed\n" + + "§e4 Blocks§7: §f✦ 116 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int carrot = 93; + + @Expose + @ConfigOption(name = "Potato", desc = "Suggested farm speed:\n" + + "§e5 Blocks§7: §f✦ 93 speed\n" + + "§e4 Blocks§7: §f✦ 116 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int potato = 93; + + @Expose + @ConfigOption(name = "Nether Wart", desc = "Suggested farm speed:\n" + + "§e5 Blocks§7: §f✦ 93 speed\n" + + "§e4 Blocks§7: §f✦ 116 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int netherWart = 93; + + @Expose + @ConfigOption(name = "Pumpkin", desc = "Suggested farm speed:\n" + + "§e3 Blocks§7: §f✦ 155 speed\n" + + "§e2 Blocks§7: §f✦ 265 §7or §f400 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int pumpkin = 155; + + @Expose + @ConfigOption(name = "Melon", desc = "Suggested farm speed:\n" + + "§e3 Blocks§7: §f✦ 155 speed\n" + + "§e2 Blocks§7: §f✦ 265 or 400 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int melon = 155; + + @Expose + @ConfigOption(name = "Cocoa Beans", desc = "Suggested farm speed:\n" + + "§e3 Blocks§7: §f✦ 155 speed\n" + + "§e4 Blocks§7: §f✦ 116 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int cocoaBeans = 155; + + // TODO does other speed settings exist? + @Expose + @ConfigOption(name = "Sugar Cane", desc = "Suggested farm speed:\n" + + "§eYaw 45§7: §f✦ 328 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int sugarCane = 328; + + @Expose + @ConfigOption(name = "Cactus", desc = "Suggested farm speed:\n" + + "§eNormal§7: §f✦ 400 speed\n" + + "§eRacing Helmet§7: §f✦ 464 speed\n" + + "§eBlack Cat§7: §f✦ 464 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 500, minStep = 1) + public int cactus = 400; + + // TODO does other speed settings exist? + @Expose + @ConfigOption(name = "Mushroom", desc = "Suggested farm speed:\n" + + "§eYaw 60§7: §f✦ 233 speed") + @ConfigEditorSlider(minValue = 1, maxValue = 400, minStep = 1) + public int mushroom = 233; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/OptimalSpeedConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/OptimalSpeedConfig.java new file mode 100644 index 000000000..385d7907f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/optimalspeed/OptimalSpeedConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.garden.optimalspeed; + +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.ConfigOption; + +public class OptimalSpeedConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Show the optimal speed for your current tool in the hand.\n" + + "(Thanks MelonKingDE for the default values).") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Warning Title", desc = "Warn via title when you don't have the optimal speed.") + @ConfigEditorBoolean + public boolean warning = false; + + @Expose + @ConfigOption(name = "Rancher Boots", desc = "Allows you to set the optimal speed in the Rancher Boots overlay by clicking on the presets.") + @ConfigEditorBoolean + @FeatureToggle + public boolean signEnabled = true; + + @Expose + public Position signPosition = new Position(20, -195, false, true); + + @Expose + @ConfigOption(name = "Custom Speed", desc = "Change the exact speed for every single crop.") + @Accordion + public CustomSpeedConfig customSpeed = new CustomSpeedConfig(); + + @Expose + public Position pos = new Position(5, -200, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/DropsStatisticsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/DropsStatisticsConfig.java new file mode 100644 index 000000000..7fd332d25 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/DropsStatisticsConfig.java @@ -0,0 +1,78 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DropsStatisticsConfig { + + @Expose + @ConfigOption( + name = "Enabled", + desc = "Tallies up statistic about visitors and the rewards you have received from them." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Text Format", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§e§lVisitor Statistics", + "§e1,636 Total", + "§a1,172§f-§9382§f-§681§f-§c1", + "§21,382 Accepted", + "§c254 Denied", + " ", + "§c62,072 Copper", + "§33.2m Farming EXP", + "§647.2m Coins Spent", + "§b23 §9Flowering Bouquet", + "§b4 §9Overgrown Grass", + "§b2 §5Green Bandana", + "§b1 §9Dedication IV", + "§b6 §b◆ Music Rune I", + "§b1 §cSpace Helmet", + "§b1 §9Cultivating I", + "§b1 §9Replenish I", + " ", // If they want another empty row + "§212,600 Garden EXP", + "§b4.2k Bits", + "§220k Mithril Powder", + "§d18k Gemstone Powder", + } + ) + public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12)); + + + @Expose + @ConfigOption(name = "Display Numbers First", desc = "Determines whether the number or drop name displays first. " + + "§eNote: Will not update the preview above!") + @ConfigEditorBoolean + public boolean displayNumbersFirst = true; + + @Expose + @ConfigOption(name = "Display Icons", desc = "Replaces the drop names with icons. " + + "§eNote: Will not update the preview above!") + @ConfigEditorBoolean + public boolean displayIcons = false; + + @Expose + @ConfigOption(name = "Only on Barn Plot", desc = "Only shows the overlay while on the Barn plot.") + @ConfigEditorBoolean + public boolean onlyOnBarn = true; + + @Expose + public Position pos = new Position(5, 20, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/InventoryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/InventoryConfig.java new file mode 100644 index 000000000..5c671d4e7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/InventoryConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class InventoryConfig { + @Expose + @ConfigOption(name = "Visitor Price", desc = "Show the Bazaar price of the items required for the visitors, like in NEU.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showPrice = false; + + @Expose + @ConfigOption(name = "Amount and Time", desc = "Show the exact item amount and the remaining time when farmed manually. Especially useful for Ironman.") + @ConfigEditorBoolean + public boolean exactAmountAndTime = true; + + @Expose + @ConfigOption(name = "Copper Price", desc = "Show the price per copper inside the visitor GUI.") + @ConfigEditorBoolean + @FeatureToggle + public boolean copperPrice = true; + + @Expose + @ConfigOption(name = "Copper Time", desc = "Show the time required per copper inside the visitor GUI.") + @ConfigEditorBoolean + @FeatureToggle + public boolean copperTime = false; + + @Expose + @ConfigOption(name = "Garden Exp Price", desc = "Show the price per garden experience inside the visitor GUI.") + @ConfigEditorBoolean + @FeatureToggle + public boolean experiencePrice = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/NeedsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/NeedsConfig.java new file mode 100644 index 000000000..b60b6207f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/NeedsConfig.java @@ -0,0 +1,40 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class NeedsConfig { + @Expose + @ConfigOption(name = "Items Needed", desc = "Show all items needed for the visitors.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = true; + + @Expose + public Position pos = new Position(180, 170, false, true); + + @Expose + @ConfigOption(name = "Only when Close", desc = "Only show the needed items when close to the visitors.") + @ConfigEditorBoolean + public boolean onlyWhenClose = false; + + @Expose + @ConfigOption(name = "Bazaar Alley", desc = "Show the Visitor Items List while inside the Bazaar Alley in the Hub. " + + "This helps buying the correct amount when not having a Booster Cookie Buff active.") + @ConfigEditorBoolean + public boolean inBazaarAlley = true; + + @Expose + @ConfigOption(name = "Show Price", desc = "Show the coin price in the items needed list.") + @ConfigEditorBoolean + public boolean showPrice = true; + + @Expose + @ConfigOption(name = "Item Preview", desc = "Show the base type for the required items next to new visitors. §cNote that some visitors may require any crop.") + @ConfigEditorBoolean + @FeatureToggle + public boolean itemPreview = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/RewardWarningConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/RewardWarningConfig.java new file mode 100644 index 000000000..f83fc5518 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/RewardWarningConfig.java @@ -0,0 +1,62 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class RewardWarningConfig { + + @Expose + @ConfigOption(name = "Notify in Chat", desc = "Send a chat message once you talk to a visitor with reward.") + @ConfigEditorBoolean + @FeatureToggle + public boolean notifyInChat = true; + + @Expose + @ConfigOption(name = "Show over Name", desc = "Show the reward name above the visitor name.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showOverName = true; + + @Expose + @ConfigOption(name = "Prevent Refusing", desc = "Prevent the refusal of a visitor with reward.") + @ConfigEditorBoolean + @FeatureToggle + public boolean preventRefusing = true; + + @Expose + @ConfigOption(name = "Bypass Key", desc = "Hold that key to bypass the Prevent Refusing feature.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int bypassKey = Keyboard.KEY_NONE; + + + /** + * Sync up with {at.hannibal2.skyhanni.features.garden.visitor.VisitorReward} + */ + @Expose + @ConfigOption( + name = "Items", + desc = "Warn for these reward items." + ) + @ConfigEditorDraggableList( + exampleText = { + "§9Flowering Bouquet", + "§9Overgrown Grass", + "§9Green Bandana", + "§9Dedication IV", + "§9Music Rune", + "§cSpace Helmet", + "§9Cultivating I", + "§9Replenish I", + } + ) + public List<Integer> drops = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6)); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/TimerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/TimerConfig.java new file mode 100644 index 000000000..d85f7d048 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/TimerConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TimerConfig { + @Expose + @ConfigOption(name = "Visitor Timer", desc = "Timer when the next visitor will appear, " + + "and a number for how many visitors are already waiting.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Sixth Visitor Estimate", desc = "Estimate when the sixth visitor in the queue will arrive. " + + "May be inaccurate with co-op members farming simultaneously.") + @ConfigEditorBoolean + public boolean sixthVisitorEnabled = true; + + @Expose + @ConfigOption(name = "Sixth Visitor Warning", desc = "Notifies when it is believed that the sixth visitor has arrived. " + + "May be inaccurate with co-op members farming simultaneously.") + @ConfigEditorBoolean + public boolean sixthVisitorWarning = true; + + @Expose + @ConfigOption(name = "New Visitor Ping", desc = "Pings you when you are less than 10 seconds away from getting a new visitor. " + + "§eUseful for getting Ephemeral Gratitudes during the 2023 Halloween event.") + @ConfigEditorBoolean + public boolean newVisitorPing = false; + + @Expose + public Position pos = new Position(390, 65, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/VisitorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/VisitorConfig.java new file mode 100644 index 000000000..d010b11d3 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/garden/visitor/VisitorConfig.java @@ -0,0 +1,118 @@ +package at.hannibal2.skyhanni.config.features.garden.visitor; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class VisitorConfig { + @Expose + @ConfigOption(name = "Visitor Timer", desc = "") + @Accordion + public TimerConfig timer = new TimerConfig(); + + @Expose + @ConfigOption(name = "Visitor Items Needed", desc = "") + @Accordion + public NeedsConfig needs = new NeedsConfig(); + + @Expose + @ConfigOption(name = "Visitor Inventory", desc = "") + @Accordion + public InventoryConfig inventory = new InventoryConfig(); + + @Expose + @ConfigOption(name = "Visitor Reward Warning", desc = "") + @Accordion + public RewardWarningConfig rewardWarning = new RewardWarningConfig(); + + @Expose + @ConfigOption(name = "Notification Chat", desc = "Show in chat when a new visitor is visiting your island.") + @ConfigEditorBoolean + @FeatureToggle + public boolean notificationChat = true; + + @Expose + @ConfigOption(name = "Notification Title", desc = "Show a title when a new visitor is visiting your island.") + @ConfigEditorBoolean + @FeatureToggle + public boolean notificationTitle = true; + + @Expose + @ConfigOption(name = "Highlight Status", desc = "Highlight the status for visitors with a text above or with color.") + @ConfigEditorDropdown(values = {"Color Only", "Name Only", "Both", "Disabled"}) + public int highlightStatus = 2; + + @Expose + @ConfigOption(name = "Colored Name", desc = "Show the visitor name in the color of the rarity.") + @ConfigEditorBoolean + @FeatureToggle + public boolean coloredName = true; + + @Expose + @ConfigOption(name = "Hypixel Message", desc = "Hide the chat message from Hypixel that a new visitor has arrived at your garden.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hypixelArrivedMessage = true; + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide chat messages from the visitors in garden. (Except Beth and Spaceman)") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideChat = true; + + @Expose + @ConfigOption(name = "Visitor Drops Statistics Counter", desc = "") + @Accordion + public DropsStatisticsConfig dropsStatistics = new DropsStatisticsConfig(); + + @Expose + @ConfigOption( + name = "Accept Hotkey", + desc = "Accept a visitor when you press this keybind while in the visitor GUI. " + + "§eUseful for getting Ephemeral Gratitudes during the 2023 Halloween event." + ) + @ConfigEditorKeybind( + defaultKey = Keyboard.KEY_NONE + ) + public int acceptHotkey = Keyboard.KEY_NONE; + + + @Expose + @ConfigOption( + name = "Highlight Visitors in SkyBlock", + desc = "Highlights Visitors outside of the Garden" + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightVisitors = false; + + + @Expose + @ConfigOption( + name = "Block Interacting with Visitors", + desc = "Blocks you from interacting with / unlocking Visitors to allow for Dedication Cycling" + ) + @ConfigEditorDropdown + public VisitorBlockBehaviour blockInteracting = VisitorBlockBehaviour.ONLY_ON_BINGO; + + public enum VisitorBlockBehaviour { + DONT("Don't"), ALWAYS("Always"), ONLY_ON_BINGO("Only on Bingo"); + + final String str; + + VisitorBlockBehaviour(String str) { + this.str = str; + } + + @Override + public String toString() { + return str; + } + } + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/gui/GUIConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/gui/GUIConfig.java new file mode 100644 index 000000000..9e1816107 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/gui/GUIConfig.java @@ -0,0 +1,74 @@ +package at.hannibal2.skyhanni.config.features.gui; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.data.GuiEditManager; +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.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class GUIConfig { + + @ConfigOption(name = "Edit GUI Locations", desc = "Change the position of SkyHanni's overlays.") + @ConfigEditorButton(buttonText = "Edit") + public Runnable positions = GuiEditManager::openGuiPositionEditor; + + @Expose + @ConfigOption(name = "Open Hotkey", desc = "Press this key to open the GUI Editor.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int keyBindOpen = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Global GUI Scale", desc = "Globally scale all SkyHanni GUIs.") + @ConfigEditorSlider(minValue = 0.1F, maxValue = 10, minStep = 0.05F) + public float globalScale = 1F; + + @Expose + @ConfigOption(name = "Modify Visual Words", desc = "") + @Accordion + public ModifyWordsConfig modifyWords = new ModifyWordsConfig(); + + @Expose + @ConfigOption(name = "Custom Text Box", desc = "") + @Accordion + public TextBoxConfig customTextBox = new TextBoxConfig(); + + @Expose + @ConfigOption(name = "Real Time", desc = "Display the current computer time, a handy feature when playing in full-screen mode.") + @ConfigEditorBoolean + @FeatureToggle + public boolean realTime = false; + + @Expose + @ConfigOption(name = "Real Time 12h Format", desc = "Display the current computer time in 12hr Format rather than 24h Format.") + @ConfigEditorBoolean + public boolean realTimeFormatToggle = false; + + @Expose + public Position realTimePosition = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "In-Game Date", desc = "") + @Accordion + public InGameDateConfig inGameDate = new InGameDateConfig(); + + @Expose + @ConfigOption(name = "TPS Display", desc = "Show the TPS of the current server, like in Soopy.") + @ConfigEditorBoolean + @FeatureToggle + public boolean tpsDisplay = false; + + @Expose + public Position tpsDisplayPosition = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Config Button", desc = "Add a button to the pause menu to configure SkyHanni.") + @ConfigEditorBoolean + @FeatureToggle + public boolean configButtonOnPause = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/gui/InGameDateConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/gui/InGameDateConfig.java new file mode 100644 index 000000000..5985e5131 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/gui/InGameDateConfig.java @@ -0,0 +1,63 @@ +package at.hannibal2.skyhanni.config.features.gui; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class InGameDateConfig { + + @Expose + @ConfigOption( + name = "Enabled", + desc = "Show the in-game date of SkyBlock (like in Apec, §ebut with mild delays§7).\n" + + "(Though this one includes the SkyBlock year!)" + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + public Position position = new Position(10, 10, false, true); + + @Expose + @ConfigOption( + name = "Use Scoreboard for Date", + desc = "Uses the scoreboard instead to find the current month, date, and time. Greater \"accuracy\", depending on who's asking." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean useScoreboard = true; + + @Expose + @ConfigOption( + name = "Show Sun/Moon", + desc = "Show the sun or moon symbol seen on the scoreboard." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean includeSunMoon = true; + + @Expose + @ConfigOption( + name = "Show Date Ordinal", + desc = "Show the date's ordinal suffix. Ex: (1st <-> 1, 22nd <-> 22, 23rd <-> 3, 24th <-> 24, etc.)" + ) + @ConfigEditorBoolean + public boolean includeOrdinal = false; + + @Expose + @ConfigOption( + name = "Refresh Rate", + desc = "Change the time in seconds you would like to refresh the In-Game Date Display." + + "\n§eNOTE: If \"Use Scoreboard for Date\" is enabled, this setting is ignored." + ) + @ConfigEditorSlider( + minValue = 1, + maxValue = 60, + minStep = 1 + ) + public int refreshSeconds = 30; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/gui/ModifyWordsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/gui/ModifyWordsConfig.java new file mode 100644 index 000000000..498dba83d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/gui/ModifyWordsConfig.java @@ -0,0 +1,28 @@ +package at.hannibal2.skyhanni.config.features.gui; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.commands.Commands; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorButton; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ModifyWordsConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enables replacing all instances of a word or phrase with another word or phrase.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Work Outside SkyBlock", desc = "Allows modifying visual words anywhere on Hypixel.") + @ConfigEditorBoolean + @FeatureToggle + public boolean workOutside = false; + + @ConfigOption(name = "Open Config", desc = "Opens the menu to setup the visual words.\n§eCommand: /shwords") + @ConfigEditorButton(buttonText = "Open") + public Runnable open = Commands::openVisualWords; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/gui/TextBoxConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/gui/TextBoxConfig.java new file mode 100644 index 000000000..134732465 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/gui/TextBoxConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.gui; + +import at.hannibal2.skyhanni.config.core.config.Position; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class TextBoxConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enables showing the textbox while in SkyBlock.") + @ConfigEditorBoolean + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Text", desc = "Enter text you want to display here.\n" + + "§eUse '&' as the colour code character.\n" + + "§eUse '\\n' as the line break character.") + @ConfigEditorText + public Property<String> text = Property.of("&aYour Text Here\\n&bYour new line here"); + + @Expose + public Position position = new Position(10, 80, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/ChestValueConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/ChestValueConfig.java new file mode 100644 index 000000000..62eb30385 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/ChestValueConfig.java @@ -0,0 +1,88 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +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.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.ConfigOption; + +public class ChestValueConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Enable estimated value of chest.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Enabled in dungeons", desc = "Enable the feature in dungeons.") + @ConfigEditorBoolean + public boolean enableInDungeons = false; + + @Expose + @ConfigOption(name = "Enable during Item Value", desc = "Show this display even if the Estimated Item Value is visible.") + @ConfigEditorBoolean + public boolean showDuringEstimatedItemValue = false; + + @Expose + @ConfigOption(name = "Show Stacks", desc = "Show the item icon before name.") + @ConfigEditorBoolean + public boolean showStacks = true; + + @Expose + @ConfigOption(name = "Display Type", desc = "Try to align everything to look nicer.") + @ConfigEditorBoolean + public boolean alignedDisplay = true; + + @Expose + @ConfigOption(name = "Name Length", desc = "Reduce item name length to gain extra space on screen.\n§cCalculated in pixels!") + @ConfigEditorSlider(minStep = 1, minValue = 100, maxValue = 150) + public int nameLength = 100; + + @Expose + @ConfigOption(name = "Highlight Slot", desc = "Highlight slot where the item is when you hover over it in the display.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enableHighlight = true; + + @Expose + @ConfigOption(name = "Highlight Color", desc = "Choose the highlight color.") + @ConfigEditorColour + public String highlightColor = "0:249:0:255:88"; + + @Expose + @ConfigOption(name = "Sorting Type", desc = "Price sorting type.") + @ConfigEditorDropdown(values = {"Descending", "Ascending"}) + public int sortingType = 0; + + @Expose + @ConfigOption(name = "Value formatting Type", desc = "Format of the price.") + @ConfigEditorDropdown(values = {"Short", "Long"}) + public int formatType = 0; + + @Expose + @ConfigOption(name = "Item To Show", desc = "Choose how many items are displayed.\n" + + "All items in the chest are still counted for the total value.") + @ConfigEditorSlider( + minValue = 0, + maxValue = 54, + minStep = 1 + ) + public int itemToShow = 15; + + @Expose + @ConfigOption(name = "Hide below", desc = "Item item value below configured amount.\n" + + "Items are still counted for the total value.") + @ConfigEditorSlider( + minValue = 50_000, + maxValue = 10_000_000, + minStep = 50_000 + ) + public int hideBelow = 100_000; + + + @Expose + public Position position = new Position(107, 141, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/HideNotClickableConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/HideNotClickableConfig.java new file mode 100644 index 000000000..9c0c01602 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/HideNotClickableConfig.java @@ -0,0 +1,43 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class HideNotClickableConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Hide items that are not clickable in the current inventory: ah, bz, accessory bag, etc.") + @ConfigEditorBoolean + @FeatureToggle + public boolean items = false; + + @Expose + @ConfigOption(name = "Block Clicks", desc = "Block the clicks on these items.") + @ConfigEditorBoolean + public boolean itemsBlockClicks = true; + + @Expose + @ConfigOption( + name = "Opacity", + desc = "How strong should the items be grayed out?" + ) + @ConfigEditorSlider( + minValue = 0, + maxValue = 255, + minStep = 5 + ) + public int opacity = 180; + + @Expose + @ConfigOption(name = "Bypass With Control", desc = "Adds the ability to bypass not clickable items when holding the control key.") + @ConfigEditorBoolean + public boolean itemsBypass = true; + + @Expose + @ConfigOption(name = "Green Line", desc = "Adds green line around items that are clickable.") + @ConfigEditorBoolean + public boolean itemsGreenLine = true; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/InventoryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/InventoryConfig.java new file mode 100644 index 000000000..1794a20d0 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/InventoryConfig.java @@ -0,0 +1,127 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.features.inventory.helper.HelperConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class InventoryConfig { + + @Expose + @ConfigOption(name = "Not Clickable Items", desc = "") + @Accordion + public HideNotClickableConfig hideNotClickable = new HideNotClickableConfig(); + + @Expose + @ConfigOption(name = "RNG Meter", desc = "") + @Accordion + public RngMeterConfig rngMeter = new RngMeterConfig(); + + @Expose + @ConfigOption(name = "Stats Tuning", desc = "") + @Accordion + public StatsTuningConfig statsTuning = new StatsTuningConfig(); + + @Expose + @ConfigOption(name = "Jacob Farming Contest", desc = "") + @Accordion + public JacobFarmingContestConfig jacobFarmingContests = new JacobFarmingContestConfig(); + + + @Expose + @ConfigOption(name = "Sack Items Display", desc = "") + @Accordion + public SackDisplayConfig sackDisplay = new SackDisplayConfig(); + + @Expose + @ConfigOption(name = "Chest Value", desc = "") + @Accordion + public ChestValueConfig chestValueConfig = new ChestValueConfig(); + + @Expose + @Category(name = "Helpers", desc = "Settings for Helpers") + public HelperConfig helper = new HelperConfig(); + + @Expose + @ConfigOption( + name = "Item Number", + desc = "Showing the item number as a stack size for these items." + ) + @ConfigEditorDraggableList( + exampleText = { + "§bMaster Star Tier", + "§bMaster Skull Tier", + "§bDungeon Head Floor Number", + "§bNew Year Cake", + "§bPet Level", + "§bMinion Tier", + "§bCrimson Armor", + "§7(Removed)", + "§bKuudra Key", + "§bSkill Level", + "§bCollection Level", + "§bRancher's Boots speed", + "§bLarva Hook", + "§bDungeon Potion Level" + } + ) + public List<Integer> itemNumberAsStackSize = new ArrayList<>(Arrays.asList(3, 9, 11, 12)); + + @Expose + @ConfigOption( + name = "Quick Craft Confirmation", + desc = "Require Ctrl+Click to craft items that aren't often quick crafted " + + "(e.g. armor, weapons, accessories). Sack items can be crafted normally." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean quickCraftingConfirmation = false; + + @Expose + @ConfigOption(name = "Sack Name", desc = "Show an abbreviation of the sack name.") + @ConfigEditorBoolean + @FeatureToggle + public boolean displaySackName = false; + + @Expose + @ConfigOption(name = "Anvil Combine Helper", desc = "Suggests the same item in the inventory when trying to combine two items in the anvil.") + @ConfigEditorBoolean + @FeatureToggle + public boolean anvilCombineHelper = false; + + @Expose + @ConfigOption(name = "Item Stars", + desc = "Show a compact star count in the item name for all items.") + @ConfigEditorBoolean + @FeatureToggle + public boolean itemStars = false; + + @Expose + @ConfigOption(name = "Missing Tasks", + desc = "Highlight missing tasks in the SkyBlock Level Guide inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightMissingSkyBlockLevelGuide = true; + + @Expose + @ConfigOption(name = "Highlight Auctions", + desc = "Highlight own items that are sold in green and that are expired in red.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightAuctions = true; + + @Expose + @ConfigOption(name = "Shift Click Equipment", desc = "Makes normal clicks to shift clicks in equipment inventory") + @ConfigEditorBoolean + @FeatureToggle + public boolean shiftClickForEquipment = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/JacobFarmingContestConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/JacobFarmingContestConfig.java new file mode 100644 index 000000000..dc18bd29d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/JacobFarmingContestConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class JacobFarmingContestConfig { + @Expose + @ConfigOption(name = "Unclaimed Rewards", desc = "Highlight contests with unclaimed rewards in the Jacob inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightRewards = true; + + @Expose + @ConfigOption(name = "Contest Time", desc = "Adds the real time format to the Contest description.") + @ConfigEditorBoolean + @FeatureToggle + public boolean realTime = true; + + @Expose + @ConfigOption(name = "Medal Icon", desc = "Adds a symbol that shows what medal you received in this Contest. " + + "§eIf you use a texture pack this may cause conflicting icons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean medalIcon = true; + + @Expose + @ConfigOption(name = "Finnegan Icon", desc = "Uses a different indicator for when the Contest happened during Mayor Finnegan.") + @ConfigEditorBoolean + public boolean finneganIcon = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/RngMeterConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/RngMeterConfig.java new file mode 100644 index 000000000..e57e95b5c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/RngMeterConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class RngMeterConfig { + @Expose + @ConfigOption(name = "Floor Names", desc = "Show the Floor names in the Catacombs RNG Meter inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean floorName = false; + + @Expose + @ConfigOption(name = "No Drop", desc = "Highlight floors without a drop selected in the Catacombs RNG Meter inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean noDrop = false; + + @Expose + @ConfigOption(name = "Selected Drop", desc = "Highlight the selected drop in the Catacombs or Slayer RNG Meter inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean selectedDrop = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/SackDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/SackDisplayConfig.java new file mode 100644 index 000000000..37eab2be3 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/SackDisplayConfig.java @@ -0,0 +1,84 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class SackDisplayConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show contained items inside a sack inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Highlight Full", + desc = "Highlight items that are full in red.\n" + + "§eDoes not need the option above to be enabled." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightFull = true; + + @Expose + @ConfigOption(name = "Number Format", desc = "Either show Default, Formatted or Unformatted numbers.\n" + + "§eDefault: §72,240/2.2k\n" + + "§eFormatted: §72.2k/2.2k\n" + + "§eUnformatted: §72,240/2,200") + @ConfigEditorDropdown(values = {"Default", "Formatted", "Unformatted"}) + public int numberFormat = 1; + + @Expose + @ConfigOption(name = "Extra space", desc = "Space between each line of text.") + @ConfigEditorSlider( + minValue = 0, + maxValue = 10, + minStep = 1) + public int extraSpace = 1; + + @Expose + @ConfigOption(name = "Sorting Type", desc = "Sorting type of items in sack.") + @ConfigEditorDropdown(values = {"Descending (Stored)", "Ascending (Stored)", "Descending (Price)", "Ascending (Price)"}) + public int sortingType = 0; + + @Expose + @ConfigOption(name = "Item To Show", desc = "Choose how many items are displayed. (Some sacks have too many items to fit\n" + + "in larger GUI scales, like the nether sack.)") + @ConfigEditorSlider( + minValue = 0, + maxValue = 45, + minStep = 1 + ) + public int itemToShow = 15; + + @Expose + @ConfigOption(name = "Show Empty Item", desc = "Show empty item quantity in the display.") + @ConfigEditorBoolean + public boolean showEmpty = true; + + @Expose + @ConfigOption(name = "Show Price", desc = "Show price for each item in sack.") + @ConfigEditorBoolean + public boolean showPrice = true; + + @Expose + @ConfigOption(name = "Price Format", desc = "Format of the price displayed.\n" + + "§eFormatted: §7(12k)\n" + + "§eUnformatted: §7(12,421)") + @ConfigEditorDropdown(values = {"Formatted", "Unformatted"}) + public int priceFormat = 0; + + @Expose + @ConfigOption(name = "Show Price From", desc = "Show price from Bazaar or NPC.") + @ConfigEditorDropdown(values = {"Bazaar", "NPC"}) + public int priceFrom = 0; + + @Expose + public Position position = new Position(144, 139, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/StatsTuningConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/StatsTuningConfig.java new file mode 100644 index 000000000..2f6111fee --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/StatsTuningConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.inventory; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class StatsTuningConfig { + @Expose + @ConfigOption(name = "Selected Stats", desc = "Show the tuning stats in the Thaumaturgy inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean selectedStats = true; + + @Expose + @ConfigOption(name = "Tuning Points", desc = "Show the amount of selected Tuning Points in the Stats Tuning inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean points = true; + + @Expose + @ConfigOption(name = "Selected Template", desc = "Highlight the selected template in the Stats Tuning inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean selectedTemplate = true; + + @Expose + @ConfigOption(name = "Template Stats", desc = "Show the type of stats for the Tuning Point templates.") + @ConfigEditorBoolean + @FeatureToggle + public boolean templateStats = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HarpConfigKeyBinds.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HarpConfigKeyBinds.java new file mode 100644 index 000000000..fcdac1d57 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HarpConfigKeyBinds.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.inventory.helper; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +public class HarpConfigKeyBinds { + @Expose + @ConfigOption(name = "Key 1", desc = "Key for the first Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_1) + public int key1 = Keyboard.KEY_1; + @Expose + @ConfigOption(name = "Key 2", desc = "Key for the second Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_2) + public int key2 = Keyboard.KEY_2; + @Expose + @ConfigOption(name = "Key 3", desc = "Key for the third Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_3) + public int key3 = Keyboard.KEY_3; + @Expose + @ConfigOption(name = "Key 4", desc = "Key for the fourth Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_4) + public int key4 = Keyboard.KEY_4; + @Expose + @ConfigOption(name = "Key 5", desc = "Key for the fifth Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_5) + public int key5 = Keyboard.KEY_5; + @Expose + @ConfigOption(name = "Key 6", desc = "Key for the sixth Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_6) + public int key6 = Keyboard.KEY_6; + @Expose + @ConfigOption(name = "Key 7", desc = "Key for the seventh Node") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_7) + public int key7 = Keyboard.KEY_7; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HelperConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HelperConfig.java new file mode 100644 index 000000000..02c06f39a --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/HelperConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.inventory.helper; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class HelperConfig { + @Expose + @ConfigOption(name = "Melody's Hair Harp", desc = "") + @Accordion + public HarpConfig harp = new HarpConfig(); + + public static class HarpConfig { + @Expose + @ConfigOption(name = "Use Keybinds", desc = "In the Harp, press buttons with your number row on the keyboard instead of clicking.") + @ConfigEditorBoolean + @FeatureToggle + public boolean keybinds = false; + + @Expose + @ConfigOption(name = "Show Numbers", desc = "In the Harp, show buttons as stack size (intended to be used with the Keybinds).") + @ConfigEditorBoolean + public boolean showNumbers = false; + + @Expose + @ConfigOption(name = "Keybinds", desc = "") + @Accordion + public HarpConfigKeyBinds harpKeybinds = new HarpConfigKeyBinds(); + } + + @Expose + @ConfigOption(name = "Tia Relay Abiphone Network Maintenance", desc = "") + @Accordion + public TiaRelayConfig tiaRelay = new TiaRelayConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/TiaRelayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/TiaRelayConfig.java new file mode 100644 index 000000000..78480b4df --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/inventory/helper/TiaRelayConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.inventory.helper; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TiaRelayConfig { + + @Expose + @ConfigOption(name = "Sound Puzzle Helper", desc = "Helps with solving the sound puzzle for Tia (The 9 Operator Chips to do maintainance for the Abiphone Network).") + @ConfigEditorBoolean + @FeatureToggle + public boolean soundHelper = true; + + @Expose + @ConfigOption(name = "Next Waypoint", desc = "Show the next relay waypoint for Tia the Fairy, where maintenance for the Abiphone network needs to be done.") + @ConfigEditorBoolean + @FeatureToggle + public boolean nextWaypoint = true; + + @Expose + @ConfigOption(name = "All Waypoints", desc = "Show all relay waypoints at once (intended for debugging).") + @ConfigEditorBoolean + public boolean allWaypoints = false; + + @Expose + @ConfigOption(name = "Mute Sound", desc = "Mutes the sound when close to the relay.") + @ConfigEditorBoolean + @FeatureToggle + public boolean tiaRelayMute = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ChickenHeadConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ChickenHeadConfig.java new file mode 100644 index 000000000..49c803cd5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ChickenHeadConfig.java @@ -0,0 +1,25 @@ +package at.hannibal2.skyhanni.config.features.itemability; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ChickenHeadConfig { + + @Expose + @ConfigOption(name = "Checken Head Timer", desc = "Show the cooldown until the next time you can lay an egg with the Chicken Head.") + @ConfigEditorBoolean + @FeatureToggle + public boolean displayTimer = false; + + @Expose + public Position position = new Position(-372, 73, false, true); + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide the 'You laid an egg!' chat message.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideChat = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/itemability/FireVeilWandConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/FireVeilWandConfig.java new file mode 100644 index 000000000..a05558d94 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/FireVeilWandConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.itemability; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FireVeilWandConfig { + @Expose + @ConfigOption(name = "Fire Veil Design", desc = "Changes the flame particles of the Fire Veil Wand ability.") + @ConfigEditorDropdown(values = {"Particles", "Line", "Off"}) + public int display = 0; + + @Expose + @ConfigOption( + name = "Line Color", + desc = "Changes the color of the Fire Veil Wand line." + ) + @ConfigEditorColour + public String displayColor = "0:245:255:85:85"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ItemAbilityConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ItemAbilityConfig.java new file mode 100644 index 000000000..a53075016 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/itemability/ItemAbilityConfig.java @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.config.features.itemability; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class ItemAbilityConfig { + + @Expose + @ConfigOption(name = "Ability Cooldown", desc = "Show the cooldown of item abilities.") + @ConfigEditorBoolean + @FeatureToggle + public boolean itemAbilityCooldown = false; + + @Expose + @ConfigOption(name = "Ability Cooldown Background", desc = "Show the cooldown color of item abilities in the background.") + @ConfigEditorBoolean + public boolean itemAbilityCooldownBackground = false; + + @Expose + @ConfigOption(name = "Fire Veil", desc = "") + @Accordion + public FireVeilWandConfig fireVeilWands = new FireVeilWandConfig(); + + @ConfigOption(name = "Chicken Head", desc = "") + @Accordion + @Expose + public ChickenHeadConfig chickenHead = new ChickenHeadConfig(); + + @Expose + @ConfigOption(name = "Depleted Bonzo's Masks", + desc = "Highlights used Bonzo's Masks and Spirit Masks with a background.") + @ConfigEditorBoolean + @FeatureToggle + public boolean depletedBonzosMasks = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/MarkedPlayerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/markedplayer/MarkedPlayerConfig.java index e199f7c55..431e5f29c 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/MarkedPlayerConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/markedplayer/MarkedPlayerConfig.java @@ -1,4 +1,4 @@ -package at.hannibal2.skyhanni.config.features; +package at.hannibal2.skyhanni.config.features.markedplayer; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/mining/KingTalismanConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/mining/KingTalismanConfig.java new file mode 100644 index 000000000..e98ae5740 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/mining/KingTalismanConfig.java @@ -0,0 +1,25 @@ +package at.hannibal2.skyhanni.config.features.mining; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class KingTalismanConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show kings you have not talked to yet, and when the next missing king will appear.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Outside Mines", desc = "Show the display even while outside the Dwarven Mines.") + @ConfigEditorBoolean + @FeatureToggle + public boolean outsideMines = false; + + @Expose + public Position position = new Position(-400, 220, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/mining/MiningConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/mining/MiningConfig.java new file mode 100644 index 000000000..feeb465ab --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/mining/MiningConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.mining; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class MiningConfig { + + @Expose + @ConfigOption(name = "Powder Tracker", desc = "") + @Accordion + public PowderTrackerConfig powderTracker = new PowderTrackerConfig(); + + @Expose + @ConfigOption(name = "King Talisman", desc = "") + @Accordion + public KingTalismanConfig kingTalisman = new KingTalismanConfig(); + + @Expose + @ConfigOption(name = "Highlight Commission Mobs", desc = "Highlight Mobs that are part of active commissions.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightCommissionMobs = false; + + @Expose + @ConfigOption(name = "Names in Core", desc = "Show the names of the 4 areas while in the center of the Crystal Hollows.") + @ConfigEditorBoolean + @FeatureToggle + public boolean crystalHollowsNamesInCore = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java new file mode 100644 index 000000000..50bff2a9b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java @@ -0,0 +1,84 @@ +package at.hannibal2.skyhanni.config.features.mining; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PowderTrackerConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Enable the Powder Tracker overlay for mining.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Only when Grinding", desc = "Only show the overlay when powder grinding.") + @ConfigEditorBoolean + public boolean onlyWhenPowderGrinding = false; + + @Expose + @ConfigOption(name = "Great Explorer", desc = "Enable this if your Great Explorer perk is maxed.") + @ConfigEditorBoolean + public boolean greatExplorerMaxed = false; + + @Expose + @ConfigOption( + name = "Text Format", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§b§lPowder Tracker", + "§7Display Mode: §a[Total] §e[This Session]", + "§d852 Total chests Picked §7(950/h)", + "§bx2 Powder: §aActive!", + "§b250,420 §aMithril Powder §7(350,000/h)", + "§b250,420 §dGemstone Powder §7(350,000/h)", + "", + "§b129 §bDiamond Essence §7(600/h)", + "§b234 §6Gold Essence §7(700/h)", + "", + "§50§7-§90§7-§a0§f-0 §cRuby Gemstone", + "§50§7-§90§7-§a0§f-0 §bSapphire Gemstone", + "§50§7-§90§7-§a0§f-0 §6Amber Gemstone", + "§50§7-§90§7-§a0§f-0 §5Amethyst Gemstone", + "§50§7-§90§7-§a0§f-0 §aJade Gemstone", + "§50§7-§90§7-§a0§f-0 §eTopaz Gemstone", + + "§b14 §9FTX 3070", + "§b14 §9Electron Transmitter", + "§b14 §9Robotron Reflector", + "§b14 §9Superlite Motor", + "§b14 §9Control Switch", + "§b14 §9Synthetic Heart", + "§b14 §9Total Robot Parts", + + "§90§7-§a0§7-§c0§f-§e0§f-§30 §fGoblin Egg", + + "§b12 §aWishing Compass", + + "§b320 §aSludge Juice", + "§b2 §9Ascension Rope", + "§b6 §5Treasurite", + "§b4 §6Jungle Heart", + "§b1 §5Pickonimbus 2000", + "§b14 §aYoggie", + "§b9 §fPrehistoric Egg", + "§b25 §aOil Barrel" + } + ) + public Property<List<Integer>> textFormat = Property.of(new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18))); + + @Expose + public Position position = new Position(-274, 0, false, true); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/minion/EmptiedTimeConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/minion/EmptiedTimeConfig.java new file mode 100644 index 000000000..53f324e00 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/minion/EmptiedTimeConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.minion; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class EmptiedTimeConfig { + @Expose + @ConfigOption(name = "Emptied Time Display", desc = "Show the time when the hopper in the minion was last emptied.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = false; + + @Expose + @ConfigOption( + name = "Distance", + desc = "Maximum distance to display minion data." + ) + @ConfigEditorSlider( + minValue = 3, + maxValue = 30, + minStep = 1 + ) + public int distance = 10; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/minion/LastClickedMinionConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/minion/LastClickedMinionConfig.java new file mode 100644 index 000000000..391a10468 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/minion/LastClickedMinionConfig.java @@ -0,0 +1,36 @@ +package at.hannibal2.skyhanni.config.features.minion; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class LastClickedMinionConfig { + @Expose + @ConfigOption(name = "Last Minion Display", desc = "Marks the location of the last clicked minion, even through walls.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = false; + + @Expose + @ConfigOption( + name = "Last Minion Color", + desc = "The color in which the last minion should be displayed." + ) + @ConfigEditorColour + public String color = "0:245:85:255:85"; + + @Expose + @ConfigOption( + name = "Last Minion Time", + desc = "Time in seconds how long the last minion should be displayed." + ) + @ConfigEditorSlider( + minValue = 3, + maxValue = 120, + minStep = 1 + ) + public int time = 20; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/minion/MinionsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/minion/MinionsConfig.java new file mode 100644 index 000000000..d54e3d464 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/minion/MinionsConfig.java @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.config.features.minion; + +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.ConfigOption; + +public class MinionsConfig { + + @Expose + @ConfigOption(name = "Name Display", desc = "Show the minion name and tier over the minion.") + @ConfigEditorBoolean + @FeatureToggle + public boolean nameDisplay = true; + + @Expose + @ConfigOption(name = "Only Tier", desc = "Show only the tier number over the minion. (Useful for Bingo)") + @ConfigEditorBoolean + public boolean nameOnlyTier = false; + + @Expose + @ConfigOption(name = "Last Clicked", desc = "") + @Accordion + public LastClickedMinionConfig lastClickedMinion = new LastClickedMinionConfig(); + + @Expose + @ConfigOption(name = "Emptied Time", desc = "") + @Accordion + public EmptiedTimeConfig emptiedTime = new EmptiedTimeConfig(); + + @Expose + @ConfigOption(name = "Hopper Profit Display", desc = "Use the hopper's held coins and the last empty time to calculate the coins per day.") + @ConfigEditorBoolean + public boolean hopperProfitDisplay = true; + + @Expose + public Position hopperProfitPos = new Position(360, 90, false, true); + + @Expose + @ConfigOption(name = "Hide Mob Nametag", desc = "Hiding the nametag of mobs close to minions.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideMobsNametagNearby = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/DiscordRPCConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/DiscordRPCConfig.java new file mode 100644 index 000000000..ab4a18d47 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/DiscordRPCConfig.java @@ -0,0 +1,97 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DiscordRPCConfig { + + @Expose + @ConfigOption(name = "Enable Discord RPC", desc = "Details about your SkyBlock session displayed through Discord.") + @ConfigEditorBoolean + @FeatureToggle + public Property<Boolean> enabled = Property.of(false); + + @Expose + @ConfigOption(name = "First Line", desc = "Decide what to show in the first line.") + @ConfigEditorDropdown(values = { + "Nothing", + "Location", + "Purse", + "Bits", + "Stats", + "Held Item", + "SkyBlock Date", + "Profile", + "Slayer", + "Custom", + "Dynamic", + "Crop Milestone", + "Current Pet" + }) + public Property<Integer> firstLine = Property.of(0); + + @Expose + @ConfigOption(name = "Second Line", desc = "Decide what to show in the second line.") + @ConfigEditorDropdown(values = { + "Nothing", + "Location", + "Purse", + "Bits", + "Stats", + "Held Item", + "SkyBlock Date", + "Profile", + "Slayer", + "Custom", + "Dynamic", + "Crop Milestone", + "Current Pet" + }) + public Property<Integer> secondLine = Property.of(0); + + @Expose + @ConfigOption(name = "Custom", desc = "What should be displayed if you select \"Custom\" above.") + @ConfigEditorText + public Property<String> customText = Property.of(""); + + @Expose + @ConfigOption(name = "Dynamic Priority", desc = "Disable certain dynamic statuses, or change the priority in case two are triggered at the same time (higher up means higher priority).") + @ConfigEditorDraggableList( + exampleText = { + "Crop Milestones", + "Slayer", + "Stacking Enchantment", + "Dungeon", + "AFK Indicator" + } + ) + public List<Integer> autoPriority = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4)); + + @Expose + @ConfigOption(name = "Dynamic Fallback", desc = "What to show when none of your \"Dynamic Priority\" statuses are active.") + @ConfigEditorDropdown(values = { + "Nothing", + "Location", + "Purse", + "Bits", + "Stats", + "Held Item", + "SkyBlock Date", + "Profile", + "Slayer", + "Custom", + "Crop Milestone", + "Current Pet" + }) + public Property<Integer> auto = Property.of(0); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/EstimatedItemValueConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/EstimatedItemValueConfig.java new file mode 100644 index 000000000..2513cd66b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/EstimatedItemValueConfig.java @@ -0,0 +1,52 @@ +package at.hannibal2.skyhanni.config.features.misc; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; +import org.lwjgl.input.Keyboard; + +public class EstimatedItemValueConfig { + @Expose + @ConfigOption(name = "Enable Estimated Price", desc = "Displays an Estimated Item Value for the item you hover over.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Hotkey", desc = "Press this key to show the Estimated Item Value.") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int hotkey = Keyboard.KEY_NONE; + + @Expose + @ConfigOption(name = "Show Always", desc = "Ignore the hotkey and always display the item value.") + @ConfigEditorBoolean + public boolean alwaysEnabled = true; + + @Expose + @ConfigOption(name = "Enchantments Cap", desc = "Only show the top # most expensive enchantments.") + @ConfigEditorSlider( + minValue = 1, + maxValue = 30, + minStep = 1 + ) + public Property<Integer> enchantmentsCap = Property.of(7); + + @Expose + @ConfigOption(name = "Show Exact Price", desc = "Show the exact total price instead of the compact number.") + @ConfigEditorBoolean + public boolean exactPrice = false; + + @Expose + @ConfigOption(name = "Show Armor Value", desc = "Show the value of the full armor set in the Wardrobe inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean armor = true; + + @Expose + public Position itemPriceDataPos = new Position(140, 90, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/GlowingDroppedItemsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/GlowingDroppedItemsConfig.java new file mode 100644 index 000000000..4b5a260a1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/GlowingDroppedItemsConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class GlowingDroppedItemsConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Draws a glowing outline around all dropped items on the ground.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Highlight Showcase Items", desc = "Draws a glowing outline around showcase items.") + @ConfigEditorBoolean + public boolean highlightShowcase = false; + + @Expose + @ConfigOption(name = "Highlight Fishing Bait", desc = "Draws a glowing outline around fishing bait.") + @ConfigEditorBoolean + public boolean highlightFishingBait = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/HideArmorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/HideArmorConfig.java new file mode 100644 index 000000000..286249061 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/HideArmorConfig.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class HideArmorConfig { + + @Expose + @ConfigOption(name = "Mode", desc = "Hide the armor of players.") + @ConfigEditorDropdown(values = {"All", "Own Armor", "Other's Armor", "Off"}) + public int mode = 3; + + @Expose + @ConfigOption(name = "Only Helmet", desc = "Only hide the helmet.") + @ConfigEditorBoolean() + public Boolean onlyHelmet = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/HighlightPartyMembersConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/HighlightPartyMembersConfig.java new file mode 100644 index 000000000..8dc4d7c02 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/HighlightPartyMembersConfig.java @@ -0,0 +1,25 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class HighlightPartyMembersConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Marking party members with a bright outline to better find them in the world.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption( + name = "Outline Color", + desc = "The color to outline party members in." + ) + @ConfigEditorColour + public String outlineColor = "0:245:85:255:85"; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/KickDurationConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/KickDurationConfig.java new file mode 100644 index 000000000..0d5af9046 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/KickDurationConfig.java @@ -0,0 +1,34 @@ +package at.hannibal2.skyhanni.config.features.misc; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public class KickDurationConfig { + + @Expose + @ConfigOption( + name = "Enabled", + desc = "Show in the Hypixel lobby since when you were last kicked from SkyBlock (" + + "useful if you get blocked because of '§cYou were kicked while joining that server!§7')." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Warn Time", desc = "Send warning and sound this seconds after a SkyBlock kick.") + @ConfigEditorSlider( + minValue = 5, + maxValue = 300, + minStep = 1 + ) + public Property<Integer> warnTime = Property.of(60); + + @Expose + public Position position = new Position(400, 200, 1.3f); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java new file mode 100644 index 000000000..3358db12f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/MiscConfig.java @@ -0,0 +1,209 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.misc.compacttablist.CompactTabListConfig; +import at.hannibal2.skyhanni.config.features.misc.cosmetic.CosmeticConfig; +import at.hannibal2.skyhanni.config.features.misc.pets.PetConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MiscConfig { + + @Expose + @Category(name = "Pets", desc = "Pets Settings") + public PetConfig pets = new PetConfig(); + + @ConfigOption(name = "Hide Armor", desc = "") + @Accordion + @Expose + public HideArmorConfig hideArmor2 = new HideArmorConfig(); + + @Expose + @ConfigOption(name = "Potion Effects", desc = "") + @Accordion + public PotionEffectsConfig potionEffect = new PotionEffectsConfig(); + + @Expose + @ConfigOption(name = "Particle Hider", desc = "") + @Accordion + public ParticleHiderConfig particleHiders = new ParticleHiderConfig(); + + @Expose + @ConfigOption(name = "Estimated Item Value", desc = "(Prices for Enchantments, Reforge Stones, Gemstones, Drill Parts and more)") + @Accordion + public EstimatedItemValueConfig estimatedItemValues = new EstimatedItemValueConfig(); + + @ConfigOption(name = "Discord Rich Presence", desc = "") + @Accordion + @Expose + public DiscordRPCConfig discordRPC = new DiscordRPCConfig(); + + @ConfigOption(name = "Trevor The Trapper", desc = "") + @Accordion + @Expose + public TrevorTheTrapperConfig trevorTheTrapper = new TrevorTheTrapperConfig(); + + @ConfigOption(name = "Teleport Pads On Private Island", desc = "") + @Accordion + @Expose + public TeleportPadConfig teleportPad = new TeleportPadConfig(); + + @ConfigOption(name = "Pocket Sack-In-A-Sack", desc = "") + @Accordion + @Expose + public PocketSackInASackConfig pocketSackInASack = new PocketSackInASackConfig(); + + @ConfigOption(name = "Quick Mod Menu Switch", desc = "") + @Accordion + @Expose + public QuickModMenuSwitchConfig quickModMenuSwitch = new QuickModMenuSwitchConfig(); + + @Expose + @Category(name = "Cosmetic", desc = "Cosmetics Settings") + public CosmeticConfig cosmetic = new CosmeticConfig(); + + + @Expose + @ConfigOption(name = "Glowing Dropped Items", desc = "") + @Accordion + public GlowingDroppedItemsConfig glowingDroppedItems = new GlowingDroppedItemsConfig(); + + @Expose + @ConfigOption(name = "Highlight Party Members", desc = "") + @Accordion + public HighlightPartyMembersConfig highlightPartyMembers = new HighlightPartyMembersConfig(); + + @Expose + @Category(name = "Compact Tab List", desc = "Compact Tab List Settings") + @Accordion + public CompactTabListConfig compactTabList = new CompactTabListConfig(); + + @Expose + @ConfigOption(name = "Kick Duration", desc = "") + @Accordion + public KickDurationConfig kickDuration = new KickDurationConfig(); + + @Expose + @ConfigOption(name = "Exp Bottles", desc = "Hides all the experience orbs lying on the ground.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideExpBottles = false; + + @Expose + public Position collectionCounterPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Brewing Stand Overlay", desc = "Display the Item names directly inside the Brewing Stand.") + @ConfigEditorBoolean + @FeatureToggle + public boolean brewingStandOverlay = true; + + @Expose + @ConfigOption(name = "Red Scoreboard Numbers", desc = "Hide the red scoreboard numbers on the right side of the screen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideScoreboardNumbers = false; + + @Expose + @ConfigOption(name = "Hide Piggy", desc = "Replacing 'Piggy' with 'Purse' in the Scoreboard.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hidePiggyScoreboard = true; + + @Expose + @ConfigOption(name = "Explosions Hider", desc = "Hide explosions.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideExplosions = false; + + @Expose + @ConfigOption(name = "CH Join", desc = "Helps buy a Pass for accessing the Crystal Hollows if needed.") + @ConfigEditorBoolean + @FeatureToggle + public boolean crystalHollowsJoin = true; + + @Expose + @ConfigOption(name = "Fire Overlay Hider", desc = "Hide the fire overlay (Like in Skytils).") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideFireOverlay = false; + + @Expose + @ConfigOption(name = "Paste Into Signs", desc = "Allows you to paste the clipboard into signs when you press Ctrl + V.") + @ConfigEditorBoolean + @FeatureToggle + public boolean pasteIntoSigns = true; + + @Expose + @ConfigOption(name = "Movement Speed", desc = "Show the player movement speed in blocks per second.") + @ConfigEditorBoolean + @FeatureToggle + public boolean playerMovementSpeed = false; + + @Expose + public Position playerMovementSpeedPos = new Position(394, 124, false, true); + + @Expose + @ConfigOption(name = "Pet Candy Used", desc = "Show the number of Pet Candy used on a pet.") + @ConfigEditorBoolean + @FeatureToggle + public boolean petCandyUsed = true; + + @Expose + @ConfigOption(name = "Server Restart Title", desc = "Show a title with seconds remaining until the server restarts after a Game Update or Scheduled Restart.") + @ConfigEditorBoolean + @FeatureToggle + public boolean serverRestartTitle = true; + + @Expose + @ConfigOption(name = "Piece Of Wizard Portal", desc = "Restore the Earned By lore line on bought Piece Of Wizard Portal.") + @ConfigEditorBoolean + @FeatureToggle + public boolean restorePieceOfWizardPortalLore = true; + + @Expose + @ConfigOption(name = "Patcher Coords Waypoint", desc = "Highlight the coordinates sent by Patcher.") + @ConfigEditorBoolean + @FeatureToggle + public boolean patcherSendCoordWaypoint = false; + + + @Expose + @ConfigOption(name = "Account Upgrade Reminder", desc = "Remind you to claim account upgrades when complete.") + @ConfigEditorBoolean + @FeatureToggle + public boolean accountUpgradeReminder = true; + + @Expose + @ConfigOption(name = "Superpairs Clicks Alert", desc = "Display an alert when you reach the maximum clicks gained from Chronomatron or Ultrasequencer.") + @ConfigEditorBoolean + @FeatureToggle + public boolean superpairsClicksAlert = false; + + @Expose + @ConfigOption(name = "NEU Heavy Pearls", desc = "Fixing NEU Heavy Pearl detection.") + @ConfigEditorBoolean + @FeatureToggle + public boolean fixNeuHeavyPearls = true; + + @Expose + @ConfigOption( + name = "Time In Limbo", + desc = "Show the time since you entered the limbo.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showTimeInLimbo = true; + + @Expose + public Position showTimeInLimboPosition = new Position(400, 200, 1.3f); + + @Expose + public Position lockedMouseDisplay = new Position(400, 200, 0.8f); + + @Expose + public Position inventoryLoadPos = new Position(394, 124, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/ParticleHiderConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/ParticleHiderConfig.java new file mode 100644 index 000000000..45f7c445e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/ParticleHiderConfig.java @@ -0,0 +1,50 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ParticleHiderConfig { + @Expose + @ConfigOption(name = "Blaze Particles", desc = "Hide Blaze particles.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideBlazeParticles = false; + + @Expose + @ConfigOption(name = "Enderman Particles", desc = "Hide Enderman particles.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideEndermanParticles = false; + + @Expose + @ConfigOption(name = "Fireball Particles", desc = "Hide fireball particles.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideFireballParticles = true; + + @Expose + @ConfigOption(name = "Fire Particles", desc = "Hide particles from the fire block.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideFireBlockParticles = true; + + @Expose + @ConfigOption(name = "Smoke Particles", desc = "Hide smoke particles.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideSmokeParticles = false; + + @Expose + @ConfigOption(name = "Far Particles", desc = "Hide particles that are more than 40 blocks away.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideFarParticles = true; + + @Expose + @ConfigOption(name = "Close Redstone Particles", desc = "Hide Redstone particles around the player (appear for some potion effects).") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideCloseRedstoneParticles = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/PocketSackInASackConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/PocketSackInASackConfig.java new file mode 100644 index 000000000..c3a57d993 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/PocketSackInASackConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PocketSackInASackConfig { + + @Expose + @ConfigOption(name = "Show in Overlay", desc = "Show the number of Pocket Sack-In-A-Sack applied on a sack icon as an overlay.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showOverlay = false; + + @Expose + @ConfigOption(name = "Replace In Lore", desc = "Replace how text is displayed in lore.\nShow §eis stitched with 2/3...\n§7Instead of §eis stitched with two...") + @ConfigEditorBoolean + @FeatureToggle + public boolean replaceLore = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/PotionEffectsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/PotionEffectsConfig.java new file mode 100644 index 000000000..19711ffdb --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/PotionEffectsConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.misc; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PotionEffectsConfig { + @Expose + @ConfigOption(name = "Non God Pot Effects", desc = "Display the active potion effects that are not part of the God Pot.") + @ConfigEditorBoolean + @FeatureToggle + public boolean nonGodPotEffectDisplay = false; + + @Expose + @ConfigOption(name = "Show Mixins", desc = "Include God Pot mixins in the Non God Pot Effects display.") + @ConfigEditorBoolean + @FeatureToggle + public boolean nonGodPotEffectShowMixins = false; + + @Expose + public Position nonGodPotEffectPos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/QuickModMenuSwitchConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/QuickModMenuSwitchConfig.java new file mode 100644 index 000000000..a1361d4a2 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/QuickModMenuSwitchConfig.java @@ -0,0 +1,29 @@ +package at.hannibal2.skyhanni.config.features.misc; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class QuickModMenuSwitchConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Adding a mod list, allowing to quickly switch between different mod menus.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Inside Escape Menu", desc = "Show the mod list while inside the Escape menu.") + @ConfigEditorBoolean + public boolean insideEscapeMenu = true; + + @Expose + @ConfigOption(name = "Inside Inventory", desc = "Show the mod list while inside the player inventory (no chest inventory).") + @ConfigEditorBoolean + public boolean insidePlayerInventory = false; + + @Expose + public Position pos = new Position(-178, 143, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/TeleportPadConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/TeleportPadConfig.java new file mode 100644 index 000000000..f16165547 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/TeleportPadConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.misc; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class TeleportPadConfig { + + @Expose + @ConfigOption(name = "Compact Name", desc = "Hide the 'Warp to' and 'No Destination' texts over teleport pads.") + @ConfigEditorBoolean + @FeatureToggle + public boolean compactName = false; + + @Expose + @ConfigOption(name = "Inventory Numbers", desc = "Show the number of the teleport pads inside the 'Change Destination' inventory as stack size.") + @ConfigEditorBoolean + @FeatureToggle + public boolean inventoryNumbers = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/TrevorTheTrapperConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/TrevorTheTrapperConfig.java new file mode 100644 index 000000000..0c4226034 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/TrevorTheTrapperConfig.java @@ -0,0 +1,110 @@ +package at.hannibal2.skyhanni.config.features.misc; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class TrevorTheTrapperConfig { + + @Expose + @ConfigOption( + name = "Enable Data Tracker", + desc = "Tracks all of your data from doing Trevor Quests.\n" + + "Shows based on the setting below." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean dataTracker = true; + + @Expose + @ConfigOption( + name = "Show Between Quests", + desc = "Shows the tracker during and between quests otherwise it will only show during them." + + "Will show in the Trapper's Den regardless. §cToggle 'Enable Data Tracker' above." + ) + @ConfigEditorBoolean + public boolean displayType = true; + + @Expose + @ConfigOption( + name = "Text Format", + desc = "Drag text to change the appearance of the overlay." + ) + @ConfigEditorDraggableList( + exampleText = { + "§b§lTrevor Data Tracker", + "§b1,428 §9Quests Started", + "§b11,281 §5Total Pelts Gained", + "§b2,448 §5Pelts Per Hour", + "", + "§b850 §cKilled Animals", + "§b153 §cSelf Killing Animals", + "§b788 §fTrackable Animals", + "§b239 §aUntrackable Animals", + "§b115 §9Undetected Animals", + "§b73 §5Endangered Animals", + "§b12 §6Elusive Animals" + } + ) + public List<Integer> textFormat = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11)); + + @Expose + public Position position = new Position(10, 80, false, true); + + @Expose + @ConfigOption(name = "Trapper Solver", desc = "Assists you in finding Trevor's mobs. §eNote: May not always work as expected. " + + "§cWill not help you to find rabbits or sheep in the Oasis!") + @ConfigEditorBoolean + @FeatureToggle + public boolean trapperSolver = true; + + @Expose + @ConfigOption(name = "Mob Dead Warning", desc = "Show a message when Trevor's mob dies.") + @ConfigEditorBoolean + public boolean trapperMobDiedMessage = true; + + @Expose + @ConfigOption(name = "Warp to Trapper", desc = "Warp to Trevor's Den. Works only inside the Farming Islands.") + @ConfigEditorBoolean + @FeatureToggle + public boolean warpToTrapper = false; + + @Expose + @ConfigOption(name = "Accept Trapper Quest", desc = "Click this key after the chat prompt to accept Trevor's quest.") + @ConfigEditorBoolean + @FeatureToggle + public boolean acceptQuest = false; + + @Expose + @ConfigOption(name = "Trapper Hotkey", desc = "Press this key to warp to Trevor's Den or to accept the quest. " + + "§eRequires the relevant above settings to be toggled") + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int keyBindWarpTrapper = Keyboard.KEY_NONE; + + + @Expose + @ConfigOption(name = "Trapper Cooldown", desc = "Change the color of Trevor and adds a cooldown over his head.") + @ConfigEditorBoolean + @FeatureToggle + public boolean trapperTalkCooldown = true; + + @Expose + @ConfigOption( + name = "Trapper Cooldown GUI", + desc = "Show the cooldown on screen in an overlay (intended for Abiphone users)." + ) + @ConfigEditorBoolean + public boolean trapperCooldownGui = false; + + @Expose + public Position trapperCooldownPos = new Position(10, 10, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/AdvancedPlayerListConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/AdvancedPlayerListConfig.java new file mode 100644 index 000000000..0bd6360d6 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/AdvancedPlayerListConfig.java @@ -0,0 +1,73 @@ +package at.hannibal2.skyhanni.config.features.misc.compacttablist; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class AdvancedPlayerListConfig { + + @Expose + @ConfigOption(name = "Player Sort", desc = "Change the sort order of player names in the tab list.") + @ConfigEditorDropdown(values = {"Rank (Default)", "SB Level", "Name (Abc)", "Ironman/Bingo", "Party/Friends/Guild", "Random"}) + public int playerSortOrder = 0; + + @Expose + @ConfigOption(name = "Invert Sort", desc = "Flip the player list order on its head (also works with default rank).") + @ConfigEditorBoolean + public boolean reverseSort = false; + + @Expose + @ConfigOption(name = "Hide Player Icons", desc = "Hide the icons/skins of player in the tab list.") + @ConfigEditorBoolean + public boolean hidePlayerIcons = false; + + @Expose + @ConfigOption(name = "Hide Rank Color", desc = "Hide the player rank color.") + @ConfigEditorBoolean + public boolean hideRankColor = false; + + @Expose + @ConfigOption(name = "Hide Emblems", desc = "Hide the emblems behind the player name.") + @ConfigEditorBoolean + public boolean hideEmblem = false; + + @Expose + @ConfigOption(name = "Hide Level", desc = "Hide the SkyBlock level numbers.") + @ConfigEditorBoolean + public boolean hideLevel = false; + + @Expose + @ConfigOption(name = "Hide Level Brackets", desc = "Hide the gray brackets in front of and behind the level numbers.") + @ConfigEditorBoolean + public boolean hideLevelBrackets = false; + + @Expose + @ConfigOption(name = "Level Color As Name", desc = "Use the color of the SkyBlock level for the player color.") + @ConfigEditorBoolean + public boolean useLevelColorForName = false; + + @Expose + @ConfigOption(name = "Bingo Rank Number", desc = "Show the number of the bingo rank next to the icon. Useful if you are not so familar with bingo.") + @ConfigEditorBoolean + public boolean showBingoRankNumber = false; + + @Expose + @ConfigOption(name = "Hide Factions", desc = "Hide the icon of the Crimson Isle Faction in the tab list.") + @ConfigEditorBoolean + public boolean hideFactions = false; + + @Expose + @ConfigOption(name = "Mark Special Persons", desc = "Show special icons behind the name of guild members, party members, friends, and marked players.") + @ConfigEditorBoolean + public boolean markSpecialPersons = false; + + @Expose + @ConfigOption( + name = "Mark SkyHanni Devs", + desc = "Adds a §c:O §7behind the tablist name of §cSkyHanni's contributors§7. " + + "§eThose are the folks that coded the mod for you for free :)" + ) + @ConfigEditorBoolean + public boolean markSkyHanniContributors = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/CompactTabListConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/CompactTabListConfig.java new file mode 100644 index 000000000..2236d886b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/compacttablist/CompactTabListConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.misc.compacttablist; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class CompactTabListConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Compacts the tablist to make it look much nicer like SBA did. Also " + + "doesn't break god-pot detection and shortens some other lines.") + //made tablist one word here so both searches will pick it up + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Hide Hypixel Adverts", desc = "Hides text from advertising the Hypixel server or store in the tablist.") + @ConfigEditorBoolean + public boolean hideAdverts = false; + + @Expose + @ConfigOption(name = "Advanced Player List", desc = "") + @Accordion + public AdvancedPlayerListConfig advancedPlayerList = new AdvancedPlayerListConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/ArrowTrailConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/ArrowTrailConfig.java new file mode 100644 index 000000000..7f8a044ed --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/ArrowTrailConfig.java @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.config.features.misc.cosmetic; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ArrowTrailConfig { + @Expose + @ConfigOption(name = "Enabled", desc = "Draw a colored line behind arrows in the air.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Hide Nonplayer Arrows", desc = "Only shows for arrows the player has shot.") + @ConfigEditorBoolean + public boolean hideOtherArrows = true; + + @Expose + @ConfigOption(name = "Arrow Color", desc = "Color of the line.") + @ConfigEditorColour + public String arrowColor = "0:200:85:255:85"; + + @Expose + @ConfigOption(name = "Player Arrows", desc = "Different color for the line of arrows that you have shot.") + @ConfigEditorBoolean + public boolean handlePlayerArrowsDifferently = false; + + @Expose + @ConfigOption(name = "Player Arrow Color", desc = "Color of the line of your own arrows.") + @ConfigEditorColour + public String playerArrowColor = "0:200:85:255:255"; + + @Expose + @ConfigOption(name = "Time Alive", desc = "Time in seconds until the trail fades out.") + @ConfigEditorSlider(minStep = 0.1f, minValue = 0.1f, maxValue = 10) + public float secondsAlive = 0.5f; + + @Expose + @ConfigOption(name = "Line Width", desc = "Width of the line.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) + public int lineWidth = 4; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/CosmeticConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/CosmeticConfig.java new file mode 100644 index 000000000..80b5c6043 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/CosmeticConfig.java @@ -0,0 +1,18 @@ +package at.hannibal2.skyhanni.config.features.misc.cosmetic; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CosmeticConfig { + + @Expose + @ConfigOption(name = "Following Line", desc = "") + @Accordion + public FollowingLineConfig followingLine = new FollowingLineConfig(); + + @Expose + @ConfigOption(name = "Arrow Trail", desc = "") + @Accordion + public ArrowTrailConfig arrowTrail = new ArrowTrailConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/FollowingLineConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/FollowingLineConfig.java new file mode 100644 index 000000000..87f846e71 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/cosmetic/FollowingLineConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.misc.cosmetic; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class FollowingLineConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Draw a colored line behind the player.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Line Color", desc = "Color of the line.") + @ConfigEditorColour + public String lineColor = "0:255:255:255:255"; + + @Expose + @ConfigOption(name = "Time Alive", desc = "Time in seconds until the line fades out.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 30) + public int secondsAlive = 3; + + @Expose + @ConfigOption(name = "Max Line Width", desc = "Max width of the line.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) + public int lineWidth = 4; + + @Expose + @ConfigOption(name = "Behind Blocks", desc = "Show behind blocks.") + @ConfigEditorBoolean + public boolean behindBlocks = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetConfig.java new file mode 100644 index 000000000..c6a32cee9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.misc.pets; + +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.ConfigOption; + +public class PetConfig { + @Expose + @ConfigOption(name = "Pet Display", desc = "Show the currently active pet.") + @ConfigEditorBoolean + @FeatureToggle + public boolean display = false; + + @Expose + public Position displayPos = new Position(-330, -15, false, true); + + @Expose + @ConfigOption(name = "Pet Experience Tooltip", desc = "") + @Accordion + public PetExperienceToolTipConfig petExperienceToolTip = new PetExperienceToolTipConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetExperienceToolTipConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetExperienceToolTipConfig.java new file mode 100644 index 000000000..71ad44ba3 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/misc/pets/PetExperienceToolTipConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.misc.pets; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class PetExperienceToolTipConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show the full pet exp and the progress to level 100 (ignoring rarity) when hovering over a pet while pressing shift key.") + @ConfigEditorBoolean + @FeatureToggle + public boolean petDisplay = true; + + + @Expose + @ConfigOption(name = "Show Always", desc = "Show this info always, even if not pressing shift key.") + @ConfigEditorBoolean + public boolean showAlways = false; + + @Expose + @ConfigOption(name = "Dragon Egg", desc = "For a Golden Dragon Egg, show progress to level 100 instead of 200.") + @ConfigEditorBoolean + public boolean showGoldenDragonEgg = true; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/CruxTalismanDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/CruxTalismanDisplayConfig.java new file mode 100644 index 000000000..fc69df292 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/CruxTalismanDisplayConfig.java @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.config.features.rift; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public 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<Boolean> showBonuses = Property.of(true); + + @Expose + public Position position = new Position(144, 139, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/EnigmaSoulConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/EnigmaSoulConfig.java new file mode 100644 index 000000000..9b80b718d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/EnigmaSoulConfig.java @@ -0,0 +1,22 @@ +package at.hannibal2.skyhanni.config.features.rift; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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"; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/MotesOrbsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/MotesOrbsConfig.java new file mode 100644 index 000000000..ebcdb2e57 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/MotesOrbsConfig.java @@ -0,0 +1,28 @@ +package at.hannibal2.skyhanni.config.features.rift; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MotesOrbsConfig { + + @Expose + @ConfigOption(name = "Highlight Motes Orbs", desc = "Highlight flying Motes Orbs.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Highlight Size", desc = "Set render size for highlighted Motes Orbs.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 5) + public int size = 3; + + @Expose + @ConfigOption(name = "Hide Particles", desc = "Hide normal Motes Orbs particles.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideParticles = false; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java new file mode 100644 index 000000000..ca20e01f9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java @@ -0,0 +1,53 @@ +package at.hannibal2.skyhanni.config.features.rift; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.features.rift.area.RiftAreasConfig; +import at.hannibal2.skyhanni.config.features.rift.motes.MotesConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class RiftConfig { + + @ConfigOption(name = "Rift Timer", desc = "") + @Accordion + @Expose + public RiftTimerConfig timer = new RiftTimerConfig(); + + @ConfigOption(name = "Crux Talisman Progress", desc = "") + @Accordion + @Expose + public CruxTalismanDisplayConfig cruxTalisman = new CruxTalismanDisplayConfig(); + + @ConfigOption(name = "Enigma Soul Waypoints", desc = "") + @Accordion + @Expose + public EnigmaSoulConfig enigmaSoulWaypoints = new EnigmaSoulConfig(); + + @Category(name = "Rift Areas", desc = "Rift Area Settings") + @Expose + public RiftAreasConfig area = new RiftAreasConfig(); + + @Expose + @Category(name = "Motes", desc = "Motes Sell Price") + public MotesConfig motes = new MotesConfig(); + + @Expose + @ConfigOption(name = "Motes Orbs", desc = "") + @Accordion + public MotesOrbsConfig motesOrbs = new MotesOrbsConfig(); + + @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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftTimerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftTimerConfig.java new file mode 100644 index 000000000..f1c7f32dd --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftTimerConfig.java @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.config.features.rift; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/RiftAreasConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/RiftAreasConfig.java new file mode 100644 index 000000000..397eb2b90 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/RiftAreasConfig.java @@ -0,0 +1,60 @@ +package at.hannibal2.skyhanni.config.features.rift.area; + +import at.hannibal2.skyhanni.config.features.rift.area.colosseum.ColosseumConfig; +import at.hannibal2.skyhanni.config.features.rift.area.dreadfarm.DreadfarmConfig; +import at.hannibal2.skyhanni.config.features.rift.area.livingcave.LivingCaveConfig; +import at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.MirrorVerseConfig; +import at.hannibal2.skyhanni.config.features.rift.area.stillgorechateau.StillgoreChateauConfig; +import at.hannibal2.skyhanni.config.features.rift.area.westvillage.WestVillageConfig; +import at.hannibal2.skyhanni.config.features.rift.area.wyldwoods.WyldWoodsConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class RiftAreasConfig { + + @ConfigOption(name = "Wyld Woods", desc = "") + @Accordion + @Expose + public WyldWoodsConfig wyldWoods = new WyldWoodsConfig(); + + @ConfigOption(name = "West Village", desc = "") + @Accordion + @Expose + public WestVillageConfig westVillage = new WestVillageConfig(); + + @Expose + @ConfigOption(name = "Dreadfarm", desc = "") + @Accordion + public DreadfarmConfig dreadfarm = new DreadfarmConfig(); + + @ConfigOption(name = "Mirrorverse", desc = "") + @Accordion + @Expose + public MirrorVerseConfig mirrorverse = new MirrorVerseConfig(); + +// @Expose +// @ConfigOption(name = "Village Plaza", desc = "") +// @Accordion +// public VillagePlazaConfig villagePlaza = new VillagePlazaConfig(); + + @Expose + @ConfigOption(name = "Living Cave", desc = "") + @Accordion + public LivingCaveConfig livingCave = new LivingCaveConfig(); + + @Expose + @ConfigOption(name = "Colosseum", desc = "") + @Accordion + public ColosseumConfig colosseum = new ColosseumConfig(); + + @Expose + @ConfigOption(name = "Stillgore Chateau", desc = "") + @Accordion + public StillgoreChateauConfig stillgoreChateau = new StillgoreChateauConfig(); + +// @Expose +// @ConfigOption(name = "Mountaintop", desc = "") +// @Accordion +// public MountaintopConfig mountaintop = new MountaintopConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/colosseum/ColosseumConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/colosseum/ColosseumConfig.java new file mode 100644 index 000000000..d9a662f0d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/colosseum/ColosseumConfig.java @@ -0,0 +1,15 @@ +package at.hannibal2.skyhanni.config.features.rift.area.colosseum; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ColosseumConfig { + + @Expose + @ConfigOption(name = "Highlight Blobbercysts", desc = "Highlight Blobbercysts in Bacte fight.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightBlobbercysts = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/DreadfarmConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/DreadfarmConfig.java new file mode 100644 index 000000000..9a17c70b8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/DreadfarmConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.rift.area.dreadfarm; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public 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(); + + @ConfigOption(name = "Wilted Berberis", desc = "") + @Accordion + @Expose + public WiltedBerberisConfig wiltedBerberis = new WiltedBerberisConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/VoltCruxConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/VoltCruxConfig.java new file mode 100644 index 000000000..307e57d45 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/VoltCruxConfig.java @@ -0,0 +1,33 @@ +package at.hannibal2.skyhanni.config.features.rift.area.dreadfarm; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/WiltedBerberisConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/WiltedBerberisConfig.java new file mode 100644 index 000000000..9cad5a475 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/dreadfarm/WiltedBerberisConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.rift.area.dreadfarm; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/DefenseBlockConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/DefenseBlockConfig.java new file mode 100644 index 000000000..1754afb1e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/DefenseBlockConfig.java @@ -0,0 +1,29 @@ +package at.hannibal2.skyhanni.config.features.rift.area.livingcave; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public 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<String> color = Property.of("0:255:77:104:255"); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveConfig.java new file mode 100644 index 000000000..620238538 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveConfig.java @@ -0,0 +1,23 @@ +package at.hannibal2.skyhanni.config.features.rift.area.livingcave; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class LivingCaveConfig { + + @Expose + @ConfigOption(name = "Living Metal Suit Progress", desc = "") + @Accordion + public LivingMetalSuitProgressConfig livingMetalSuitProgress = new LivingMetalSuitProgressConfig(); + + @Expose + @ConfigOption(name = "Defense Blocks", desc = "") + @Accordion + public DefenseBlockConfig defenseBlockConfig = new DefenseBlockConfig(); + + @Expose + @ConfigOption(name = "Living Metal Helper", desc = "") + @Accordion + public LivingCaveLivingMetalConfig livingCaveLivingMetalConfig = new LivingCaveLivingMetalConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveLivingMetalConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveLivingMetalConfig.java new file mode 100644 index 000000000..aab75d571 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingCaveLivingMetalConfig.java @@ -0,0 +1,22 @@ +package at.hannibal2.skyhanni.config.features.rift.area.livingcave; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingMetalSuitProgressConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingMetalSuitProgressConfig.java new file mode 100644 index 000000000..d24520dc1 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/livingcave/LivingMetalSuitProgressConfig.java @@ -0,0 +1,24 @@ +package at.hannibal2.skyhanni.config.features.rift.area.livingcave; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/LavaMazeConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/LavaMazeConfig.java new file mode 100644 index 000000000..b3198cc4c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/LavaMazeConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public 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<Integer> lookAhead = Property.of(3); + + @Expose + @ConfigOption(name = "Rainbow Color", desc = "Show the rainbow color effect instead of a boring monochrome.") + @ConfigEditorBoolean + public Property<Boolean> rainbowColor = Property.of(true); + + @Expose + @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") + @ConfigEditorColour + public Property<String> 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/MirrorVerseConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/MirrorVerseConfig.java new file mode 100644 index 000000000..e93324972 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/MirrorVerseConfig.java @@ -0,0 +1,29 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse; + +import at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.danceroomhelper.DanceRoomHelperConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class MirrorVerseConfig { + + @ConfigOption(name = "Lava Maze", desc = "") + @Accordion + @Expose + public LavaMazeConfig lavaMazeConfig = new LavaMazeConfig(); + + @ConfigOption(name = "Upside Down Parkour", desc = "") + @Accordion + @Expose + public UpsideDownParkourConfig upsideDownParkour = new UpsideDownParkourConfig(); + + @ConfigOption(name = "Dance Room Helper", desc = "") + @Accordion + @Expose + public DanceRoomHelperConfig danceRoomHelper = new DanceRoomHelperConfig(); + + @ConfigOption(name = "Tubulator", desc = "") + @Accordion + @Expose + public TubulatorConfig tubulatorConfig = new TubulatorConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/TubulatorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/TubulatorConfig.java new file mode 100644 index 000000000..586ce2f4e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/TubulatorConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public 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<Integer> 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<Boolean> rainbowColor = Property.of(true); + + @Expose + @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") + @ConfigEditorColour + public Property<String> 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/UpsideDownParkourConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/UpsideDownParkourConfig.java new file mode 100644 index 000000000..e8712f310 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/UpsideDownParkourConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; +import io.github.moulberry.moulconfig.observer.Property; + +public 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<Integer> 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<Boolean> rainbowColor = Property.of(true); + + @Expose + @ConfigOption(name = "Monochrome Color", desc = "Set a boring monochrome color for the parkour platforms.") + @ConfigEditorColour + public Property<String> 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/DanceRoomHelperConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/DanceRoomHelperConfig.java new file mode 100644 index 000000000..a5b61aee8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/DanceRoomHelperConfig.java @@ -0,0 +1,48 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.danceroomhelper; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.danceroomhelper.danceroomformatting.DanceRoomFormattingConfig; +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.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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(); + + @Expose + public Position position = new Position(442, 239, false, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/ColorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/ColorConfig.java new file mode 100644 index 000000000..71f3013a6 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/ColorConfig.java @@ -0,0 +1,42 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.danceroomhelper.danceroomformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/DanceRoomFormattingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/DanceRoomFormattingConfig.java new file mode 100644 index 000000000..1c35a3924 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/mirrorverse/danceroomhelper/danceroomformatting/DanceRoomFormattingConfig.java @@ -0,0 +1,29 @@ +package at.hannibal2.skyhanni.config.features.rift.area.mirrorverse.danceroomhelper.danceroomformatting; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/EffigiesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/EffigiesConfig.java new file mode 100644 index 000000000..62a20c0e0 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/EffigiesConfig.java @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.config.features.rift.area.stillgorechateau; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/StillgoreChateauConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/StillgoreChateauConfig.java new file mode 100644 index 000000000..761b7c1d2 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/stillgorechateau/StillgoreChateauConfig.java @@ -0,0 +1,14 @@ +package at.hannibal2.skyhanni.config.features.rift.area.stillgorechateau; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class StillgoreChateauConfig { + + @Expose + @ConfigOption(name = "Blood Effigies", desc = "") + @Accordion + public EffigiesConfig bloodEffigies = new EffigiesConfig(); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/KloonHackingConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/KloonHackingConfig.java new file mode 100644 index 000000000..346747aab --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/KloonHackingConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.rift.area.westvillage; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/WestVillageConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/WestVillageConfig.java new file mode 100644 index 000000000..273080489 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/westvillage/WestVillageConfig.java @@ -0,0 +1,13 @@ +package at.hannibal2.skyhanni.config.features.rift.area.westvillage; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class WestVillageConfig { + + @ConfigOption(name = "Kloon Hacking", desc = "") + @Accordion + @Expose + public KloonHackingConfig hacking = new KloonHackingConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/LarvasConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/LarvasConfig.java new file mode 100644 index 000000000..b7a7aa240 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/LarvasConfig.java @@ -0,0 +1,22 @@ +package at.hannibal2.skyhanni.config.features.rift.area.wyldwoods; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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"; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/OdonataConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/OdonataConfig.java new file mode 100644 index 000000000..e32e9e01b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/OdonataConfig.java @@ -0,0 +1,23 @@ +package at.hannibal2.skyhanni.config.features.rift.area.wyldwoods; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class OdonataConfig { + + @Expose + @ConfigOption(name = "Highlight", desc = "Highlight the small §cOdonatas §7flying around the trees while holding an " + + "§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"; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/WyldWoodsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/WyldWoodsConfig.java new file mode 100644 index 000000000..3eae50fb5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/area/wyldwoods/WyldWoodsConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.rift.area.wyldwoods; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public 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(); + + @ConfigOption(name = "Odonatas", desc = "") + @Accordion + @Expose + public OdonataConfig odonata = new OdonataConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/InventoryValueConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/InventoryValueConfig.java new file mode 100644 index 000000000..297a83a1c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/InventoryValueConfig.java @@ -0,0 +1,25 @@ +package at.hannibal2.skyhanni.config.features.rift.motes; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/MotesConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/MotesConfig.java new file mode 100644 index 000000000..2a65a6652 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/motes/MotesConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.rift.motes; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public 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(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemProfitTrackerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemProfitTrackerConfig.java new file mode 100644 index 000000000..a7bc636db --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemProfitTrackerConfig.java @@ -0,0 +1,50 @@ +package at.hannibal2.skyhanni.config.features.slayer; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ItemProfitTrackerConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Count all items you pick up while doing slayer, " + + "keep track of how much you pay for starting slayers and calculating the overall profit.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + public Position pos = new Position(20, 20, false, true); + + @Expose + @ConfigOption(name = "Price in Chat", desc = "Show an extra chat message when you pick up an item. " + + "(This contains name, amount and price)") + @ConfigEditorBoolean + @FeatureToggle + public boolean priceInChat = false; + + @Expose + @ConfigOption(name = "Show Price From", desc = "Show price from Bazaar or NPC.") + @ConfigEditorDropdown(values = {"Instant Sell", "Sell Offer", "NPC"}) + public int priceFrom = 1; + + @Expose + @ConfigOption(name = "Minimum Price", desc = "Items below this price will not show up in chat.") + @ConfigEditorSlider(minValue = 1, maxValue = 5_000_000, minStep = 1) + public int minimumPrice = 100_000; + + @Expose + @ConfigOption(name = "Title Warning", desc = "Show a title for expensive item pickups.") + @ConfigEditorBoolean + @FeatureToggle + public boolean titleWarning = false; + + @Expose + @ConfigOption(name = "Title Price", desc = "Items above this price will show up as a title.") + @ConfigEditorSlider(minValue = 1, maxValue = 20_000_000, minStep = 1) + public int minimumPriceWarning = 500_000; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemsOnGroundConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemsOnGroundConfig.java new file mode 100644 index 000000000..4f3e2428d --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/ItemsOnGroundConfig.java @@ -0,0 +1,21 @@ +package at.hannibal2.skyhanni.config.features.slayer; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class ItemsOnGroundConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show the name and price of items laying on the ground. §cOnly in slayer areas!") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Minimum Price", desc = "Items below this price will be ignored.") + @ConfigEditorSlider(minValue = 1, maxValue = 1_000_000, minStep = 1) + public int minimumPrice = 50_000; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/RngMeterDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/RngMeterDisplayConfig.java new file mode 100644 index 000000000..04b6c6704 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/RngMeterDisplayConfig.java @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.config.features.slayer; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class RngMeterDisplayConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Display amount of bosses needed until next RNG meter drop.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption(name = "Warn Empty", desc = "Warn when no item is set in the RNG Meter.") + @ConfigEditorBoolean + public boolean warnEmpty = false; + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide the RNG meter message from chat if current item is selected.") + @ConfigEditorBoolean + public boolean hideChat = true; + + @Expose + public Position pos = new Position(410, 110, false, true); + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerBossWarningConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerBossWarningConfig.java new file mode 100644 index 000000000..1376a29a2 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerBossWarningConfig.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config.features.slayer; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class SlayerBossWarningConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Send a title when your boss is about to spawn.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Percent", desc = "The percentage at which the title and sound should be sent.") + @ConfigEditorSlider(minStep = 1, minValue = 50, maxValue = 90) + public int percent = 80; + + @Expose + @ConfigOption(name = "Repeat", desc = "Resend the title and sound on every kill after reaching the configured percent value.") + @ConfigEditorBoolean + public boolean repeat = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerConfig.java new file mode 100644 index 000000000..89128e7ff --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/SlayerConfig.java @@ -0,0 +1,77 @@ +package at.hannibal2.skyhanni.config.features.slayer; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.features.slayer.blaze.BlazeConfig; +import at.hannibal2.skyhanni.config.features.slayer.endermen.EndermanConfig; +import at.hannibal2.skyhanni.config.features.slayer.vampire.VampireConfig; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.Accordion; +import io.github.moulberry.moulconfig.annotations.Category; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class SlayerConfig { + + @Expose + @Category(name = "Endermen", desc = "Endermen Slayer Feature") + @Accordion + public EndermanConfig endermen = new EndermanConfig(); + + @Expose + @Category(name = "Blaze", desc = "Blaze Slayer Features") + public BlazeConfig blazes = new BlazeConfig(); + + @Expose + @Category(name = "Vampire", desc = "Vampire Slayer Features") + public VampireConfig vampire = new VampireConfig(); + + @Expose + @ConfigOption(name = "Item Profit Tracker", desc = "") + @Accordion + public ItemProfitTrackerConfig itemProfitTracker = new ItemProfitTrackerConfig(); + + @Expose + @ConfigOption(name = "Items on Ground", desc = "") + @Accordion + public ItemsOnGroundConfig itemsOnGround = new ItemsOnGroundConfig(); + + @Expose + @ConfigOption(name = "RNG Meter Display", desc = "") + @Accordion + public RngMeterDisplayConfig rngMeterDisplay = new RngMeterDisplayConfig(); + + @Expose + @ConfigOption(name = "Boss Spawn Warning", desc = "") + @Accordion + public SlayerBossWarningConfig slayerBossWarning = new SlayerBossWarningConfig(); + + @Expose + @ConfigOption(name = "Miniboss Highlight", desc = "Highlight Slayer Mini-Boss in blue color.") + @ConfigEditorBoolean + @FeatureToggle + public boolean slayerMinibossHighlight = false; + + @Expose + @ConfigOption(name = "Line to Miniboss", desc = "Adds a line to every Slayer Mini-Boss around you.") + @ConfigEditorBoolean + @FeatureToggle + public boolean slayerMinibossLine = false; + + @Expose + @ConfigOption(name = "Hide Mob Names", desc = "Hide the name of the mobs you need to kill in order for the Slayer boss to spawn. Exclude mobs that are damaged, corrupted, runic or semi rare.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideMobNames = false; + + @Expose + @ConfigOption(name = "Quest Warning", desc = "Warning when wrong Slayer quest is selected, or killing mobs for the wrong Slayer.") + @ConfigEditorBoolean + @FeatureToggle + public boolean questWarning = true; + + @Expose + @ConfigOption(name = "Quest Warning Title", desc = "Sends a title when warning.") + @ConfigEditorBoolean + @FeatureToggle + public boolean questWarningTitle = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeConfig.java new file mode 100644 index 000000000..c631b10f8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeConfig.java @@ -0,0 +1,32 @@ +package at.hannibal2.skyhanni.config.features.slayer.blaze; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class BlazeConfig { + @Expose + @ConfigOption(name = "Hellion Shields", desc = "") + @Accordion + public BlazeHellionConfig hellion = new BlazeHellionConfig(); + + + @Expose + @ConfigOption(name = "Fire Pits", desc = "Warning when the fire pit phase starts for the Blaze Slayer tier 3 and 4.") + @ConfigEditorBoolean + @FeatureToggle + public boolean firePitsWarning = false; + + @Expose + @ConfigOption(name = "Phase Display", desc = "Show the current phase of the Blaze Slayer boss.") + @ConfigEditorBoolean + public boolean phaseDisplay = false; + + @Expose + @ConfigOption(name = "Clear View", desc = "Hide particles and fireballs near Blaze Slayer bosses and demons.") + @ConfigEditorBoolean + @FeatureToggle + public boolean clearView = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeHellionConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeHellionConfig.java new file mode 100644 index 000000000..4a5e4af8c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/blaze/BlazeHellionConfig.java @@ -0,0 +1,45 @@ +package at.hannibal2.skyhanni.config.features.slayer.blaze; + +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.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class BlazeHellionConfig { + @Expose + @ConfigOption(name = "Colored Mobs", desc = "Color the Blaze Slayer boss and the demons in the right hellion shield color.") + @ConfigEditorBoolean + @FeatureToggle + public boolean coloredMobs = false; + + @Expose + @ConfigOption(name = "Blaze Daggers", desc = "Faster and permanent display for the Blaze Slayer daggers.") + @ConfigEditorBoolean + @FeatureToggle + public boolean daggers = false; + + @Expose + @ConfigOption(name = "Right Dagger", desc = "Mark the right dagger to use for Blaze Slayer in the dagger overlay.") + @ConfigEditorBoolean + @FeatureToggle + public boolean markRightHellionShield = false; + + @Expose + @ConfigOption(name = "First Dagger", desc = "Select the first, left sided dagger for the display.") + @ConfigEditorDropdown(values = {"Spirit/Crystal", "Ashen/Auric"}) + public int firstDagger = 0; + + @Expose + @ConfigOption(name = "Hide Chat", desc = "Remove the wrong Blaze Slayer dagger messages from chat.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideDaggerWarning = false; + + @Expose + public Position positionTop = new Position(-475, 173, 4.4f, true); + + @Expose + public Position positionBottom = new Position(-475, 230, 3.2f, true); +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanBeaconConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanBeaconConfig.java new file mode 100644 index 000000000..32592e4b9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanBeaconConfig.java @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.config.features.slayer.endermen; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class EndermanBeaconConfig { + + @Expose + @ConfigOption(name = "Highlight Beacon", + desc = "Highlight the Enderman Slayer Yang Glyph (beacon) in red color and added a timer for when he explodes. " + + "Supports beacon in hand and beacon flying.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightBeacon = true; + + @Expose + @ConfigOption(name = "Beacon Color", desc = "Color of the beacon.") + @ConfigEditorColour + public String beaconColor = "0:255:255:0:88"; + + @Expose + @ConfigOption(name = "Show Warning", desc = "Displays a warning mid-screen when the Enderman Slayer throws a Yang Glyph (beacon).") + @ConfigEditorBoolean + @FeatureToggle + public boolean showWarning = false; + + @Expose + @ConfigOption(name = "Show Line", desc = "Draw a line starting at your crosshair to the beacon.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showLine = false; + + @Expose + @ConfigOption(name = "Line Color", desc = "Color of the line.") + @ConfigEditorColour + public String lineColor = "0:255:255:0:88"; + + @Expose + @ConfigOption(name = "Line Width", desc = "Width of the line.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) + public int lineWidth = 3; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanConfig.java new file mode 100644 index 000000000..7b5ce353e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/endermen/EndermanConfig.java @@ -0,0 +1,31 @@ +package at.hannibal2.skyhanni.config.features.slayer.endermen; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigOption; + +public class EndermanConfig { + @Expose + @ConfigOption(name = "Yang Glyph (beacon)", desc = "") + @Accordion + public EndermanBeaconConfig beacon = new EndermanBeaconConfig(); + + @Expose + @ConfigOption(name = "Highlight Nukekubi Skulls", desc = "Highlights the Enderman Slayer Nukekubi Skulls (Eyes).") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightNukekebi = false; + + @Expose + @ConfigOption(name = "Phase Display", desc = "Show the current phase of the Enderman Slayer in damage indcator.") + @ConfigEditorBoolean + public boolean phaseDisplay = false; + + @Expose + @ConfigOption(name = "Hide Particles", desc = "Hide particles around Enderman Slayer bosses and Mini-Bosses.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideParticles = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/BloodIchorConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/BloodIchorConfig.java new file mode 100644 index 000000000..7daca5ea3 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/BloodIchorConfig.java @@ -0,0 +1,38 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class BloodIchorConfig { + @Expose + @ConfigOption(name = "Highlight Blood Ichor", desc = "Highlight the Blood Ichor.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = false; + + @Expose + @ConfigOption(name = "Beacon Beam", desc = "Render a beacon beam where the Blood Ichor is.") + @ConfigEditorBoolean + @FeatureToggle + public boolean renderBeam = true; + + @Expose + @ConfigOption(name = "Color", desc = "Highlight color.") + @ConfigEditorColour + public String color = "0:199:100:0:88"; + + @Expose + @ConfigOption(name = "Show Lines", desc = "Draw lines that start from the head of the boss and end on the Blood Ichor.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showLines = false; + + @Expose + @ConfigOption(name = "Lines Start Color", desc = "Starting color of the lines.") + @ConfigEditorColour + public String linesColor = "0:255:255:13:0"; + +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/CoopBossHighlightConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/CoopBossHighlightConfig.java new file mode 100644 index 000000000..5c91c41a9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/CoopBossHighlightConfig.java @@ -0,0 +1,44 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigEditorText; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class CoopBossHighlightConfig { + @Expose + @ConfigOption(name = "Highlight Co-op Boss", desc = "Highlight boss of your co-op member.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = true; + + @Expose + @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") + @ConfigEditorColour + public String highlightColor = "0:249:0:255:88"; + + @Expose + @ConfigOption(name = "Co-op Members", desc = "Add your co-op member here.\n§eFormat: §7Name1,Name2,Name3") + @ConfigEditorText + public String coopMembers = ""; + + @Expose + @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak the boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean steakAlert = true; + + @Expose + @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsTitle = true; + + @Expose + @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsSound = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/KillerSpringConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/KillerSpringConfig.java new file mode 100644 index 000000000..1d38c7ce7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/KillerSpringConfig.java @@ -0,0 +1,31 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class KillerSpringConfig { + @Expose + @ConfigOption(name = "Highlight Killer Spring", desc = "Highlight the Killer Spring tower.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = false; + + @Expose + @ConfigOption(name = "Color", desc = "Highlight color.") + @ConfigEditorColour + public String color = "0:199:100:0:88"; + + @Expose + @ConfigOption(name = "Show Lines", desc = "Draw lines that start from the head of the boss and end on the Killer Spring tower.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showLines = false; + + @Expose + @ConfigOption(name = "Lines Start Color", desc = "Starting color of the lines.") + @ConfigEditorColour + public String linesColor = "0:255:255:13:0"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OthersBossConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OthersBossConfig.java new file mode 100644 index 000000000..6a89c9f77 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OthersBossConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class OthersBossConfig { + + @Expose + @ConfigOption(name = "Highlight Others Boss", desc = "Highlight others players boss.\nYou need to hit them first.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = true; + + @Expose + @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") + @ConfigEditorColour + public String highlightColor = "0:249:0:255:88"; + + @Expose + @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak the boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean steakAlert = true; + + @Expose + @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsTitle = true; + + @Expose + @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsSound = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OwnBossConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OwnBossConfig.java new file mode 100644 index 000000000..481576242 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/OwnBossConfig.java @@ -0,0 +1,39 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; +import io.github.moulberry.moulconfig.annotations.ConfigEditorColour; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class OwnBossConfig { + + @Expose + @ConfigOption(name = "Highlight Your Boss", desc = "Highlight your own Vampire Slayer boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlight = true; + + @Expose + @ConfigOption(name = "Highlight Color", desc = "What color to highlight the boss in.") + @ConfigEditorColour + public String highlightColor = "0:249:0:255:88"; + + @Expose + @ConfigOption(name = "Steak Alert", desc = "Show a title when you can steak your boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean steakAlert = true; + + @Expose + @ConfigOption(name = "Twinclaws Title", desc = "Send a title when Twinclaws is about to happen.\nWork on others highlighted people boss.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsTitle = true; + + @Expose + @ConfigOption(name = "Twinclaws Sound", desc = "Play a sound when Twinclaws is about to happen.") + @ConfigEditorBoolean + @FeatureToggle + public boolean twinClawsSound = true; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/VampireConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/VampireConfig.java new file mode 100644 index 000000000..4a068878b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/slayer/vampire/VampireConfig.java @@ -0,0 +1,80 @@ +package at.hannibal2.skyhanni.config.features.slayer.vampire; + +import at.hannibal2.skyhanni.config.FeatureToggle; +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.ConfigEditorSlider; +import io.github.moulberry.moulconfig.annotations.ConfigOption; + +public class VampireConfig { + + @Expose + @ConfigOption(name = "Your Boss", desc = "") + @Accordion + public OwnBossConfig ownBoss = new OwnBossConfig(); + + @Expose + @ConfigOption(name = "Others Boss", desc = "") + @Accordion + public OthersBossConfig othersBoss = new OthersBossConfig(); + + @Expose + @ConfigOption(name = "Co-op Boss", desc = "") + @Accordion + public CoopBossHighlightConfig coopBoss = new CoopBossHighlightConfig(); + + @Expose + @ConfigOption(name = "Transparency", desc = "Choose the transparency of the color.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 250) + public int withAlpha = 80; + + @Expose + @ConfigOption(name = "See Through Blocks", desc = "Highlight even when behind others mobs/players.") + @ConfigEditorBoolean + public boolean seeThrough = false; + + @Expose + @ConfigOption(name = "Low Health", desc = "Change color when the boss is below 20% health.") + @ConfigEditorBoolean + @FeatureToggle + public boolean changeColorWhenCanSteak = true; + + @Expose + @ConfigOption(name = "Can use Steak Color", desc = "Color when the boss is below 20% health.") + @ConfigEditorColour + public String steakColor = "0:255:255:0:88"; + + @Expose + @ConfigOption(name = "Twinclaws", desc = "Delay the sound and title of Twinclaws alert for a given amount in milliseconds.") + @ConfigEditorSlider(minStep = 1, minValue = 0, maxValue = 1000) + public int twinclawsDelay = 0; + + @Expose + @ConfigOption(name = "Draw Line", desc = "Draw a line starting at your crosshair to the boss head.") + @ConfigEditorBoolean + @FeatureToggle + public boolean drawLine = false; + + @Expose + @ConfigOption(name = "Line Color", desc = "Color of the line.") + @ConfigEditorColour + public String lineColor = "0:255:255:0:88"; + + @Expose + @ConfigOption(name = "Line Width", desc = "Width of the line.") + @ConfigEditorSlider(minStep = 1, minValue = 1, maxValue = 10) + public int lineWidth = 1; + + + @Expose + @ConfigOption(name = "Blood Ichor", desc = "") + @Accordion + public BloodIchorConfig bloodIchor = new BloodIchorConfig(); + + @Expose + @ConfigOption(name = "Killer Spring", desc = "") + @Accordion + public KillerSpringConfig killerSpring = new KillerSpringConfig(); +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/cosmetics/ArrowTrail.kt b/src/main/java/at/hannibal2/skyhanni/features/cosmetics/ArrowTrail.kt index f7a28d78d..da18e8d28 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/cosmetics/ArrowTrail.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/cosmetics/ArrowTrail.kt @@ -21,7 +21,7 @@ import kotlin.time.toDuration class ArrowTrail { - private val config get() = SkyHanniMod.feature.misc.cosmeticConfig.arrowTrailConfig + private val config get() = SkyHanniMod.feature.misc.cosmetic.arrowTrail private data class Line(val start: LorenzVec, val end: LorenzVec, val deathTime: SimpleTimeMark) diff --git a/src/main/java/at/hannibal2/skyhanni/features/cosmetics/CosmeticFollowingLine.kt b/src/main/java/at/hannibal2/skyhanni/features/cosmetics/CosmeticFollowingLine.kt index 5dda13876..662ad68a0 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/cosmetics/CosmeticFollowingLine.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/cosmetics/CosmeticFollowingLine.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.cosmetics import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent @@ -19,7 +20,7 @@ import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.seconds class CosmeticFollowingLine { - private val config get() = SkyHanniMod.feature.misc.cosmeticConfig.followingLineConfig + private val config get() = SkyHanniMod.feature.misc.cosmetic.followingLine private var locations = mapOf<LorenzVec, LocationSpot>() private var latestLocations = mapOf<LorenzVec, LocationSpot>() @@ -120,4 +121,11 @@ class CosmeticFollowingLine { } } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "misc.cosmeticConfig", "misc.cosmetic") + event.move(9, "misc.cosmeticConfig.followingLineConfig", "misc.cosmetic.followingLine") + event.move(9, "misc.cosmeticConfig.arrowTrailConfig", "misc.cosmetic.arrowTrail") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt index 99f5910ea..d516695a2 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt @@ -1,7 +1,7 @@ package at.hannibal2.skyhanni.features.garden.visitor import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.config.features.GardenConfig.VisitorConfig.VisitorBlockBehaviour +import at.hannibal2.skyhanni.config.features.garden.visitor.VisitorConfig.VisitorBlockBehaviour import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.PacketEvent import at.hannibal2.skyhanni.events.RepositoryReloadEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt index 5d6e7ee26..510e4f3b7 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt @@ -1,13 +1,13 @@ package at.hannibal2.skyhanni.features.garden.visitor -import at.hannibal2.skyhanni.config.features.GardenConfig +import at.hannibal2.skyhanni.config.features.garden.GardenConfig import at.hannibal2.skyhanni.utils.ItemUtils class VisitorTooltipParser { class ParsedTooltip( - val itemsNeeded: MutableMap<String, Int>, - val rewards: MutableMap<String, Int>, - val config: GardenConfig, + val itemsNeeded: MutableMap<String, Int>, + val rewards: MutableMap<String, Int>, + val config: GardenConfig, ) enum class ParsingSection { @@ -39,4 +39,4 @@ class VisitorTooltipParser { return parsedData; } } -}
\ No newline at end of file +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt index 4dfebc099..fe9d55176 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/CurrentPetDisplay.kt @@ -69,11 +69,12 @@ class CurrentPetDisplay { if (!SkyHanniMod.feature.misc.pets.display) return val storage = ProfileStorageData.profileSpecific ?: return - SkyHanniMod.feature.misc.petDisplayPos.renderString(storage.currentPet, posLabel = "Current Pet") + SkyHanniMod.feature.misc.pets.displayPos.renderString(storage.currentPet, posLabel = "Current Pet") } @SubscribeEvent fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { event.move(3, "misc.petDisplay", "misc.pets.display") + event.move(9, "misc.petDisplayPos", "misc.pets.displayPos") } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/RiftAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/RiftAPI.kt index 4fbbed3d3..507dc5953 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/RiftAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/RiftAPI.kt @@ -1,7 +1,7 @@ package at.hannibal2.skyhanni.features.rift import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.config.features.RiftConfig +import at.hannibal2.skyhanni.config.features.rift.RiftConfig import at.hannibal2.skyhanni.data.IslandType import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.LorenzUtils diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/colosseum/BlobbercystsHighlight.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/colosseum/BlobbercystsHighlight.kt index ceb8b5931..9fad9e999 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/colosseum/BlobbercystsHighlight.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/colosseum/BlobbercystsHighlight.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.rift.area.colosseum import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent import at.hannibal2.skyhanni.events.withAlpha @@ -15,7 +16,7 @@ import java.awt.Color class BlobbercystsHighlight { - private val config get() = SkyHanniMod.feature.rift.area.colosseumConfig + private val config get() = SkyHanniMod.feature.rift.area.colosseum private val entityList = mutableListOf<EntityOtherPlayerMP>() private val blobberName = "Blobbercyst " @@ -47,4 +48,9 @@ class BlobbercystsHighlight { } fun isEnabled() = RiftAPI.inRift() && config.highlightBlobbercysts && LorenzUtils.skyBlockArea == "Colosseum" -}
\ No newline at end of file + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.colosseumConfig", "rift.area.colosseum") + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftAgaricusCap.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftAgaricusCap.kt index fb37bfabe..5ef56976f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftAgaricusCap.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftAgaricusCap.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.dreadfarm +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.features.rift.RiftAPI @@ -14,7 +15,7 @@ import at.hannibal2.skyhanni.utils.TimeUtils import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftAgaricusCap { - private val config get() = RiftAPI.config.area.dreadfarmConfig + private val config get() = RiftAPI.config.area.dreadfarm private var startTime = 0L private var location: LorenzVec? = null @@ -71,4 +72,9 @@ class RiftAgaricusCap { } fun isEnabled() = RiftAPI.inRift() && config.agaricusCap + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.dreadfarmConfig", "rift.area.dreadfarm") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftWiltedBerberisHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftWiltedBerberisHelper.kt index 0058971ef..b39c6d004 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftWiltedBerberisHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/RiftWiltedBerberisHelper.kt @@ -21,7 +21,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import java.awt.Color class RiftWiltedBerberisHelper { - private val config get() = RiftAPI.config.area.dreadfarmConfig.wiltedBerberis + private val config get() = RiftAPI.config.area.dreadfarm.wiltedBerberis private var isOnFarmland = false private var hasFarmingToolInHand = false private var list = listOf<WiltedBerberis>() diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/VoltHighlighter.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/VoltHighlighter.kt index f7f14a55d..6cf37e285 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/VoltHighlighter.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/dreadfarm/VoltHighlighter.kt @@ -25,7 +25,7 @@ import kotlin.time.Duration.Companion.seconds class VoltHighlighter { - private val config get() = RiftAPI.config.area.dreadfarmConfig.voltCrux + private val config get() = RiftAPI.config.area.dreadfarm.voltCrux private val LIGHTNING_DISTANCE = 7F private val ARMOR_SLOT_HEAD = 3 @@ -116,4 +116,4 @@ class VoltHighlighter { val helmet = entity.getCurrentArmor(ARMOR_SLOT_HEAD) ?: return VoltState.NO_VOLT return getVoltState(helmet) } -}
\ No newline at end of file +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt index 0b314d7e9..1257f8db4 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveDefenseBlocks.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.livingcave +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent @@ -22,7 +23,7 @@ import net.minecraft.util.EnumParticleTypes import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class LivingCaveDefenseBlocks { - private val config get() = RiftAPI.config.area.livingCaveConfig.defenseBlockConfig + private val config get() = RiftAPI.config.area.livingCave.defenseBlockConfig private var movingBlocks = mapOf<DefenseBlock, Long>() private var staticBlocks = emptyList<DefenseBlock>() @@ -172,4 +173,9 @@ class LivingCaveDefenseBlocks { val color get() = config.color.get().toChromaColor() fun isEnabled() = RiftAPI.inRift() && config.enabled && RiftAPI.inLivingCave() + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.livingCaveConfig", "rift.area.livingCave") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveLivingMetalHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveLivingMetalHelper.kt index 73a007a4a..cabc094db 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveLivingMetalHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingCaveLivingMetalHelper.kt @@ -14,7 +14,7 @@ import at.hannibal2.skyhanni.utils.LorenzVec import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class LivingCaveLivingMetalHelper { - private val config get() = RiftAPI.config.area.livingCaveConfig.livingCaveLivingMetalConfig + private val config get() = RiftAPI.config.area.livingCave.livingCaveLivingMetalConfig private var lastClicked: LorenzVec? = null private var pair: Pair<LorenzVec, LorenzVec>? = null private var startTime = 0L diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt index 025803ce1..1deb2b64c 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/livingcave/LivingMetalSuitProgress.kt @@ -14,7 +14,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class LivingMetalSuitProgress { - private val config get() = RiftAPI.config.area.livingCaveConfig.livingMetalSuitProgress + private val config get() = RiftAPI.config.area.livingCave.livingMetalSuitProgress private var display = emptyList<List<Any>>() private var progressMap = mapOf<ItemStack, Double?>() @@ -92,4 +92,4 @@ class LivingMetalSuitProgress { } fun isEnabled() = RiftAPI.inRift() && config.enabled -}
\ No newline at end of file +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/DanceRoomHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/DanceRoomHelper.kt index ec503bcfd..524e1b354 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/DanceRoomHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/DanceRoomHelper.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.mirrorverse +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzTickEvent @@ -25,7 +26,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object DanceRoomHelper { private var display = emptyList<String>() - private val config get() = RiftAPI.config.area.mirrorVerseConfig.danceRoomHelper + private val config get() = RiftAPI.config.area.mirrorverse.danceRoomHelper private var index = 0 private var found = false private val danceRoom = AxisAlignedBB(-260.0, 32.0, -110.0, -267.0, 40.0, -102.0) @@ -179,4 +180,9 @@ object DanceRoomHelper { } fun isEnabled() = RiftAPI.inRift() && config.enabled + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.mirrorVerseConfig", "rift.area.mirrorverse") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftLavaMazeParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftLavaMazeParkour.kt index 12bebc3ee..efaf77163 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftLavaMazeParkour.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftLavaMazeParkour.kt @@ -13,7 +13,7 @@ import at.hannibal2.skyhanni.utils.jsonobjects.ParkourJson import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftLavaMazeParkour { - private val config get() = RiftAPI.config.area.mirrorVerseConfig.lavaMazeConfig + private val config get() = RiftAPI.config.area.mirrorverse.lavaMazeConfig private var parkourHelper: ParkourHelper? = null @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftUpsideDownParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftUpsideDownParkour.kt index 136c956cf..18a09709d 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftUpsideDownParkour.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/RiftUpsideDownParkour.kt @@ -13,7 +13,7 @@ import at.hannibal2.skyhanni.utils.jsonobjects.ParkourJson import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftUpsideDownParkour { - private val config get() = RiftAPI.config.area.mirrorVerseConfig.upsideDownParkour + private val config get() = RiftAPI.config.area.mirrorverse.upsideDownParkour private var parkourHelper: ParkourHelper? = null @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/TubulatorParkour.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/TubulatorParkour.kt index fcd880b3d..567f2bf2e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/TubulatorParkour.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/mirrorverse/TubulatorParkour.kt @@ -14,7 +14,7 @@ import net.minecraft.util.AxisAlignedBB import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class TubulatorParkour { - private val config get() = RiftAPI.config.area.mirrorVerseConfig.tubulatorConfig + private val config get() = RiftAPI.config.area.mirrorverse.tubulatorConfig private var parkourHelper: ParkourHelper? = null private val puzzleRoom = AxisAlignedBB(-298.0, 0.0, -112.0, -309.0, 63.0, -101.0) diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt index f6a4a607b..5a79d7c7d 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/stillgorechateau/RiftBloodEffigies.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.stillgorechateau +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent @@ -23,7 +24,7 @@ import net.minecraft.entity.item.EntityArmorStand import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftBloodEffigies { - private val config get() = RiftAPI.config.area.stillgoreChateauConfig.bloodEffigies + private val config get() = RiftAPI.config.area.stillgoreChateau.bloodEffigies private var locations: List<LorenzVec> = emptyList() private var effigiesTimes = mapOf( 0 to -1L, @@ -142,4 +143,9 @@ class RiftBloodEffigies { } fun isEnabled() = RiftAPI.inRift() && RiftAPI.inStillgoreChateau() && config.enabled + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.stillgoreChateauConfig", "rift.area.stillgoreChateau") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/KloonHacking.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/KloonHacking.kt index aa598c10b..57eb0ead2 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/KloonHacking.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/westvillage/KloonHacking.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.westvillage +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.ProfileStorageData import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent @@ -23,7 +24,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class KloonHacking { - private val config get() = RiftAPI.config.area.westVillageConfig.hacking + private val config get() = RiftAPI.config.area.westVillage.hacking // TODO USE SH-REPO val pattern = "You've set the color of this terminal to (?<colour>.*)!".toPattern() @@ -162,4 +163,9 @@ class KloonHacking { nearestTerminal = closestTerminal return closestTerminal } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.westVillageConfig", "rift.area.westVillage") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/RiftLarva.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftLarva.kt index c68e6d2f5..7c994ea1b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/RiftLarva.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftLarva.kt @@ -1,4 +1,4 @@ -package at.hannibal2.skyhanni.features.rift.area +package at.hannibal2.skyhanni.features.rift.area.wyldwoods import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.withAlpha @@ -13,7 +13,7 @@ import net.minecraft.entity.item.EntityArmorStand import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftLarva { - private val config get() = RiftAPI.config.area.wyldWoodsConfig.larvas + private val config get() = RiftAPI.config.area.wyldWoods.larvas private var hasHookInHand = false val larvaSkullTexture = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTgzYjMwZTlkMTM1YjA1MTkwZWVhMmMzYWM2MWUyYWI1NWEyZDgxZTFhNThkYmIyNjk4M2ExNDA4MjY2NCJ9fX0=" diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftOdonata.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftOdonata.kt index ded7de44c..1093a8a69 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftOdonata.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/RiftOdonata.kt @@ -14,7 +14,7 @@ import net.minecraft.entity.item.EntityArmorStand import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftOdonata { - private val config get() = RiftAPI.config.area.wyldWoodsConfig.odonata + private val config get() = RiftAPI.config.area.wyldWoods.odonata private var hasBottleInHand = false val odonataSkullTexture = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWZkODA2ZGVmZGZkZjU5YjFmMjYwOWM4ZWUzNjQ2NjZkZTY2MTI3YTYyMzQxNWI1NDMwYzkzNThjNjAxZWY3YyJ9fX0=" diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/ShyCruxWarnings.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/ShyCruxWarnings.kt index 7ac4d1ed6..2b21d9dad 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/ShyCruxWarnings.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/area/wyldwoods/ShyCruxWarnings.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.area.wyldwoods +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.features.rift.RiftAPI import at.hannibal2.skyhanni.utils.EntityUtils @@ -9,7 +10,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration.Companion.milliseconds class ShyCruxWarnings { - private val config get() = RiftAPI.config.area.wyldWoodsConfig + private val config get() = RiftAPI.config.area.wyldWoods private val shyNames = arrayOf("I'm ugly! :(", "Eek!", "Don't look at me!", "Look away!") @SubscribeEvent @@ -25,4 +26,9 @@ class ShyCruxWarnings { LorenzUtils.sendTitle("§eLook away!", 150.milliseconds) } } -}
\ No newline at end of file + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.wyldWoodsConfig", "rift.area.wyldWoods") + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/motes/RiftMotesOrb.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/motes/RiftMotesOrb.kt index aca97f9e0..f62ad2c7a 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/motes/RiftMotesOrb.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/motes/RiftMotesOrb.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.rift.everywhere.motes +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent @@ -16,7 +17,7 @@ import net.minecraft.util.EnumParticleTypes import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class RiftMotesOrb { - private val config get() = RiftAPI.config.motesOrbsConfig + private val config get() = RiftAPI.config.motesOrbs // TODO USE SH-REPO private val pattern = "§5§lORB! §r§dPicked up §r§5+.* Motes§r§d.*".toPattern() @@ -90,4 +91,9 @@ class RiftMotesOrb { } fun isEnabled() = RiftAPI.inRift() && config.enabled + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "rift.area.motesOrbsConfig", "rift.area.motesOrbs") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/VampireSlayerFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/VampireSlayerFeatures.kt index a60d1e51a..59ca5b075 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/slayer/VampireSlayerFeatures.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/VampireSlayerFeatures.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.slayer import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.ClickType import at.hannibal2.skyhanni.events.EntityClickEvent import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent @@ -49,7 +50,7 @@ import kotlin.time.Duration.Companion.milliseconds object VampireSlayerFeatures { - private val config get() = SkyHanniMod.feature.slayer.vampireSlayerConfig + private val config get() = SkyHanniMod.feature.slayer.vampire private val configOwnBoss get() = config.ownBoss private val configOtherBoss get() = config.othersBoss private val configCoopBoss get() = config.coopBoss @@ -378,5 +379,10 @@ object VampireSlayerFeatures { } } + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(9, "slayer.vampireSlayerConfig", "slayer.vampire") + } + fun isEnabled() = RiftAPI.inRift() && RiftAPI.inStillgoreChateau() } diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt index ae76d4c9b..42c50f00a 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/enderman/EndermanSlayerFeatures.kt @@ -40,7 +40,7 @@ import kotlin.time.Duration.Companion.seconds class EndermanSlayerFeatures { private val config get() = SkyHanniMod.feature.slayer.endermen - private val beaconConfig get() = config.endermanBeaconConfig + private val beaconConfig get() = config.beacon private val endermenWithBeacons = mutableListOf<EntityEnderman>() private var flyingBeacons = listOf<EntityArmorStand>() private val nukekubiSkulls = mutableListOf<EntityArmorStand>() @@ -227,5 +227,6 @@ class EndermanSlayerFeatures { event.move(3, "slayer.endermanBeaconConfig.lneColor", "slayer.endermen.endermanBeaconConfig.lineColor") event.move(3, "slayer.endermanBeaconConfig.lineWidth", "slayer.endermen.endermanBeaconConfig.lineWidth") event.move(3, "slayer.endermanHighlightNukekebi", "slayer.endermen.highlightNukekebi") + event.move(9, "slayer.enderman.endermanBeaconConfig", "slayer.endermen.beacon") } } |