diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-14 12:06:07 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-14 12:06:07 +0200 |
| commit | d1a99b2a9a9859c922002771c3d8229fab2ecb8d (patch) | |
| tree | dbbe5b208e6871378a10868d1206d1d78beeb950 /src/main/java/at/hannibal2/skyhanni/config/Features.java | |
| parent | f20b096222ebbffd7decec2fecf1416002644865 (diff) | |
| download | SkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.tar.gz SkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.tar.bz2 SkyHanni-d1a99b2a9a9859c922002771c3d8229fab2ecb8d.zip | |
renamed mod to SkyHanni
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/Features.java')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/Features.java | 274 |
1 files changed, 274 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java new file mode 100644 index 000000000..90027ce4e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java @@ -0,0 +1,274 @@ +package at.hannibal2.skyhanni.config; + +import at.hannibal2.skyhanni.config.core.GuiElement; +import at.hannibal2.skyhanni.config.core.GuiScreenElementWrapper; +import at.hannibal2.skyhanni.config.core.config.Position; +import at.hannibal2.skyhanni.config.core.config.annotations.*; +import at.hannibal2.skyhanni.config.core.config.gui.GuiPositionEditor; +import at.hannibal2.skyhanni.SkyHanniMod; +import at.hannibal2.skyhanni.config.config.ConfigEditor; +import com.google.gson.annotations.Expose; +import net.minecraft.client.Minecraft; + +public class Features { + + private void editOverlay(String activeConfig, int width, int height, Position position) { + Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {}, () -> {}, () -> SkyHanniMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(SkyHanniMod.feature, activeConfig)))); + } + + public void executeRunnable(String runnableId) { + String activeConfigCategory = null; + if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) { + GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen; + GuiElement element = wrapper.element; + if (element instanceof ConfigEditor) { + activeConfigCategory = ((ConfigEditor) element).getSelectedCategoryName(); + } + } + + if (runnableId.equals("petDisplay")) { + editOverlay(activeConfigCategory, 200, 16, misc.petDisplayPos); + return; + } + + if (runnableId.equals("testPos")) { + editOverlay(activeConfigCategory, 200, 16, debug.testPos); + return; + } + + if (runnableId.equals("dungeonMilestoneDisplay")) { + editOverlay(activeConfigCategory, 200, 16, dungeon.milestoneDisplayPos); + return; + } + + if (runnableId.equals("dungeonDeathCounter")) { + editOverlay(activeConfigCategory, 200, 16, dungeon.deathCounterDisplay); + return; + } + } + + @Expose + @Category(name = "Chat", desc = "Chat related features.") + public Chat chat = new Chat(); + + @Expose + @Category(name = "Dungeon", desc = "Features that change the catacombs dungeon experience.") + public Dungeon dungeon = new Dungeon(); + + @Expose + @Category(name = "Items", desc = "Changing the behavior around items and the inventory.") + public Items items = new Items(); + + @Expose + @Category(name = "Bazaar", desc = "Bazaar settings.") + public Bazaar bazaar = new Bazaar(); + + @Expose + @Category(name = "Misc", desc = "Settings without a category.") + public Misc misc = new Misc(); + + @Expose + @Category(name = "Debug", desc = "Debug and test stuff.") + public Debug debug = new Debug(); + + public static class Chat { + + @Expose + @ConfigOption(name = "Chat Filter Types", desc = "") + @ConfigEditorAccordion(id = 1) + public boolean filterTypes = false; + + @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 + @ConfigAccordionId(id = 1) + public boolean hypixelHub = false; + + @Expose + @ConfigOption(name = "Empty", desc = "Hide all the empty messages from the chat.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean empty = false; + + @Expose + @ConfigOption(name = "Warping", desc = "Block 'sending request to join ..' and 'warping ..' messages.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean warping = false; + + @Expose + @ConfigOption(name = "Welcome", desc = "Hide the 'welcome to skyblock' message.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean welcome = false; + + //TODO remove + @Expose + @ConfigOption(name = "Others", desc = "Hide other annoying messages.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean others = false; + + @Expose + @ConfigOption(name = "Player Messages", desc = "Add a fancy new chat format for player messages.") + @ConfigEditorBoolean + public boolean playerMessages = false; + + @Expose + @ConfigOption(name = "Dungeon Filter", desc = "Hide annoying messages inside dungeon.") + @ConfigEditorBoolean + public boolean dungeonMessages = false; + + @Expose + @ConfigOption(name = "Dungeon Boss Messages", desc = "Hide messages from watcher and bosses inside dungeon.") + @ConfigEditorBoolean + public boolean dungeonBossMessages = false; + } + + public static class Dungeon { + + @Expose + @ConfigOption(name = "Clicked Blocks", desc = "Highlight the following blocks when clicked in dungeon: Lever, Chest, Wither Essence") + @ConfigEditorBoolean + public boolean highlightClickedBlocks = false; + + @Expose + @ConfigOption(name = "Boss Damage Indicator", desc = "Show the missing health of a boss in the dungeon and the cooldown time until the boss becomes attackable.") + @ConfigEditorBoolean + public boolean bossDamageIndicator = false; + + @Expose + @ConfigOption(name = "Milestone Display", desc = "Show the current milestone inside Dungeons.") + @ConfigEditorBoolean + public boolean showMilestoneDisplay = false; + + @Expose + @ConfigOption(name = "Milestone Display Position", desc = "") + @ConfigEditorButton(runnableId = "dungeonMilestoneDisplay", buttonText = "Edit") + public Position milestoneDisplayPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Death Counter", desc = "Display the total amount of deaths in the current dungeon.") + @ConfigEditorBoolean + public boolean deathCounter = false; + + @Expose + @ConfigOption(name = "Death Counter Position", desc = "") + @ConfigEditorButton(runnableId = "dungeonDeathCounter", buttonText = "Edit") + public Position deathCounterDisplay = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Clean End", desc = "Hide entities and particles after the boss in Floor 1 - 6 has died.") + @ConfigEditorBoolean + public boolean cleanEnd = 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 cleanEndF3IgnoreGuardians = false; + } + + public static class Items { + + @Expose + @ConfigOption(name = "Not Clickable Items", desc = "Hide items that are not clickable in " + "the current inventory: ah, bz, accessory bag, etc") + @ConfigEditorBoolean + public boolean hideNotClickableItems = false; + + @Expose + @ConfigOption(name = "Item number as stack size", desc = "") + @ConfigEditorAccordion(id = 2) + public boolean filterTypes = false; + + @Expose + @ConfigOption(name = "Master Star Number", desc = "Show the Tier of the Master Star.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayMasterStarNumber = false; + + @Expose + @ConfigOption(name = "Master Skull Number", desc = "Show the tier of the Master Skull accessory.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayMasterSkullNumber = false; + + @Expose + @ConfigOption(name = "Dungeon Head Floor", desc = "Show the correct floor for golden and diamond heads.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayDungeonHeadFloor = false; + + @Expose + @ConfigOption(name = "New Year Cake", desc = "Show the Number of the Year of New Year Cakes.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayNewYearCakeNumber = false; + + @Expose + @ConfigOption(name = "Pet Level", desc = "Show the level of the pet when not maxed.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayPetLevel = false; + + @Expose + @ConfigOption(name = "Sack Name", desc = "Show an abbreviation of the Sack name.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displaySackName = false; + + @Expose + @ConfigOption(name = "Minion Tier", desc = "Show the Minion Tier over Items.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 2) + public boolean displayMinionTier = false; + + @Expose + @ConfigOption(name = "Ability Cooldown", desc = "Show the cooldown of item abilities.") + @ConfigEditorBoolean + public boolean itemAbilityCooldown = false; + } + + public static class Bazaar { + + @Expose + @ConfigOption(name = "Order Helper", desc = "Show visual hints inside the Bazaar Manage Order view when items are ready to pickup or outbid.") + @ConfigEditorBoolean + public boolean orderHelper = false; + } + + public static class Misc { + + @Expose + @ConfigOption(name = "Pet Display", desc = "Show the currently active pet.") + @ConfigEditorBoolean + public boolean petDisplay = false; + + @Expose + @ConfigOption(name = "Pet Display Position", desc = "") + @ConfigEditorButton(runnableId = "petDisplay", buttonText = "Edit") + public Position petDisplayPos = new Position(10, 10, false, true); + + @Expose + @ConfigOption(name = "Exp Bottles", desc = "Hides all the experience bottles lying on the ground.") + @ConfigEditorBoolean + public boolean hideExpBottles = false; + + @Expose + @ConfigOption(name = "Config Button", desc = "Add a button to the pause menu to configure SkyHanni.") + @ConfigEditorBoolean + public boolean configButtonOnPause = true; + } + + public static class Debug { + + @Expose + @ConfigOption(name = "Enable Test", desc = "Enable Test logic") + @ConfigEditorBoolean + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Test Location", desc = "") + @ConfigEditorButton(runnableId = "testPos", buttonText = "Edit") + public Position testPos = new Position(10, 10, false, true); + } +} |
