From 290676ba3954d653bc1cbc0630d2cde90a3249f4 Mon Sep 17 00:00:00 2001 From: David Cole <40234707+DavidArthurCole@users.noreply.github.com> Date: Sun, 25 Aug 2024 20:42:33 -0400 Subject: Feature + Fix: Hoppity Event Summarization (#2311) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../skyhanni/config/features/dev/DebugConfig.java | 5 + .../config/features/event/EventConfig.java | 1 + .../config/features/event/HoppityEggsConfig.java | 192 -------------------- .../features/event/hoppity/HoppityEggsConfig.java | 198 +++++++++++++++++++++ .../event/hoppity/HoppityEventSummaryConfig.java | 73 ++++++++ 5 files changed, 277 insertions(+), 192 deletions(-) delete mode 100644 src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java create mode 100644 src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java create mode 100644 src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEventSummaryConfig.java (limited to 'src/main/java/at/hannibal2/skyhanni/config/features') 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 index d6a0eb064..56a17dfb9 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java @@ -157,6 +157,11 @@ public class DebugConfig { @ConfigEditorBoolean public boolean neverFunnyTime = false; + @Expose + @ConfigOption(name = "Always Hoppity's", desc = "Always act as if Hoppity's Hunt is active.") + @ConfigEditorBoolean + public boolean alwaysHoppitys = false; + // Does not have a config element! @Expose public Position trackSoundPosition = new Position(0, 0); 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 index 251ce51ba..57d3e0699 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java @@ -2,6 +2,7 @@ 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.hoppity.HoppityEggsConfig; import at.hannibal2.skyhanni.config.features.event.waypoints.LobbyWaypointsConfig; import at.hannibal2.skyhanni.config.features.event.winter.WinterConfig; import com.google.gson.annotations.Expose; diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java deleted file mode 100644 index 386aa7021..000000000 --- a/src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java +++ /dev/null @@ -1,192 +0,0 @@ -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.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean; -import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorColour; -import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown; -import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorSlider; -import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorText; -import io.github.notenoughupdates.moulconfig.annotations.ConfigLink; -import io.github.notenoughupdates.moulconfig.annotations.ConfigOption; - -public class HoppityEggsConfig { - - @Expose - @ConfigOption(name = "Hoppity Waypoints", desc = "Toggle guess waypoints for Hoppity's Hunt.") - @ConfigEditorBoolean - @FeatureToggle - public boolean waypoints = true; - - @Expose - @ConfigOption( - name = "Show Waypoints Immediately", - desc = "Show an estimated waypoint immediately after clicking.\n" + - "§cThis might cause issues with other particle sources." - ) - @ConfigEditorBoolean - public boolean waypointsImmediately = false; - - @Expose - @ConfigOption(name = "Color", desc = "Color of the waypoint.") - @ConfigEditorColour - public String waypointColor = "0:53:46:224:73"; - - @Expose - @ConfigOption(name = "Show Line", desc = "Show a line to the waypoint.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showLine = false; - - @Expose - @ConfigOption(name = "Show All Waypoints", desc = "Show all possible egg waypoints for the current lobby. §e" + - "Only works when you don't have an Egglocator in your inventory.") - @ConfigEditorBoolean - public boolean showAllWaypoints = false; - - @Expose - @ConfigOption(name = "Hide Duplicate Waypoints", desc = "Hide egg waypoints you have already found.\n" + - "§eOnly works when you don't have an Egglocator in your inventory.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hideDuplicateWaypoints = false; - - @Expose - @ConfigOption(name = "Mark Duplicate Locations", desc = "Marks egg location waypoints which you have already found in red.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightDuplicateEggLocations = false; - - @Expose - @ConfigOption(name = "Mark Nearby Duplicates", desc = "Always show duplicate egg locations when nearby.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showNearbyDuplicateEggLocations = false; - - @Expose - @ConfigOption(name = "Load from NEU PV", desc = "Load Hoppity Egg Location data from API when opening the NEU Profile Viewer.") - @ConfigEditorBoolean - @FeatureToggle - public boolean loadFromNeuPv = true; - - @Expose - @ConfigOption(name = "Show Unclaimed Eggs", desc = "Display which eggs haven't been found in the last SkyBlock day.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showClaimedEggs = false; - - @Expose - @ConfigOption(name = "Show Collected Locations", desc = "Show the number of found egg locations on this island.\n" + - "§eThis is not retroactive and may not be fully synced with Hypixel's count.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showCollectedLocationCount = false; - - @Expose - @ConfigOption(name = "Warn When Unclaimed", desc = "Warn when all three eggs are ready to be found.") - @ConfigEditorBoolean - @FeatureToggle - public boolean warnUnclaimedEggs = false; - - @Expose - @ConfigOption(name = "Click to Warp", desc = "Make the eggs ready chat message & unclaimed timer display clickable to warp you to an island.") - @ConfigEditorBoolean - public boolean warpUnclaimedEggs = false; - - @Expose - @ConfigOption(name = "Warp Destination", desc = "A custom island to warp to in the above option.") - @ConfigEditorText - public String warpDestination = "nucleus"; - - @Expose - @ConfigOption(name = "Show While Busy", desc = "Show while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).") - @ConfigEditorBoolean - @FeatureToggle - public boolean showWhileBusy = false; - - @Expose - @ConfigOption(name = "Warn While Busy", desc = "Warn while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).") - @ConfigEditorBoolean - @FeatureToggle - public boolean warnWhileBusy = false; - - @Expose - @ConfigOption(name = "Show Outside SkyBlock", desc = "Show on Hypixel even when not playing SkyBlock.") - @ConfigEditorBoolean - @FeatureToggle - public boolean showOutsideSkyblock = false; - - @Expose - @ConfigOption(name = "Shared Hoppity Waypoints", desc = "Enable being able to share and receive egg waypoints in your lobby.") - @ConfigEditorBoolean - @FeatureToggle - public boolean sharedWaypoints = true; - - @Expose - @ConfigOption(name = "Adjust player opacity", desc = "Adjust the opacity of players near shared & guessed egg waypoints. (in %)") - @ConfigEditorSlider(minValue = 0, maxValue = 100, minStep = 1) - public int playerOpacity = 40; - - @Expose - @ConfigLink(owner = HoppityEggsConfig.class, field = "showClaimedEggs") - public Position position = new Position(200, 120, false, true); - - @Expose - @ConfigOption(name = "Highlight Hoppity Shop", desc = "Highlight items that haven't been bought from the Hoppity shop yet.") - @ConfigEditorBoolean - @FeatureToggle - public boolean highlightHoppityShop = true; - - @Expose - @ConfigOption(name = "Hoppity Shop Reminder", desc = "Remind you to open the Hoppity Shop each year.") - @ConfigEditorBoolean - @FeatureToggle - public boolean hoppityShopReminder = true; - - @Expose - @ConfigOption(name = "Time in Chat", desc = "When the Egglocator can't find an egg, show the time until the next Hoppity event or egg spawn.") - @ConfigEditorBoolean - @FeatureToggle - public boolean timeInChat = true; - - @Expose - @ConfigOption(name = "Compact Chat", desc = "Compact chat events when finding a Hoppity Egg.") - @ConfigEditorBoolean - @FeatureToggle - public boolean compactChat = false; - - @Expose - @ConfigOption(name = "Compacted Rarity", desc = "Show rarity of found rabbit in Compacted chat messages.") - @ConfigEditorDropdown - public CompactRarityTypes rarityInCompact = CompactRarityTypes.NEW; - - public enum CompactRarityTypes { - NONE("Neither"), - NEW("New Rabbits"), - DUPE("Duplicate Rabbits"), - BOTH("New & Duplicate Rabbits"), - ; - - private final String name; - - CompactRarityTypes(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - } - - @Expose - @ConfigOption( - name = "Rabbit Pet Warning", - desc = "Warn when using the Egglocator without a §d§lMythic Rabbit Pet §7equipped. " + - "§eOnly enable this setting when you own a mythic Rabbit pet." - ) - @ConfigEditorBoolean - @FeatureToggle - public boolean petWarning = false; -} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java new file mode 100644 index 000000000..50a5731a5 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java @@ -0,0 +1,198 @@ +package at.hannibal2.skyhanni.config.features.event.hoppity; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import at.hannibal2.skyhanni.config.core.config.Position; +import com.google.gson.annotations.Expose; +import io.github.notenoughupdates.moulconfig.annotations.Accordion; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorColour; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorSlider; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorText; +import io.github.notenoughupdates.moulconfig.annotations.ConfigLink; +import io.github.notenoughupdates.moulconfig.annotations.ConfigOption; + +public class HoppityEggsConfig { + + @Expose + @ConfigOption(name = "Event Summary", desc = "") + @Accordion + public HoppityEventSummaryConfig eventSummary = new HoppityEventSummaryConfig(); + + @Expose + @ConfigOption(name = "Hoppity Waypoints", desc = "Toggle guess waypoints for Hoppity's Hunt.") + @ConfigEditorBoolean + @FeatureToggle + public boolean waypoints = true; + + @Expose + @ConfigOption( + name = "Show Waypoints Immediately", + desc = "Show an estimated waypoint immediately after clicking.\n" + + "§cThis might cause issues with other particle sources." + ) + @ConfigEditorBoolean + public boolean waypointsImmediately = false; + + @Expose + @ConfigOption(name = "Color", desc = "Color of the waypoint.") + @ConfigEditorColour + public String waypointColor = "0:53:46:224:73"; + + @Expose + @ConfigOption(name = "Show Line", desc = "Show a line to the waypoint.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showLine = false; + + @Expose + @ConfigOption(name = "Show All Waypoints", desc = "Show all possible egg waypoints for the current lobby. §e" + + "Only works when you don't have an Egglocator in your inventory.") + @ConfigEditorBoolean + public boolean showAllWaypoints = false; + + @Expose + @ConfigOption(name = "Hide Duplicate Waypoints", desc = "Hide egg waypoints you have already found.\n" + + "§eOnly works when you don't have an Egglocator in your inventory.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hideDuplicateWaypoints = false; + + @Expose + @ConfigOption(name = "Mark Duplicate Locations", desc = "Marks egg location waypoints which you have already found in red.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightDuplicateEggLocations = false; + + @Expose + @ConfigOption(name = "Mark Nearby Duplicates", desc = "Always show duplicate egg locations when nearby.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showNearbyDuplicateEggLocations = false; + + @Expose + @ConfigOption(name = "Load from NEU PV", desc = "Load Hoppity Egg Location data from API when opening the NEU Profile Viewer.") + @ConfigEditorBoolean + @FeatureToggle + public boolean loadFromNeuPv = true; + + @Expose + @ConfigOption(name = "Show Unclaimed Eggs", desc = "Display which eggs haven't been found in the last SkyBlock day.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showClaimedEggs = false; + + @Expose + @ConfigOption(name = "Show Collected Locations", desc = "Show the number of found egg locations on this island.\n" + + "§eThis is not retroactive and may not be fully synced with Hypixel's count.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showCollectedLocationCount = false; + + @Expose + @ConfigOption(name = "Warn When Unclaimed", desc = "Warn when all three eggs are ready to be found.") + @ConfigEditorBoolean + @FeatureToggle + public boolean warnUnclaimedEggs = false; + + @Expose + @ConfigOption(name = "Click to Warp", desc = "Make the eggs ready chat message & unclaimed timer display clickable to warp you to an island.") + @ConfigEditorBoolean + public boolean warpUnclaimedEggs = false; + + @Expose + @ConfigOption(name = "Warp Destination", desc = "A custom island to warp to in the above option.") + @ConfigEditorText + public String warpDestination = "nucleus"; + + @Expose + @ConfigOption(name = "Show While Busy", desc = "Show while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).") + @ConfigEditorBoolean + @FeatureToggle + public boolean showWhileBusy = false; + + @Expose + @ConfigOption(name = "Warn While Busy", desc = "Warn while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).") + @ConfigEditorBoolean + @FeatureToggle + public boolean warnWhileBusy = false; + + @Expose + @ConfigOption(name = "Show Outside SkyBlock", desc = "Show on Hypixel even when not playing SkyBlock.") + @ConfigEditorBoolean + @FeatureToggle + public boolean showOutsideSkyblock = false; + + @Expose + @ConfigOption(name = "Shared Hoppity Waypoints", desc = "Enable being able to share and receive egg waypoints in your lobby.") + @ConfigEditorBoolean + @FeatureToggle + public boolean sharedWaypoints = true; + + @Expose + @ConfigOption(name = "Adjust player opacity", desc = "Adjust the opacity of players near shared & guessed egg waypoints. (in %)") + @ConfigEditorSlider(minValue = 0, maxValue = 100, minStep = 1) + public int playerOpacity = 40; + + @Expose + @ConfigLink(owner = HoppityEggsConfig.class, field = "showClaimedEggs") + public Position position = new Position(200, 120, false, true); + + @Expose + @ConfigOption(name = "Highlight Hoppity Shop", desc = "Highlight items that haven't been bought from the Hoppity shop yet.") + @ConfigEditorBoolean + @FeatureToggle + public boolean highlightHoppityShop = true; + + @Expose + @ConfigOption(name = "Hoppity Shop Reminder", desc = "Remind you to open the Hoppity Shop each year.") + @ConfigEditorBoolean + @FeatureToggle + public boolean hoppityShopReminder = true; + + @Expose + @ConfigOption(name = "Time in Chat", desc = "When the Egglocator can't find an egg, show the time until the next Hoppity event or egg spawn.") + @ConfigEditorBoolean + @FeatureToggle + public boolean timeInChat = true; + + @Expose + @ConfigOption(name = "Compact Chat", desc = "Compact chat events when finding a Hoppity Egg.") + @ConfigEditorBoolean + @FeatureToggle + public boolean compactChat = false; + + @Expose + @ConfigOption(name = "Compacted Rarity", desc = "Show rarity of found rabbit in Compacted chat messages.") + @ConfigEditorDropdown + public CompactRarityTypes rarityInCompact = CompactRarityTypes.NEW; + + public enum CompactRarityTypes { + NONE("Neither"), + NEW("New Rabbits"), + DUPE("Duplicate Rabbits"), + BOTH("New & Duplicate Rabbits"), + ; + + private final String name; + + CompactRarityTypes(String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } + } + + @Expose + @ConfigOption( + name = "Rabbit Pet Warning", + desc = "Warn when using the Egglocator without a §d§lMythic Rabbit Pet §7equipped. " + + "§eOnly enable this setting when you own a mythic Rabbit pet." + ) + @ConfigEditorBoolean + @FeatureToggle + public boolean petWarning = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEventSummaryConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEventSummaryConfig.java new file mode 100644 index 000000000..618b15f7f --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEventSummaryConfig.java @@ -0,0 +1,73 @@ +package at.hannibal2.skyhanni.config.features.event.hoppity; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDraggableList; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorInfoText; +import io.github.notenoughupdates.moulconfig.annotations.ConfigOption; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class HoppityEventSummaryConfig { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show a summary of your Hoppity Hunt stats when the event is over.") + @ConfigEditorBoolean + @FeatureToggle + public boolean enabled = true; + + @Expose + @ConfigOption( + name = "Viewing Stats", + desc = "View current and past event stats at any time using §b/shhoppitystats§7." + ) + @ConfigEditorInfoText + public String commandInfo; + + @Expose + @ConfigOption( + name = "Stats List", + desc = "Drag text to change what displays in the summary card." + ) + @ConfigEditorDraggableList + public List statDisplayList = new ArrayList<>(Arrays.asList( + HoppityStat.MEAL_EGGS_FOUND, + HoppityStat.HOPPITY_RABBITS_BOUGHT, + HoppityStat.SIDE_DISH_EGGS, + HoppityStat.MILESTONE_RABBITS, + HoppityStat.EMPTY_1, + HoppityStat.NEW_RABBITS, + HoppityStat.EMPTY_2, + HoppityStat.DUPLICATE_RABBITS + )); + + public enum HoppityStat { + MEAL_EGGS_FOUND("§7You found §b45§7/§a47 §6Chocolate Meal Eggs§7."), + HOPPITY_RABBITS_BOUGHT("§7You bought §b7 §fRabbits §7from §aHoppity§7."), + SIDE_DISH_EGGS("§7You found §b4 §6§lSide Dish §r§6Eggs §7in the §6Chocolate Factory§7."), + MILESTONE_RABBITS("§7You claimed §b2 §6§lMilestone Rabbits§7."), + EMPTY_1(""), + NEW_RABBITS("§7Unique Rabbits: §b7\n §f1 §7- §a1 §7- §91 §7- §51 §7- §61 §7- §d1 §7- §b1"), + EMPTY_2(""), + DUPLICATE_RABBITS("§7Duplicate Rabbits: §c10\n §f4 §7- §a3 §7- §92 §7- §51 §7- §60 §7- §d0 §7- §b0\n §6+250,000,000 Chocolate"), + EMPTY_3(""), + STRAY_RABBITS("§7Stray Rabbits: §f20\n §f10 §7- §a6 §7- §93 §7- §51 §7- §60 §7- §d0 §7- §b0\n §6+8,000,000 Chocolate\n §c* §c§oRequires Stray Tracker being enabled to work."), + EMPTY_4(""), + TIME_IN_CF("§7You spent §b4h 36m §7in the §6Chocolate Factory§7."), + ; + + private final String display; + + HoppityStat(String display) { + this.display = display; + } + + @Override + public String toString() { + return display; + } + } +} -- cgit