aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/features/loot
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2022-08-05 00:30:35 -0400
committerbowser0000 <bowser0000@gmail.com>2022-08-05 00:30:35 -0400
commitabd656382da708b8cd77df1f4f0a74f2287618c5 (patch)
tree132a58ec3dc307e171ae7a90bb05bfa235d914cf /src/main/java/me/Danker/features/loot
parentb3eb1191c49eee416b71859ee8303293e9aed72b (diff)
downloadSkyblockMod-abd656382da708b8cd77df1f4f0a74f2287618c5.tar.gz
SkyblockMod-abd656382da708b8cd77df1f4f0a74f2287618c5.tar.bz2
SkyblockMod-abd656382da708b8cd77df1f4f0a74f2287618c5.zip
Add trophy fishing tracker
Also update trivia answers and add mod init event
Diffstat (limited to 'src/main/java/me/Danker/features/loot')
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java76
-rw-r--r--src/main/java/me/Danker/features/loot/TrophyFishTracker.java120
2 files changed, 196 insertions, 0 deletions
diff --git a/src/main/java/me/Danker/features/loot/LootDisplay.java b/src/main/java/me/Danker/features/loot/LootDisplay.java
index 7832362..556108c 100644
--- a/src/main/java/me/Danker/features/loot/LootDisplay.java
+++ b/src/main/java/me/Danker/features/loot/LootDisplay.java
@@ -946,6 +946,82 @@ public class LootDisplay {
EnumChatFormatting.AQUA + timeBetween + "\n" +
EnumChatFormatting.AQUA + bossesBetween;
break;
+ case "fishing_trophy":
+ dropsText = EnumChatFormatting.WHITE + "Sulpher Skitter:\n" +
+ EnumChatFormatting.WHITE + "Obfuscated 1:\n" +
+ EnumChatFormatting.WHITE + "Steaminghot Flounder:\n" +
+ EnumChatFormatting.WHITE + "Gusher:\n" +
+ EnumChatFormatting.WHITE + "Blobfish:\n" +
+ EnumChatFormatting.GREEN + "Obfuscated 2:\n" +
+ EnumChatFormatting.GREEN + "Slugfish:\n" +
+ EnumChatFormatting.GREEN + "Flyfish:\n" +
+ EnumChatFormatting.BLUE + "Obfuscated 3:\n" +
+ EnumChatFormatting.BLUE + "Lavahorse:\n" +
+ EnumChatFormatting.BLUE + "Mana Ray:\n" +
+ EnumChatFormatting.BLUE + "Volcanic Stonefish:\n" +
+ EnumChatFormatting.BLUE + "Vanille:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Skeleton Fish:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Moldfin:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Soul Fish:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Karate Fish:\n" +
+ EnumChatFormatting.GOLD + "Golden Fish:";
+ countText = EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Sulpher Skitter") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 1") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Steaming-Hot Flounder") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Gusher") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Blobfish") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 2") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Slugfish") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Flyfish") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 3") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Lavahorse") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Mana Ray") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Volcanic Stonefish") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Vanille") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Skeleton Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Moldfin") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Soul Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Karate Fish") + "\n" +
+ EnumChatFormatting.GOLD + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Golden Fish");
+ break;
+ case "fishing_trophy_session":
+ dropsText = EnumChatFormatting.WHITE + "Sulpher Skitter:\n" +
+ EnumChatFormatting.WHITE + "Obfuscated 1:\n" +
+ EnumChatFormatting.WHITE + "Steaminghot Flounder:\n" +
+ EnumChatFormatting.WHITE + "Gusher:\n" +
+ EnumChatFormatting.WHITE + "Blobfish:\n" +
+ EnumChatFormatting.GREEN + "Obfuscated 2:\n" +
+ EnumChatFormatting.GREEN + "Slugfish:\n" +
+ EnumChatFormatting.GREEN + "Flyfish:\n" +
+ EnumChatFormatting.BLUE + "Obfuscated 3:\n" +
+ EnumChatFormatting.BLUE + "Lavahorse:\n" +
+ EnumChatFormatting.BLUE + "Mana Ray:\n" +
+ EnumChatFormatting.BLUE + "Volcanic Stonefish:\n" +
+ EnumChatFormatting.BLUE + "Vanille:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Skeleton Fish:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Moldfin:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Soul Fish:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Karate Fish:\n" +
+ EnumChatFormatting.GOLD + "Golden Fish:";
+ countText = EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Sulpher Skitter") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 1") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Steaming-Hot Flounder") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Gusher") + "\n" +
+ EnumChatFormatting.WHITE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Blobfish") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 2") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Slugfish") + "\n" +
+ EnumChatFormatting.GREEN + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Flyfish") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 3") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Lavahorse") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Mana Ray") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Volcanic Stonefish") + "\n" +
+ EnumChatFormatting.BLUE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Vanille") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Skeleton Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Moldfin") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Soul Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Karate Fish") + "\n" +
+ EnumChatFormatting.GOLD + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Golden Fish");
+ break;
case "mythological":
dropsText = EnumChatFormatting.GOLD + "Coins:\n" +
EnumChatFormatting.WHITE + "Griffin Feathers:\n" +
diff --git a/src/main/java/me/Danker/features/loot/TrophyFishTracker.java b/src/main/java/me/Danker/features/loot/TrophyFishTracker.java
new file mode 100644
index 0000000..d11fcfe
--- /dev/null
+++ b/src/main/java/me/Danker/features/loot/TrophyFishTracker.java
@@ -0,0 +1,120 @@
+package me.Danker.features.loot;
+
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonObject;
+import me.Danker.events.ModInitEvent;
+import me.Danker.utils.Utils;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StringUtils;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class TrophyFishTracker {
+
+ public static JsonObject fish = new JsonObject();
+ public static JsonObject fishSession = new JsonObject();
+ public static Pattern fishPattern = Pattern.compile("TROPHY FISH! You caught a (?<fish>.*) (?<tier>.*).");
+ public static String configFile;
+
+ public static JsonObject createEmpty() {
+ JsonObject fish = new JsonObject();
+
+ JsonObject tiers = new JsonObject();
+ tiers.addProperty("BRONZE", 0);
+ tiers.addProperty("SILVER", 0);
+ tiers.addProperty("GOLD", 0);
+ tiers.addProperty("DIAMOND", 0);
+
+ fish.add("Sulpher Skitter", Utils.deepCopy(tiers));
+ fish.add("Obfuscated 1", Utils.deepCopy(tiers));
+ fish.add("Steaming-Hot Flounder", Utils.deepCopy(tiers));
+ fish.add("Obfuscated 2", Utils.deepCopy(tiers));
+ fish.add("Gusher", Utils.deepCopy(tiers));
+ fish.add("Blobfish", Utils.deepCopy(tiers));
+ fish.add("Slugfish", Utils.deepCopy(tiers));
+ fish.add("Obfuscated 3", Utils.deepCopy(tiers));
+ fish.add("Flyfish", Utils.deepCopy(tiers));
+ fish.add("Lavahorse", Utils.deepCopy(tiers));
+ fish.add("Mana Ray", Utils.deepCopy(tiers));
+ fish.add("Volcanic Stonefish", Utils.deepCopy(tiers));
+ fish.add("Vanille", Utils.deepCopy(tiers));
+ fish.add("Skeleton Fish", Utils.deepCopy(tiers));
+ fish.add("Moldfin", Utils.deepCopy(tiers));
+ fish.add("Soul Fish", Utils.deepCopy(tiers));
+ fish.add("Karate Fish", Utils.deepCopy(tiers));
+ fish.add("Golden Fish", Utils.deepCopy(tiers));
+
+ return fish;
+ }
+
+ @SubscribeEvent
+ public void init(ModInitEvent event) {
+ configFile = event.configDirectory + "/dsmtrophyfish.json";
+ if (fish.entrySet().isEmpty()) fish = createEmpty();
+ fishSession = createEmpty();
+ }
+
+ @SubscribeEvent(receiveCanceled = true)
+ public void onChat(ClientChatReceivedEvent event) {
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+
+ if (!Utils.inSkyblock) return;
+ if (!Utils.tabLocation.equals("Crimson Isle")) return;
+ if (event.type == 2) return;
+ if (message.contains(":")) return;
+
+ Matcher matcher = fishPattern.matcher(message);
+
+ if (matcher.matches()) {
+ String fishName = matcher.group("fish");
+ String tier = matcher.group("tier");
+
+ JsonObject fishObj = fish.get(fishName).getAsJsonObject();
+ int amount = fishObj.get(tier).getAsInt();
+ fishObj.addProperty(tier, amount + 1);
+
+ JsonObject fishSessionObj = fishSession.get(fishName).getAsJsonObject();
+ int amountSession = fishSessionObj.get(tier).getAsInt();
+ fishSessionObj.addProperty(tier, amountSession + 1);
+
+ save();
+ }
+ }
+
+ public static void save() {
+ try (FileWriter writer = new FileWriter(configFile)) {
+ new GsonBuilder().create().toJson(fish, writer);
+ writer.flush();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ public static String getTierCount(JsonObject obj, String name) {
+ JsonObject type = obj.get(name).getAsJsonObject();
+
+ int bronze = type.get("BRONZE").getAsInt();
+ int silver = type.get("SILVER").getAsInt();
+ int gold = type.get("GOLD").getAsInt();
+ int diamond = type.get("DIAMOND").getAsInt();
+
+ return EnumChatFormatting.DARK_GRAY + "" + bronze + EnumChatFormatting.WHITE + "-" +
+ EnumChatFormatting.GRAY + silver + EnumChatFormatting.WHITE + "-" +
+ EnumChatFormatting.GOLD + gold + EnumChatFormatting.WHITE + "-" +
+ EnumChatFormatting.AQUA + diamond;
+ }
+
+ public static int getSum(JsonObject obj, String name) {
+ JsonObject type = obj.get(name).getAsJsonObject();
+ return type.get("BRONZE").getAsInt() +
+ type.get("SILVER").getAsInt() +
+ type.get("GOLD").getAsInt() +
+ type.get("DIAMOND").getAsInt();
+ }
+
+}