aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config
diff options
context:
space:
mode:
authorDavid Cole <40234707+DavidArthurCole@users.noreply.github.com>2024-08-25 20:42:33 -0400
committerGitHub <noreply@github.com>2024-08-26 02:42:33 +0200
commit290676ba3954d653bc1cbc0630d2cde90a3249f4 (patch)
treeaad9f4d117b5e1b3ebb50817c87b6ab7b63ec656 /src/main/java/at/hannibal2/skyhanni/config
parentfe0770027bd09c22c3399ee3abf02c530ebc49ec (diff)
downloadskyhanni-290676ba3954d653bc1cbc0630d2cde90a3249f4.tar.gz
skyhanni-290676ba3954d653bc1cbc0630d2cde90a3249f4.tar.bz2
skyhanni-290676ba3954d653bc1cbc0630d2cde90a3249f4.zip
Feature + Fix: Hoppity Event Summarization (#2311)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/dev/DebugConfig.java5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/event/EventConfig.java1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java (renamed from src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java)8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEventSummaryConfig.java73
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/storage/ProfileSpecificStorage.java36
6 files changed, 127 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
index 89d7bb9bb..50accf32c 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
+++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt
@@ -30,6 +30,7 @@ import at.hannibal2.skyhanni.features.event.diana.InquisitorWaypointShare
import at.hannibal2.skyhanni.features.event.diana.MythologicalCreatureTracker
import at.hannibal2.skyhanni.features.event.hoppity.HoppityCollectionStats
import at.hannibal2.skyhanni.features.event.hoppity.HoppityEggLocations
+import at.hannibal2.skyhanni.features.event.hoppity.HoppityEventSummary
import at.hannibal2.skyhanni.features.event.jerry.frozentreasure.FrozenTreasureTracker
import at.hannibal2.skyhanni.features.fishing.tracker.FishingProfitTracker
import at.hannibal2.skyhanni.features.fishing.tracker.SeaCreatureTracker
@@ -337,6 +338,10 @@ object Commands {
"shtpinfested",
"Teleports you to the nearest infested plot",
) { PestFinder.teleportNearestInfestedPlot() }
+ registerCommand(
+ "shhoppitystats",
+ "Look up stats for a Hoppity's Event (by SkyBlock year).\nRun standalone for a list of years that have stats."
+ ) { HoppityEventSummary.sendStatsMessage(it) }
}
private fun usersBugFix() {
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/hoppity/HoppityEggsConfig.java
index 386aa7021..50a5731a5 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/event/HoppityEggsConfig.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/event/hoppity/HoppityEggsConfig.java
@@ -1,8 +1,9 @@
-package at.hannibal2.skyhanni.config.features.event;
+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;
@@ -14,6 +15,11 @@ 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
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<HoppityStat> 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;
+ }
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/storage/ProfileSpecificStorage.java b/src/main/java/at/hannibal2/skyhanni/config/storage/ProfileSpecificStorage.java
index 39ce4402b..51be4daf1 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/storage/ProfileSpecificStorage.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/storage/ProfileSpecificStorage.java
@@ -13,6 +13,7 @@ import at.hannibal2.skyhanni.features.dungeon.DungeonFloor;
import at.hannibal2.skyhanni.features.event.diana.DianaProfitTracker;
import at.hannibal2.skyhanni.features.event.diana.MythologicalCreatureTracker;
import at.hannibal2.skyhanni.features.event.hoppity.HoppityCollectionStats;
+import at.hannibal2.skyhanni.features.event.hoppity.HoppityEggType;
import at.hannibal2.skyhanni.features.event.jerry.frozentreasure.FrozenTreasureTracker;
import at.hannibal2.skyhanni.features.fame.UpgradeReminder;
import at.hannibal2.skyhanni.features.fishing.tracker.FishingProfitTracker;
@@ -39,6 +40,7 @@ import at.hannibal2.skyhanni.features.rift.area.westvillage.kloon.KloonTerminal;
import at.hannibal2.skyhanni.features.skillprogress.SkillType;
import at.hannibal2.skyhanni.features.slayer.SlayerProfitTracker;
import at.hannibal2.skyhanni.utils.GenericWrapper;
+import at.hannibal2.skyhanni.utils.LorenzRarity;
import at.hannibal2.skyhanni.utils.LorenzVec;
import at.hannibal2.skyhanni.utils.NEUInternalName;
import at.hannibal2.skyhanni.utils.SimpleTimeMark;
@@ -666,4 +668,38 @@ public class ProfileSpecificStorage {
@Expose
public UpgradeReminder.CommunityShopUpgrade communityShopProfileUpgrade = null;
+
+ @Expose
+ public Map<Integer, HoppityEventStats> hoppityEventStats = new HashMap<>();
+
+ public static class HoppityEventStats {
+ @Expose
+ public Map<HoppityEggType, Integer> mealsFound = new HashMap<>();
+
+ @Expose
+ public Map<LorenzRarity, RabbitData> rabbitsFound = new HashMap<>();
+
+ public static class RabbitData {
+ @Expose
+ public int uniques = 0;
+
+ @Expose
+ public int dupes = 0;
+
+ @Expose
+ public int strays = 0;
+ }
+
+ @Expose
+ public long dupeChocolateGained = 0;
+
+ @Expose
+ public long strayChocolateGained = 0;
+
+ @Expose
+ public long millisInCf = 0;
+
+ @Expose
+ public boolean summarized = false;
+ }
}