aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java11
-rw-r--r--src/main/java/me/Danker/commands/DisplayCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/ImportFishingCommand.java39
-rw-r--r--src/main/java/me/Danker/commands/LootCommand.java52
-rw-r--r--src/main/java/me/Danker/commands/ResetLootCommand.java4
-rw-r--r--src/main/java/me/Danker/events/ModInitEvent.java13
-rw-r--r--src/main/java/me/Danker/features/Alerts.java6
-rw-r--r--src/main/java/me/Danker/features/ChatAliases.java6
-rw-r--r--src/main/java/me/Danker/features/CustomMusic.java7
-rw-r--r--src/main/java/me/Danker/features/GemstonesLore.java4
-rw-r--r--src/main/java/me/Danker/features/GoldenEnchants.java4
-rw-r--r--src/main/java/me/Danker/features/MinionLastCollected.java6
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java76
-rw-r--r--src/main/java/me/Danker/features/loot/TrophyFishTracker.java120
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/TriviaSolver.java11
-rw-r--r--src/main/java/me/Danker/gui/DisplayGui.java18
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java11
-rw-r--r--src/main/java/me/Danker/utils/Utils.java12
18 files changed, 383 insertions, 28 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index a63552c..6322c33 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -4,6 +4,7 @@ import com.google.gson.JsonObject;
import me.Danker.commands.*;
import me.Danker.events.ChestSlotClickedEvent;
import me.Danker.events.GuiChestBackgroundDrawnEvent;
+import me.Danker.events.ModInitEvent;
import me.Danker.events.RenderOverlayEvent;
import me.Danker.features.*;
import me.Danker.features.loot.*;
@@ -177,18 +178,12 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new GhostTracker());
MinecraftForge.EVENT_BUS.register(new MythologicalTracker());
MinecraftForge.EVENT_BUS.register(new SpiderTracker());
+ MinecraftForge.EVENT_BUS.register(new TrophyFishTracker());
MinecraftForge.EVENT_BUS.register(new WolfTracker());
MinecraftForge.EVENT_BUS.register(new ZombieTracker());
- Alerts.configFile = configDirectory + "/dsmalerts.json";
- ChatAliases.configFile = configDirectory + "/dsmaliases.json";
- MinionLastCollected.configFile = configDirectory + "/dsmminions.json";
-
+ MinecraftForge.EVENT_BUS.post(new ModInitEvent(configDirectory));
ConfigHandler.reloadConfig();
- GoldenEnchants.init();
- TriviaSolver.init();
- CustomMusic.init(configDirectory);
- GemstonesLore.init();
keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod");
keyBindings[1] = new KeyBinding("Regular Ability", Keyboard.KEY_NUMPAD4, "Danker's Skyblock Mod");
diff --git a/src/main/java/me/Danker/commands/DisplayCommand.java b/src/main/java/me/Danker/commands/DisplayCommand.java
index 21ada93..c340ed8 100644
--- a/src/main/java/me/Danker/commands/DisplayCommand.java
+++ b/src/main/java/me/Danker/commands/DisplayCommand.java
@@ -21,7 +21,7 @@ public class DisplayCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological/ghost/auto/off> [winter/festival/spooky/ch/lava/session/f(1-7)/mm]";
+ return "/" + getCommandName() + " <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological/ghost/auto/off> [winter/festival/spooky/ch/lava/trophy/session/f(1-7)/mm]";
}
public static String usage(ICommandSender arg0) {
@@ -38,7 +38,7 @@ public class DisplayCommand extends CommandBase {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "enderman", "blaze", "fishing", "catacombs", "mythological", "ghost", "auto", "off");
} else if (args.length == 2 && args[0].equalsIgnoreCase("fishing")) {
- return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "ch", "lava", "session");
+ return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "ch", "lava", "trophy", "session");
} else if (args.length == 2 && args[0].equalsIgnoreCase("catacombs")) {
return getListOfStringsMatchingLastWord(args, "f1", "floor1", "f2", "floor2", "f3", "floor3", "f4", "floor4", "f5", "floor5", "f6", "floor6", "f7", "floor7", "mm", "master");
} else if (args.length > 1) {
@@ -132,6 +132,13 @@ public class DisplayCommand extends CommandBase {
LootDisplay.display = "fishing_lava";
}
break;
+ case "trophy":
+ if (showSession) {
+ LootDisplay.display = "fishing_trophy_session";
+ } else {
+ LootDisplay.display = "fishing_trophy";
+ }
+ break;
default:
if (showSession) {
LootDisplay.display = "fishing_session";
diff --git a/src/main/java/me/Danker/commands/ImportFishingCommand.java b/src/main/java/me/Danker/commands/ImportFishingCommand.java
index 46d9906..6658bcd 100644
--- a/src/main/java/me/Danker/commands/ImportFishingCommand.java
+++ b/src/main/java/me/Danker/commands/ImportFishingCommand.java
@@ -3,6 +3,7 @@ package me.Danker.commands;
import com.google.gson.JsonObject;
import me.Danker.DankersSkyblockMod;
import me.Danker.features.loot.FishingTracker;
+import me.Danker.features.loot.TrophyFishTracker;
import me.Danker.handlers.APIHandler;
import me.Danker.handlers.ConfigHandler;
import net.minecraft.command.CommandBase;
@@ -63,7 +64,9 @@ public class ImportFishingCommand extends CommandBase {
}
System.out.println("Fetching fishing stats...");
- JsonObject statsObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("stats").getAsJsonObject();
+ JsonObject memberObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject();
+ JsonObject statsObject = memberObject.get("stats").getAsJsonObject();
+ JsonObject trophyObject = memberObject.get("trophy_fish").getAsJsonObject();
FishingTracker.greatCatches = 0;
FishingTracker.goodCatches = 0;
@@ -123,7 +126,7 @@ public class ImportFishingCommand extends CommandBase {
FishingTracker.thunders = getSCFromApi(statsObject, "kills_thunder");
FishingTracker.lordJawbuses = getSCFromApi(statsObject, "kills_lord_jawbus");
- System.out.println("Writing to config...");
+ System.out.println("Writing SC to config...");
ConfigHandler.writeIntConfig("fishing", "goodCatch", FishingTracker.goodCatches);
ConfigHandler.writeIntConfig("fishing", "greatCatch", FishingTracker.greatCatches);
ConfigHandler.writeIntConfig("fishing", "seaCreature", FishingTracker.seaCreatures);
@@ -172,6 +175,27 @@ public class ImportFishingCommand extends CommandBase {
ConfigHandler.writeIntConfig("fishing", "thunder", FishingTracker.thunders);
ConfigHandler.writeIntConfig("fishing", "lordJawbus", FishingTracker.lordJawbuses);
+ TrophyFishTracker.fish = TrophyFishTracker.createEmpty();
+ TrophyFishTracker.fish.add("Sulpher Skitter", getTrophyFromAPI(trophyObject, "sulphur_skitter"));
+ TrophyFishTracker.fish.add("Obfuscated 1", getTrophyFromAPI(trophyObject, "obfuscated_fish_1"));
+ TrophyFishTracker.fish.add("Steaming-Hot Flounder", getTrophyFromAPI(trophyObject, "steaming_hot_flounder"));
+ TrophyFishTracker.fish.add("Obfuscated 2", getTrophyFromAPI(trophyObject, "obfuscated_fish_2"));
+ TrophyFishTracker.fish.add("Gusher", getTrophyFromAPI(trophyObject, "gusher"));
+ TrophyFishTracker.fish.add("Blobfish", getTrophyFromAPI(trophyObject, "blobfish"));
+ TrophyFishTracker.fish.add("Slugfish", getTrophyFromAPI(trophyObject, "slugfish"));
+ TrophyFishTracker.fish.add("Obfuscated 3", getTrophyFromAPI(trophyObject, "obfuscated_fish_3"));
+ TrophyFishTracker.fish.add("Flyfish", getTrophyFromAPI(trophyObject, "flyfish"));
+ TrophyFishTracker.fish.add("Lavahorse", getTrophyFromAPI(trophyObject, "lava_horse"));
+ TrophyFishTracker.fish.add("Mana Ray", getTrophyFromAPI(trophyObject, "mana_ray"));
+ TrophyFishTracker.fish.add("Volcanic Stonefish", getTrophyFromAPI(trophyObject, "volcanic_stonefish"));
+ TrophyFishTracker.fish.add("Vanille", getTrophyFromAPI(trophyObject, "vanille"));
+ TrophyFishTracker.fish.add("Skeleton Fish", getTrophyFromAPI(trophyObject, "skeleton_fish"));
+ TrophyFishTracker.fish.add("Moldfin", getTrophyFromAPI(trophyObject, "moldfin"));
+ TrophyFishTracker.fish.add("Soul Fish", getTrophyFromAPI(trophyObject, "soul_fish"));
+ TrophyFishTracker.fish.add("Karate Fish", getTrophyFromAPI(trophyObject, "karate_fish"));
+ TrophyFishTracker.fish.add("Golden Fish", getTrophyFromAPI(trophyObject, "golden_fish"));
+ TrophyFishTracker.save();
+
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Fishing stats imported."));
}).start();
}
@@ -183,4 +207,15 @@ public class ImportFishingCommand extends CommandBase {
return sc;
}
+ static JsonObject getTrophyFromAPI(JsonObject obj, String name) {
+ JsonObject tiers = new JsonObject();
+
+ tiers.addProperty("BRONZE", obj.has(name + "_bronze") ? obj.get(name + "_bronze").getAsInt() : 0);
+ tiers.addProperty("SILVER", obj.has(name + "_silver") ? obj.get(name + "_silver").getAsInt() : 0);
+ tiers.addProperty("GOLD", obj.has(name + "_gold") ? obj.get(name + "_gold").getAsInt() : 0);
+ tiers.addProperty("DIAMOND", obj.has(name + "_diamond") ? obj.get(name + "_diamond").getAsInt() : 0);
+
+ return tiers;
+ }
+
}
diff --git a/src/main/java/me/Danker/commands/LootCommand.java b/src/main/java/me/Danker/commands/LootCommand.java
index af5479e..3c224bb 100644
--- a/src/main/java/me/Danker/commands/LootCommand.java
+++ b/src/main/java/me/Danker/commands/LootCommand.java
@@ -24,7 +24,7 @@ public class LootCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological> [winter/festival/spooky/ch/lava/f(1-7)/mm/session]";
+ return "/" + getCommandName() + " <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological> [winter/festival/spooky/ch/lava/trophy/f(1-7)/mm/session]";
}
public static String usage(ICommandSender arg0) {
@@ -41,7 +41,7 @@ public class LootCommand extends CommandBase {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "enderman", "blaze", "fishing", "catacombs", "mythological");
} else if (args.length == 2 && args[0].equalsIgnoreCase("fishing")) {
- return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "ch", "lava", "session");
+ return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "ch", "lava", "trophy", "session");
} else if (args.length == 2 && args[0].equalsIgnoreCase("catacombs")) {
return getListOfStringsMatchingLastWord(args, "f1", "floor1", "f2", "floor2", "f3", "floor3", "f4", "floor4", "f5", "floor5", "f6", "floor6", "f7", "floor7", "mm", "master");
} else if (args.length > 1) {
@@ -621,6 +621,54 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.AQUA + " Creatures Since Lord Jawbus: " + bossesBetween + "\n" +
EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + " -------------------"));
return;
+ } else if (arg1[1].equalsIgnoreCase("trophy")) {
+ if (showSession) {
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + " Trophy Fishing Summary (Current Session):\n" +
+ EnumChatFormatting.WHITE + " Sulpher Skitter " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Sulpher Skitter") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Sulpher Skitter") + "\n" +
+ EnumChatFormatting.WHITE + " Obfuscated 1 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Obfuscated 1") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 1") + "\n" +
+ EnumChatFormatting.WHITE + " Steaminghot Flounder " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Steaming-Hot Flounder") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Steaming-Hot Flounder") + "\n" +
+ EnumChatFormatting.WHITE + " Gusher " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Gusher") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Gusher") + "\n" +
+ EnumChatFormatting.WHITE + " Blobfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Blobfish") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Blobfish") + "\n" +
+ EnumChatFormatting.GREEN + " Obfuscated 2 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Obfuscated 2") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 2") + "\n" +
+ EnumChatFormatting.GREEN + " Slugfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Slugfish") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Slugfish") + "\n" +
+ EnumChatFormatting.GREEN + " Flyfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Flyfish") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Flyfish") + "\n" +
+ EnumChatFormatting.BLUE + " Obfuscated 3 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Obfuscated 3") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Obfuscated 3") + "\n" +
+ EnumChatFormatting.BLUE + " Lavahorse " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Lavahorse") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Lavahorse") + "\n" +
+ EnumChatFormatting.BLUE + " Mana Ray " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Mana Ray") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Mana Ray") + "\n" +
+ EnumChatFormatting.BLUE + " Volcanic Stonefish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Volcanic Stonefish") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Volcanic Stonefish") + "\n" +
+ EnumChatFormatting.BLUE + " Vanille " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Vanille") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Vanille") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Skeleton Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Skeleton Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Skeleton Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Moldfin " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Moldfin") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Moldfin") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Soul Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Soul Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Soul Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Karate Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Karate Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Karate Fish") + "\n" +
+ EnumChatFormatting.GOLD + " Golden Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fishSession, "Golden Fish") + ")" + EnumChatFormatting.GOLD + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fishSession, "Golden Fish") + "\n" +
+ EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + "-------------------"));
+ return;
+ }
+
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + " Trophy Fishing Summary:\n" +
+ EnumChatFormatting.WHITE + " Sulpher Skitter " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Sulpher Skitter") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Sulpher Skitter") + "\n" +
+ EnumChatFormatting.WHITE + " Obfuscated 1 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Obfuscated 1") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 1") + "\n" +
+ EnumChatFormatting.WHITE + " Steaminghot Flounder " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Steaming-Hot Flounder") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Steaming-Hot Flounder") + "\n" +
+ EnumChatFormatting.WHITE + " Gusher " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Gusher") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Gusher") + "\n" +
+ EnumChatFormatting.WHITE + " Blobfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Blobfish") + ")" + EnumChatFormatting.WHITE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Blobfish") + "\n" +
+ EnumChatFormatting.GREEN + " Obfuscated 2 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Obfuscated 2") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 2") + "\n" +
+ EnumChatFormatting.GREEN + " Slugfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Slugfish") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Slugfish") + "\n" +
+ EnumChatFormatting.GREEN + " Flyfish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Flyfish") + ")" + EnumChatFormatting.GREEN + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Flyfish") + "\n" +
+ EnumChatFormatting.BLUE + " Obfuscated 3 " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Obfuscated 3") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Obfuscated 3") + "\n" +
+ EnumChatFormatting.BLUE + " Lavahorse " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Lavahorse") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Lavahorse") + "\n" +
+ EnumChatFormatting.BLUE + " Mana Ray " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Mana Ray") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Mana Ray") + "\n" +
+ EnumChatFormatting.BLUE + " Volcanic Stonefish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Volcanic Stonefish") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Volcanic Stonefish") + "\n" +
+ EnumChatFormatting.BLUE + " Vanille " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Vanille") + ")" + EnumChatFormatting.BLUE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Vanille") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Skeleton Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Skeleton Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Skeleton Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Moldfin " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Moldfin") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Moldfin") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Soul Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Soul Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Soul Fish") + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Karate Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Karate Fish") + ")" + EnumChatFormatting.DARK_PURPLE + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Karate Fish") + "\n" +
+ EnumChatFormatting.GOLD + " Golden Fish " + EnumChatFormatting.DARK_GRAY + "(" + TrophyFishTracker.getSum(TrophyFishTracker.fish, "Golden Fish") + ")" + EnumChatFormatting.GOLD + ": " + TrophyFishTracker.getTierCount(TrophyFishTracker.fish, "Golden Fish") + "\n" +
+ EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + "-------------------"));
+ return;
}
}
diff --git a/src/main/java/me/Danker/commands/ResetLootCommand.java b/src/main/java/me/Danker/commands/ResetLootCommand.java
index 9ccef33..00cf8f6 100644
--- a/src/main/java/me/Danker/commands/ResetLootCommand.java
+++ b/src/main/java/me/Danker/commands/ResetLootCommand.java
@@ -293,6 +293,10 @@ public class ResetLootCommand extends CommandBase {
FishingTracker.jawbusSCsSession = -1;
ConfigHandler.deleteCategory("fishing");
ConfigHandler.reloadConfig();
+
+ TrophyFishTracker.fish = TrophyFishTracker.createEmpty();
+ TrophyFishTracker.fishSession = TrophyFishTracker.createEmpty();
+ TrophyFishTracker.save();
}
static void resetMythological() {
diff --git a/src/main/java/me/Danker/events/ModInitEvent.java b/src/main/java/me/Danker/events/ModInitEvent.java
new file mode 100644
index 0000000..e1cc644
--- /dev/null
+++ b/src/main/java/me/Danker/events/ModInitEvent.java
@@ -0,0 +1,13 @@
+package me.Danker.events;
+
+import net.minecraftforge.fml.common.eventhandler.Event;
+
+public class ModInitEvent extends Event {
+
+ public final String configDirectory;
+
+ public ModInitEvent(String configDirectory) {
+ this.configDirectory = configDirectory;
+ }
+
+}
diff --git a/src/main/java/me/Danker/features/Alerts.java b/src/main/java/me/Danker/features/Alerts.java
index 8f45423..e54a212 100644
--- a/src/main/java/me/Danker/features/Alerts.java
+++ b/src/main/java/me/Danker/features/Alerts.java
@@ -3,6 +3,7 @@ package me.Danker.features;
import com.google.gson.GsonBuilder;
import javafx.scene.control.Alert;
import me.Danker.commands.ToggleCommand;
+import me.Danker.events.ModInitEvent;
import me.Danker.utils.Utils;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StringUtils;
@@ -25,6 +26,11 @@ public class Alerts {
public static String configFile;
@SubscribeEvent
+ public void init(ModInitEvent event) {
+ configFile = event.configDirectory + "/dsmalerts.json";
+ }
+
+ @SubscribeEvent
public void onChat(ClientChatReceivedEvent event) {
if (!ToggleCommand.alerts || event.type == 2) return;
diff --git a/src/main/java/me/Danker/features/ChatAliases.java b/src/main/java/me/Danker/features/ChatAliases.java
index ae9e0f7..76ab5f6 100644
--- a/src/main/java/me/Danker/features/ChatAliases.java
+++ b/src/main/java/me/Danker/features/ChatAliases.java
@@ -1,6 +1,7 @@
package me.Danker.features;
import com.google.gson.GsonBuilder;
+import me.Danker.events.ModInitEvent;
import me.Danker.events.PacketWriteEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.network.play.client.C01PacketChatMessage;
@@ -17,6 +18,11 @@ public class ChatAliases {
public static String configFile;
@SubscribeEvent
+ public void init(ModInitEvent event) {
+ configFile = event.configDirectory + "/dsmaliases.json";
+ }
+
+ @SubscribeEvent
public void onPacketWrite(PacketWriteEvent event) {
if (event.packet instanceof C01PacketChatMessage) {
C01PacketChatMessage packet = (C01PacketChatMessage) event.packet;
diff --git a/src/main/java/me/Danker/features/CustomMusic.java b/src/main/java/me/Danker/features/CustomMusic.java
index 8ce8c05..e6f8131 100644
--- a/src/main/java/me/Danker/features/CustomMusic.java
+++ b/src/main/java/me/Danker/features/CustomMusic.java
@@ -2,6 +2,7 @@ package me.Danker.features;
import me.Danker.DankersSkyblockMod;
import me.Danker.commands.ToggleCommand;
+import me.Danker.events.ModInitEvent;
import me.Danker.handlers.ScoreboardHandler;
import me.Danker.utils.Utils;
import net.minecraft.client.Minecraft;
@@ -13,6 +14,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.client.event.sound.PlaySoundEvent;
import net.minecraftforge.event.world.WorldEvent;
+import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
@@ -196,6 +198,11 @@ public class CustomMusic {
}
}
+ @SubscribeEvent
+ public void init(ModInitEvent event) {
+ init(event.configDirectory);
+ }
+
public static void init(String configDirectory) {
if (configDirectory == null) return;
File directory = new File(configDirectory + "/dsmmusic");
diff --git a/src/main/java/me/Danker/features/GemstonesLore.java b/src/main/java/me/Danker/features/GemstonesLore.java
index 7db2d33..b16edaf 100644
--- a/src/main/java/me/Danker/features/GemstonesLore.java
+++ b/src/main/java/me/Danker/features/GemstonesLore.java
@@ -1,6 +1,7 @@
package me.Danker.features;
import me.Danker.commands.ToggleCommand;
+import me.Danker.events.ModInitEvent;
import me.Danker.utils.Utils;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
@@ -18,7 +19,8 @@ public class GemstonesLore {
static Map<String, EnumChatFormatting> gemstoneColours = new HashMap<>();
- public static void init() {
+ @SubscribeEvent
+ public void init(ModInitEvent event) {
gemstoneColours.put("Amber", EnumChatFormatting.GOLD);
gemstoneColours.put("Sapphire", EnumChatFormatting.AQUA);
gemstoneColours.put("Jasper", EnumChatFormatting.LIGHT_PURPLE);
diff --git a/src/main/java/me/Danker/features/GoldenEnchants.java b/src/main/java/me/Danker/features/GoldenEnchants.java
index d633ec5..228d43e 100644
--- a/src/main/java/me/Danker/features/GoldenEnchants.java
+++ b/src/main/java/me/Danker/features/GoldenEnchants.java
@@ -1,6 +1,7 @@
package me.Danker.features;
import me.Danker.commands.ToggleCommand;
+import me.Danker.events.ModInitEvent;
import me.Danker.utils.Utils;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
@@ -15,7 +16,8 @@ public class GoldenEnchants {
public static Map<String, String> t6Enchants = new HashMap<>();
public static Pattern t6EnchantPattern = Pattern.compile("");
- public static void init() {
+ @SubscribeEvent
+ public void init(ModInitEvent event) {
t6Enchants.put("9Angler VI", "6Angler VI");
t6Enchants.put("9Bane of Arthropods VI", "6Bane of Arthropods VI");
t6Enchants.put("9Caster VI", "6Caster VI");
diff --git a/src/main/java/me/Danker/features/MinionLastCollected.java b/src/main/java/me/Danker/features/MinionLastCollected.java
index 884dccf..7079f40 100644
--- a/src/main/java/me/Danker/features/MinionLastCollected.java
+++ b/src/main/java/me/Danker/features/MinionLastCollected.java
@@ -3,6 +3,7 @@ package me.Danker.features;
import com.google.gson.GsonBuilder;
import me.Danker.commands.ToggleCommand;
import me.Danker.events.ChestSlotClickedEvent;
+import me.Danker.events.ModInitEvent;
import me.Danker.events.PacketWriteEvent;
import me.Danker.utils.RenderUtils;
import me.Danker.utils.Utils;
@@ -29,6 +30,11 @@ public class MinionLastCollected {
public static int LAST_COLLECTED_COLOUR;
@SubscribeEvent
+ public void init(ModInitEvent event) {
+ configFile = event.configDirectory + "/dsmminions.json";
+ }
+
+ @SubscribeEvent
public void onPacketWrite(PacketWriteEvent event) {
if (ToggleCommand.minionLastCollected && Utils.inSkyblock && Utils.isInScoreboard("Your Island")) {
if (event.packet instanceof C02PacketUseEntity) {
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;