aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/TheMod.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/TheMod.java')
-rw-r--r--src/main/java/me/Danker/TheMod.java1155
1 files changed, 1155 insertions, 0 deletions
diff --git a/src/main/java/me/Danker/TheMod.java b/src/main/java/me/Danker/TheMod.java
new file mode 100644
index 0000000..b99ac42
--- /dev/null
+++ b/src/main/java/me/Danker/TheMod.java
@@ -0,0 +1,1155 @@
+package me.Danker;
+
+import java.awt.Image;
+import java.awt.SystemTray;
+import java.awt.Toolkit;
+import java.awt.TrayIcon;
+import java.text.NumberFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+import com.google.gson.JsonObject;
+
+import me.Danker.commands.ArmourCommand;
+import me.Danker.commands.BankCommand;
+import me.Danker.commands.DHelpCommand;
+import me.Danker.commands.DisplayCommand;
+import me.Danker.commands.GetkeyCommand;
+import me.Danker.commands.GuildOfCommand;
+import me.Danker.commands.ImportFishingCommand;
+import me.Danker.commands.LootCommand;
+import me.Danker.commands.MoveCommand;
+import me.Danker.commands.PetsCommand;
+import me.Danker.commands.ReloadConfigCommand;
+import me.Danker.commands.ResetLootCommand;
+import me.Danker.commands.ScaleCommand;
+import me.Danker.commands.SetkeyCommand;
+import me.Danker.commands.SkillsCommand;
+import me.Danker.commands.SlayerCommand;
+import me.Danker.commands.ToggleCommand;
+import me.Danker.handlers.APIHandler;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.handlers.ScoreboardHandler;
+import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.event.ClickEvent;
+import net.minecraft.event.ClickEvent.Action;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.client.ClientCommandHandler;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.client.event.RenderGameOverlayEvent;
+import net.minecraftforge.client.event.sound.PlaySoundEvent;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.EntityJoinWorldEvent;
+import net.minecraftforge.event.entity.player.ItemTooltipEvent;
+import net.minecraftforge.fml.common.FMLCommonHandler;
+import net.minecraftforge.fml.common.Mod;
+import net.minecraftforge.fml.common.Mod.EventHandler;
+import net.minecraftforge.fml.common.event.FMLInitializationEvent;
+import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
+import net.minecraftforge.fml.common.eventhandler.EventPriority;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+import net.minecraftforge.fml.common.versioning.DefaultArtifactVersion;
+
+@Mod(modid = TheMod.MODID, version = TheMod.VERSION, clientSideOnly = true)
+public class TheMod
+{
+ public static final String MODID = "Danker's Skyblock Mod";
+ public static final String VERSION = "1.6.1";
+
+ static double checkItemsNow = 0;
+ static double itemsChecked = 0;
+ public static Map<String, String> t6Enchants = new HashMap<String, String>();
+ public static Pattern pattern = Pattern.compile("");
+ static boolean updateChecked = false;
+ public static int titleTimer = -1;
+ public static boolean showTitle = false;
+ public static String titleText = "";
+
+ @EventHandler
+ public void init(FMLInitializationEvent event)
+ {
+ FMLCommonHandler.instance().bus().register(this);
+ MinecraftForge.EVENT_BUS.register(this);
+
+ final ConfigHandler cf = new ConfigHandler();
+ cf.reloadConfig();
+
+ // For golden enchants
+ t6Enchants.put("Bane of Arthropods VI", EnumChatFormatting.GOLD + "Bane of Arthropods VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Critical VI", EnumChatFormatting.GOLD + "Critical VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Dragon Hunter V", EnumChatFormatting.GOLD + "Dragon Hunter V" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Ender Slayer VI", EnumChatFormatting.GOLD + "Ender Slayer VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Experience IV", EnumChatFormatting.GOLD + "Experience IV" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Giant Killer VI", EnumChatFormatting.GOLD + "Giant Killer VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Life Steal IV", EnumChatFormatting.GOLD + "Life Steal IV" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Looting IV", EnumChatFormatting.GOLD + "Looting IV" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Luck VI", EnumChatFormatting.GOLD + "Luck VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Scavenger IV", EnumChatFormatting.GOLD + "Scavenger IV" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Scavenger V", EnumChatFormatting.GOLD + "Scavenger V" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Sharpness VI", EnumChatFormatting.GOLD + "Sharpness VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Smite VI", EnumChatFormatting.GOLD + "Smite VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Smite VII", EnumChatFormatting.GOLD + "Smite VII" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Vampirism VI", EnumChatFormatting.GOLD + "Vampirism VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Power VI", EnumChatFormatting.GOLD + "Power VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Growth VI", EnumChatFormatting.GOLD + "Growth VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Protection VI", EnumChatFormatting.GOLD + "Protection VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Efficiency VI", EnumChatFormatting.GOLD + "Efficiency VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Angler VI", EnumChatFormatting.GOLD + "Angler VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Caster VI", EnumChatFormatting.GOLD + "Caster VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Frail VI", EnumChatFormatting.GOLD + "Frail VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Luck of the Sea VI", EnumChatFormatting.GOLD + "Luck of the Sea VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Lure VI", EnumChatFormatting.GOLD + "Lure VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Magnet VI", EnumChatFormatting.GOLD + "Magnet VI" + EnumChatFormatting.BLUE);
+ t6Enchants.put("Spiked Hook VI", EnumChatFormatting.GOLD + "Spiked Hook VI" + EnumChatFormatting.BLUE);
+
+ String patternString = "(" + String.join("|", t6Enchants.keySet()) + ")";
+ pattern = Pattern.compile(patternString);
+ }
+
+ @EventHandler
+ public void preInit(final FMLPreInitializationEvent event) {
+ ClientCommandHandler.instance.registerCommand(new ToggleCommand());
+ ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new LootCommand());
+ ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
+ ClientCommandHandler.instance.registerCommand(new DisplayCommand());
+ ClientCommandHandler.instance.registerCommand(new MoveCommand());
+ ClientCommandHandler.instance.registerCommand(new SlayerCommand());
+ ClientCommandHandler.instance.registerCommand(new SkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
+ ClientCommandHandler.instance.registerCommand(new DHelpCommand());
+ ClientCommandHandler.instance.registerCommand(new PetsCommand());
+ ClientCommandHandler.instance.registerCommand(new BankCommand());
+ ClientCommandHandler.instance.registerCommand(new ArmourCommand());
+ ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
+ ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
+ ClientCommandHandler.instance.registerCommand(new ScaleCommand());
+ }
+
+ // Update checker
+ @SubscribeEvent
+ public void onJoin(EntityJoinWorldEvent event) {
+ if (!updateChecked) {
+ updateChecked = true;
+
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ APIHandler ah = new APIHandler();
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ System.err.println("Checking for updates...");
+ JsonObject latestRelease = ah.getResponse("https://api.github.com/repos/bowser0000/SkyblockMod/releases/latest");
+
+ String latestTag = latestRelease.get("tag_name").getAsString();
+ DefaultArtifactVersion currentVersion = new DefaultArtifactVersion(VERSION);
+ DefaultArtifactVersion latestVersion = new DefaultArtifactVersion(latestTag.substring(1));
+
+ if (currentVersion.compareTo(latestVersion) < 0) {
+ String releaseURL = latestRelease.get("html_url").getAsString();
+
+ ChatComponentText update = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [UPDATE] ");
+ update.setChatStyle(update.getChatStyle().setChatClickEvent(new ClickEvent(Action.OPEN_URL, releaseURL)));
+
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ex) {
+ System.err.println(ex);
+ }
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + MODID + " is outdated. Please update to " + latestTag + ".\n").appendSibling(update));
+ }
+ }).start();
+ }
+ }
+
+ // It randomly broke, so I had to make it the highest priority
+ @SubscribeEvent(priority = EventPriority.HIGHEST)
+ public void onChat(ClientChatReceivedEvent event) {
+ final ToggleCommand tc = new ToggleCommand();
+ String message = event.message.getUnformattedText();
+
+ if (message.contains(":")) return;
+
+ if (tc.gpartyToggled) {
+ if (message.contains(" has invited all members of ")) {
+ System.out.println(message);
+ try {
+ final SystemTray tray = SystemTray.getSystemTray();
+ final Image image = Toolkit.getDefaultToolkit().createImage("icon.png");
+ final TrayIcon trayIcon = new TrayIcon(image, "Guild Party Notifier");
+ trayIcon.setImageAutoSize(true);
+ trayIcon.setToolTip("Guild Party Notifier");
+ tray.add(trayIcon);
+ trayIcon.displayMessage("Guild Party", message, TrayIcon.MessageType.INFO);
+ tray.remove(trayIcon);
+ } catch (Exception ex) {
+ System.err.print(ex);
+ }
+ }
+ }
+
+ final LootCommand lc = new LootCommand();
+ final ConfigHandler cf = new ConfigHandler();
+ boolean wolfRNG = false;
+ boolean spiderRNG = false;
+ boolean zombieRNG = false;
+ // T6 books
+ if (message.contains("VERY RARE DROP! (Enchanted Book)") || message.contains("CRAZY RARE DROP! (Enchanted Book)")) {
+ // Loop through scoreboard to see what boss you're doing
+ List<String> scoreboard = ScoreboardHandler.getSidebarLines();
+ for (String s : scoreboard) {
+ String sCleaned = ScoreboardHandler.cleanSB(s);
+ if (sCleaned.contains("Sven Packmaster")) {
+ lc.wolfBooks++;
+ cf.writeIntConfig("wolf", "book", lc.wolfBooks);
+ } else if (sCleaned.contains("Tarantula Broodfather")) {
+ lc.spiderBooks++;
+ cf.writeIntConfig("spider", "book", lc.spiderBooks);
+ } else if (sCleaned.contains("Revenant Horror")) {
+ lc.zombieBooks++;
+ cf.writeIntConfig("zombie", "book", lc.zombieBooks);
+ }
+ }
+ }
+
+ // Wolf
+ if (message.contains("Talk to Maddox to claim your Wolf Slayer XP!")) {
+ lc.wolfSvens++;
+ lc.wolfSvensSession++;
+ if (lc.wolfBosses != -1) {
+ lc.wolfBosses++;
+ }
+ if (lc.wolfBossesSession != -1) {
+ lc.wolfBossesSession++;
+ }
+ cf.writeIntConfig("wolf", "svens", lc.wolfSvens);
+ cf.writeIntConfig("wolf", "bossRNG", lc.wolfBosses);
+ }
+ if (message.contains("RARE DROP! (Hamster Wheel)")) {
+ lc.wolfWheelsDrops++;
+ lc.wolfWheelsDropsSession++;
+ cf.writeIntConfig("wolf", "wheelDrops", lc.wolfWheelsDrops);
+ }
+ // Removing the unicode here *should* fix rune drops not counting
+ if (message.contains("VERY RARE DROP! (") && message.contains(" Spirit Rune I)")) {
+ lc.wolfSpirits++;
+ lc.wolfSpiritsSession++;
+ cf.writeIntConfig("wolf", "spirit", lc.wolfSpirits);
+ }
+ if (message.contains("CRAZY RARE DROP! (Red Claw Egg)")) {
+ wolfRNG = true;
+ lc.wolfEggs++;
+ lc.wolfEggsSession++;
+ cf.writeIntConfig("wolf", "egg", lc.wolfEggs);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_RED + "RED CLAW EGG!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (") && message.contains(" Couture Rune I)")) {
+ wolfRNG = true;
+ lc.wolfCoutures++;
+ lc.wolfCouturesSession++;
+ cf.writeIntConfig("wolf", "couture", lc.wolfCoutures);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "COUTURE RUNE!", 3);
+ }
+ // How did Skyblock devs even manage to make this item Rename Me
+ if (message.contains("CRAZY RARE DROP! (Grizzly Bait)") || message.contains("CRAZY RARE DROP! (Rename Me)")) {
+ wolfRNG = true;
+ lc.wolfBaits++;
+ lc.wolfBaitsSession++;
+ cf.writeIntConfig("wolf", "bait", lc.wolfBaits);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.AQUA + "GRIZZLY BAIT!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (Overflux Capacitor)")) {
+ wolfRNG = true;
+ lc.wolfFluxes++;
+ lc.wolfFluxesSession++;
+ cf.writeIntConfig("wolf", "flux", lc.wolfFluxes);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "OVERFLUX CAPACITOR!", 5);
+ }
+
+ // Spider
+ if (message.contains("Talk to Maddox to claim your Spider Slayer XP!")) {
+ lc.spiderTarantulas++;
+ lc.spiderTarantulasSession++;
+ if (lc.spiderBosses != -1) {
+ lc.spiderBosses++;
+ }
+ if (lc.spiderBossesSession != -1) {
+ lc.spiderBossesSession++;
+ }
+ cf.writeIntConfig("spider", "tarantulas", lc.spiderTarantulas);
+ cf.writeIntConfig("spider", "bossRNG", lc.spiderBosses);
+ }
+ if (message.contains("RARE DROP! (Toxic Arrow Poison)")) {
+ lc.spiderTAPDrops++;
+ lc.spiderTAPDropsSession++;
+ cf.writeIntConfig("spider", "tapDrops", lc.spiderTAPDrops);
+ }
+ if (message.contains("VERY RARE DROP! (") && message.contains(" Bite Rune I)")) {
+ lc.spiderBites++;
+ lc.spiderBitesSession++;
+ cf.writeIntConfig("spider", "bite", lc.spiderBites);
+ }
+ if (message.contains("VERY RARE DROP! (Spider Catalyst)")) {
+ lc.spiderCatalysts++;
+ lc.spiderCatalystsSession++;
+ cf.writeIntConfig("spider", "catalyst", lc.spiderCatalysts);
+ }
+ if (message.contains("CRAZY RARE DROP! (Fly Swatter)")) {
+ spiderRNG = true;
+ lc.spiderSwatters++;
+ lc.spiderSwattersSession++;
+ cf.writeIntConfig("spider", "swatter", lc.spiderSwatters);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.LIGHT_PURPLE + "FLY SWATTER!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (Tarantula Talisman")) {
+ spiderRNG = true;
+ lc.spiderTalismans++;
+ lc.spiderTalismansSession++;
+ cf.writeIntConfig("spider", "talisman", lc.spiderTalismans);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "TARANTULA TALISMAN!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (Digested Mosquito)")) {
+ spiderRNG = true;
+ lc.spiderMosquitos++;
+ lc.spiderMosquitosSession++;
+ cf.writeIntConfig("spider", "mosquito", lc.spiderMosquitos);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "DIGESTED MOSQUITO!", 5);
+ }
+
+ // Zombie
+ if (message.contains("Talk to Maddox to claim your Zombie Slayer XP!")) {
+ lc.zombieRevs++;
+ lc.zombieRevsSession++;
+ if (lc.zombieBosses != -1) {
+ lc.zombieBosses++;
+ }
+ if (lc.zombieBossesSession != 1) {
+ lc.zombieBossesSession++;
+ }
+ cf.writeIntConfig("zombie", "revs", lc.zombieRevs);
+ cf.writeIntConfig("wolf", "bossRNG", lc.zombieBosses);
+ }
+ if (message.contains("RARE DROP! (Foul Flesh)")) {
+ lc.zombieFoulFleshDrops++;
+ lc.zombieFoulFleshDropsSession++;
+ cf.writeIntConfig("zombie", "foulFleshDrops", lc.zombieFoulFleshDrops);
+ }
+ if (message.contains("VERY RARE DROP! (Revenant Catalyst)")) {
+ lc.zombieRevCatas++;
+ lc.zombieRevCatasSession++;
+ cf.writeIntConfig("zombie", "revCatalyst", lc.zombieRevCatas);
+ }
+ if (message.contains("VERY RARE DROP! (") && message.contains(" Pestilence Rune I)")) {
+ lc.zombiePestilences++;
+ lc.zombiePestilencesSession++;
+ cf.writeIntConfig("zombie", "pestilence", lc.zombiePestilences);
+ }
+ if (message.contains("VERY RARE DROP! (Undead Catalyst)")) {
+ lc.zombieUndeadCatas++;
+ lc.zombieUndeadCatasSession++;
+ cf.writeIntConfig("zombie", "undeadCatalyst", lc.zombieUndeadCatas);
+ }
+ if (message.contains("CRAZY RARE DROP! (Beheaded Horror)")) {
+ zombieRNG = true;
+ lc.zombieBeheadeds++;
+ lc.zombieBeheadedsSession++;
+ cf.writeIntConfig("zombie", "beheaded", lc.zombieBeheadeds);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "BEHEADED HORROR!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (") && message.contains(" Snake Rune I)")) {
+ zombieRNG = true;
+ lc.zombieSnakes++;
+ lc.zombieSnakesSession++;
+ cf.writeIntConfig("zombie", "snake", lc.zombieSnakes);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_GREEN + "SNAKE RUNE!", 3);
+ }
+ if (message.contains("CRAZY RARE DROP! (Scythe Blade)")) {
+ zombieRNG = true;
+ lc.zombieScythes++;
+ lc.zombieScythesSession++;
+ cf.writeIntConfig("zombie", "scythe", lc.zombieScythes);
+ if (tc.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "SCYTHE BLADE!", 5);
+ }
+
+ if (wolfRNG) {
+ lc.wolfTime = System.currentTimeMillis() / 1000;
+ lc.wolfBosses = 0;
+ lc.wolfTimeSession = System.currentTimeMillis() / 1000;
+ lc.wolfBossesSession = 0;
+ cf.writeDoubleConfig("wolf", "timeRNG", lc.wolfTime);
+ cf.writeIntConfig("wolf", "bossRNG", 0);
+ }
+ if (spiderRNG) {
+ lc.spiderTime = System.currentTimeMillis() / 1000;
+ lc.spiderBosses = 0;
+ lc.spiderTimeSession = System.currentTimeMillis() / 1000;
+ lc.spiderBossesSession = 0;
+ cf.writeDoubleConfig("spider", "timeRNG", lc.spiderTime);
+ cf.writeIntConfig("spider", "bossRNG", 0);
+ }
+ if (zombieRNG) {
+ lc.zombieTime = System.currentTimeMillis() / 1000;
+ lc.zombieBosses = 0;
+ lc.zombieTimeSession = System.currentTimeMillis() / 1000;
+ lc.zombieBossesSession = 0;
+ cf.writeDoubleConfig("zombie", "timeRNG", lc.zombieTime);
+ cf.writeIntConfig("zombie", "bossRNG", 0);
+ }
+
+ // Fishing
+ if (message.contains("GOOD CATCH!")) {
+ lc.goodCatches++;
+ lc.goodCatchesSession++;
+ cf.writeIntConfig("fishing", "goodCatch", lc.goodCatches);
+ }
+ if (message.contains("GREAT CATCH!")) {
+ lc.greatCatches++;
+ lc.greatCatchesSession++;
+ cf.writeIntConfig("fishing", "greatCatch", lc.greatCatches);
+ }
+ if (message.contains("You caught a lowly Squid")) {
+ lc.squids++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.squidsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "squid", lc.squids);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("From the depths of the waters, you've reeled in a Sea Walker")) {
+ lc.seaWalkers++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.seaWalkersSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "seaWalker", lc.seaWalkers);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("Pitch darkness reveals you've caught a")) {
+ lc.nightSquids++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.nightSquidsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "nightSquid", lc.nightSquids);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("You've stumbled upon a patrolling Sea Guardian")) {
+ lc.seaGuardians++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.seaGuardiansSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "seaGuardian", lc.seaGuardians);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("It looks like you've disrupted the Sea Witch's brewing session. Watch out, she's furious")) {
+ lc.seaWitches++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.seaWitchesSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "seaWitch", lc.seaWitches);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("From the depths of the waters, you've reeled in a Sea Archer")) {
+ lc.seaArchers++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.seaArchersSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "seaArcher", lc.seaArchers);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("The Monster of the Deep emerges from the dark depths")) {
+ lc.monsterOfTheDeeps++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.monsterOfTheDeepsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "monsterOfDeep", lc.monsterOfTheDeeps);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("You have found a Catfish, don't let it steal your catches")) {
+ lc.catfishes++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.catfishesSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "catfish", lc.catfishes);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("Is this even a fish? It's the Carrot King")) {
+ lc.carrotKings++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.carrotKingsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "carrotKing", lc.carrotKings);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("Gross! A Sea Leech")) {
+ lc.seaLeeches++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.seaLeechesSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "seaLeech", lc.seaLeeches);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("You've discovered a Guardian Defender of the sea")) {
+ lc.guardianDefenders++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.guardianDefendersSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "guardianDefender", lc.guardianDefenders);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("You have awoken the Deep Sea Protector, prepare for a battle")) {
+ lc.deepSeaProtectors++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.deepSeaProtectorsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "deepSeaProtector", lc.deepSeaProtectors);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("The Water Hydra has come to test your strength")) {
+ lc.hydras++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.hydrasSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "hydra", lc.hydras);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ increaseEmpSC();
+ }
+ if (message.contains("The Sea Emperor arises from the depths")) {
+ lc.seaEmperors++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.empTime = System.currentTimeMillis() / 1000;
+ lc.empSCs = 0;
+ lc.seaEmperorsSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ lc.empTimeSession = System.currentTimeMillis() / 1000;
+ lc.empSCsSession = 0;
+ cf.writeIntConfig("fishing", "seaEmperor", lc.seaEmperors);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ cf.writeDoubleConfig("fishing", "empTime", lc.empTime);
+ cf.writeIntConfig("fishing", "empSC", lc.empSCs);
+ }
+ // Fishing Winter
+ if (message.contains("Frozen Steve fell into the pond long ago")) {
+ lc.frozenSteves++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.frozenStevesSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "frozenSteve", lc.frozenSteves);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ }
+ if (message.contains("It's a snowman! He looks harmless")) {
+ lc.frostyTheSnowmans++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.frostyTheSnowmansSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "snowman", lc.frostyTheSnowmans);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ }
+ if (message.contains("stole Jerry's Gifts...get them back")) {
+ lc.grinches++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.grinchesSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "grinch", lc.grinches);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ }
+ if (message.contains("What is this creature")) {
+ lc.yetis++;
+ lc.seaCreatures++;
+ lc.fishingMilestone++;
+ lc.yetisSession++;
+ lc.seaCreaturesSession++;
+ lc.fishingMilestoneSession++;
+ cf.writeIntConfig("fishing", "yeti", lc.yetis);
+ cf.writeIntConfig("fishing", "seaCreature", lc.seaCreatures);
+ cf.writeIntConfig("fishing", "milestone", lc.fishingMilestone);
+ }
+ }
+
+ @SubscribeEvent
+ public void renderPlayerInfo(final RenderGameOverlayEvent.Post event) {
+ if (event.type != RenderGameOverlayEvent.ElementType.EXPERIENCE) return;
+ final ToggleCommand tc = new ToggleCommand();
+ final MoveCommand moc = new MoveCommand();
+ final DisplayCommand ds = new DisplayCommand();
+
+ if (tc.coordsToggled) {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ double xDir = (player.rotationYaw % 360 + 360) % 360;
+ if (xDir > 180) xDir -= 360;
+ xDir = (double) Math.round(xDir * 10d) / 10d;
+ double yDir = (double) Math.round(player.rotationPitch * 10d) / 10d;
+
+ String coordText = (int) player.posX + " / " + (int) player.posY + " / " + (int) player.posZ + " (" + xDir + " / " + yDir + ")";
+ new TextRenderer(Minecraft.getMinecraft(), coordText, moc.coordsXY[0], moc.coordsXY[1], ScaleCommand.coordsScale);
+ }
+
+ if (!ds.display.equals("off")) {
+ final LootCommand lc = new LootCommand();
+ String dropsText = "";
+ String countText = "";
+ String timeBetween = "Never";
+ String bossesBetween = "Never";
+ String drop20;
+ double timeNow = System.currentTimeMillis() / 1000;
+ NumberFormat nf = NumberFormat.getIntegerInstance(Locale.US);
+
+ if (ds.display.equals("wolf")) {
+ if (lc.wolfTime == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.wolfTime, timeNow);
+ }
+ if (lc.wolfBosses == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.wolfBosses);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.wolfWheels);
+ } else {
+ drop20 = nf.format(lc.wolfWheelsDrops) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Svens Killed:\n" +
+ EnumChatFormatting.GREEN + "Wolf Teeth:\n" +
+ EnumChatFormatting.BLUE + "Hamster Wheels:\n" +
+ EnumChatFormatting.AQUA + "Spirit Runes:\n" +
+ EnumChatFormatting.WHITE + "Critical VI Books:\n" +
+ EnumChatFormatting.DARK_RED + "Red Claw Eggs:\n" +
+ EnumChatFormatting.GOLD + "Couture Runes:\n" +
+ EnumChatFormatting.AQUA + "Grizzly Baits:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Overfluxes:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.wolfSvens) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.wolfTeeth) + "\n" +
+ EnumChatFormatting.BLUE + drop20 + "\n" +
+ EnumChatFormatting.AQUA + lc.wolfSpirits + "\n" +
+ EnumChatFormatting.WHITE + lc.wolfBooks + "\n" +
+ EnumChatFormatting.DARK_RED + lc.wolfEggs + "\n" +
+ EnumChatFormatting.GOLD + lc.wolfCoutures + "\n" +
+ EnumChatFormatting.AQUA + lc.wolfBaits + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.wolfFluxes + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("wolf_session")) {
+ if (lc.wolfTimeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.wolfTimeSession, timeNow);
+ }
+ if (lc.wolfBossesSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.wolfBossesSession);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.wolfWheelsSession);
+ } else {
+ drop20 = nf.format(lc.wolfWheelsDropsSession) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Svens Killed:\n" +
+ EnumChatFormatting.GREEN + "Wolf Teeth:\n" +
+ EnumChatFormatting.BLUE + "Hamster Wheels:\n" +
+ EnumChatFormatting.AQUA + "Spirit Runes:\n" +
+ EnumChatFormatting.WHITE + "Critical VI Books:\n" +
+ EnumChatFormatting.DARK_RED + "Red Claw Eggs:\n" +
+ EnumChatFormatting.GOLD + "Couture Runes:\n" +
+ EnumChatFormatting.AQUA + "Grizzly Baits:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Overfluxes:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.wolfSvensSession) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.wolfTeethSession) + "\n" +
+ EnumChatFormatting.BLUE + drop20 + "\n" +
+ EnumChatFormatting.AQUA + lc.wolfSpiritsSession + "\n" +
+ EnumChatFormatting.WHITE + lc.wolfBooksSession + "\n" +
+ EnumChatFormatting.DARK_RED + lc.wolfEggsSession + "\n" +
+ EnumChatFormatting.GOLD + lc.wolfCouturesSession + "\n" +
+ EnumChatFormatting.AQUA + lc.wolfBaitsSession + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.wolfFluxesSession + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("spider")) {
+ if (lc.spiderTime == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.spiderTime, timeNow);
+ }
+ if (lc.spiderBosses == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.spiderBosses);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.spiderTAP);
+ } else {
+ drop20 = nf.format(lc.spiderTAPDrops) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Tarantulas Killed:\n" +
+ EnumChatFormatting.GREEN + "Tarantula Webs:\n" +
+ EnumChatFormatting.DARK_GREEN + "Arrow Poison:\n" +
+ EnumChatFormatting.DARK_GRAY + "Bite Runes:\n" +
+ EnumChatFormatting.WHITE + "Bane VI Books:\n" +
+ EnumChatFormatting.AQUA + "Spider Catalysts:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Tarantula Talismans:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Fly Swatters:\n" +
+ EnumChatFormatting.GOLD + "Digested Mosquitos:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.spiderTarantulas) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.spiderWebs) + "\n" +
+ EnumChatFormatting.DARK_GREEN + drop20 + "\n" +
+ EnumChatFormatting.DARK_GRAY + lc.spiderBites + "\n" +
+ EnumChatFormatting.WHITE + lc.spiderBooks + "\n" +
+ EnumChatFormatting.AQUA + lc.spiderCatalysts + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.spiderTalismans + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + lc.spiderSwatters + "\n" +
+ EnumChatFormatting.GOLD + lc.spiderMosquitos + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("spider_session")) {
+ if (lc.spiderTimeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.spiderTimeSession, timeNow);
+ }
+ if (lc.spiderBossesSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.spiderBossesSession);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.spiderTAPSession);
+ } else {
+ drop20 = nf.format(lc.spiderTAPDropsSession) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Tarantulas Killed:\n" +
+ EnumChatFormatting.GREEN + "Tarantula Webs:\n" +
+ EnumChatFormatting.DARK_GREEN + "Arrow Poison:\n" +
+ EnumChatFormatting.DARK_GRAY + "Bite Runes:\n" +
+ EnumChatFormatting.WHITE + "Bane VI Books:\n" +
+ EnumChatFormatting.AQUA + "Spider Catalysts:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Tarantula Talismans:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Fly Swatters:\n" +
+ EnumChatFormatting.GOLD + "Digested Mosquitos:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.spiderTarantulasSession) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.spiderWebsSession) + "\n" +
+ EnumChatFormatting.DARK_GREEN + drop20 + "\n" +
+ EnumChatFormatting.DARK_GRAY + lc.spiderBitesSession + "\n" +
+ EnumChatFormatting.WHITE + lc.spiderBooksSession + "\n" +
+ EnumChatFormatting.AQUA + lc.spiderCatalystsSession + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.spiderTalismansSession + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + lc.spiderSwattersSession + "\n" +
+ EnumChatFormatting.GOLD + lc.spiderMosquitosSession + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("zombie")) {
+ if (lc.zombieTime == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.zombieTime, timeNow);
+ }
+ if (lc.zombieBosses == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.zombieBosses);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.zombieFoulFlesh);
+ } else {
+ drop20 = nf.format(lc.zombieFoulFleshDrops) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Revs Killed:\n" +
+ EnumChatFormatting.GREEN + "Revenant Flesh:\n" +
+ EnumChatFormatting.BLUE + "Foul Flesh:\n" +
+ EnumChatFormatting.DARK_GREEN + "Pestilence Runes:\n" +
+ EnumChatFormatting.WHITE + "Smite VI Books:\n" +
+ EnumChatFormatting.AQUA + "Undead Catalysts:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Beheaded Horrors:\n" +
+ EnumChatFormatting.RED + "Revenant Catalysts:\n" +
+ EnumChatFormatting.DARK_GREEN + "Snake Runes:\n" +
+ EnumChatFormatting.GOLD + "Scythe Blades:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.zombieRevs) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.zombieRevFlesh) + "\n" +
+ EnumChatFormatting.BLUE + drop20 + "\n" +
+ EnumChatFormatting.DARK_GREEN + lc.zombiePestilences + "\n" +
+ EnumChatFormatting.WHITE + lc.zombieBooks + "\n" +
+ EnumChatFormatting.AQUA + lc.zombieUndeadCatas + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.zombieBeheadeds + "\n" +
+ EnumChatFormatting.RED + lc.zombieRevCatas + "\n" +
+ EnumChatFormatting.DARK_GREEN + lc.zombieSnakes + "\n" +
+ EnumChatFormatting.GOLD + lc.zombieScythes + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("zombie_session")) {
+ if (lc.zombieTimeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.zombieTimeSession, timeNow);
+ }
+ if (lc.zombieBossesSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.zombieBossesSession);
+ }
+ if (tc.slayerCountTotal) {
+ drop20 = nf.format(lc.zombieFoulFleshSession);
+ } else {
+ drop20 = nf.format(lc.zombieFoulFleshDropsSession) + " times";
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Revs Killed:\n" +
+ EnumChatFormatting.GREEN + "Revenant Flesh:\n" +
+ EnumChatFormatting.BLUE + "Foul Flesh:\n" +
+ EnumChatFormatting.DARK_GREEN + "Pestilence Runes:\n" +
+ EnumChatFormatting.WHITE + "Smite VI Books:\n" +
+ EnumChatFormatting.AQUA + "Undead Catalysts:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Beheaded Horrors:\n" +
+ EnumChatFormatting.RED + "Revenant Catalysts:\n" +
+ EnumChatFormatting.DARK_GREEN + "Snake Runes:\n" +
+ EnumChatFormatting.GOLD + "Scythe Blades:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(lc.zombieRevsSession) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.zombieRevFleshSession) + "\n" +
+ EnumChatFormatting.BLUE + drop20 + "\n" +
+ EnumChatFormatting.DARK_GREEN + lc.zombiePestilencesSession + "\n" +
+ EnumChatFormatting.WHITE + lc.zombieBooksSession + "\n" +
+ EnumChatFormatting.AQUA + lc.zombieUndeadCatasSession + "\n" +
+ EnumChatFormatting.DARK_PURPLE + lc.zombieBeheadedsSession + "\n" +
+ EnumChatFormatting.RED + lc.zombieRevCatasSession + "\n" +
+ EnumChatFormatting.DARK_GREEN + lc.zombieSnakesSession + "\n" +
+ EnumChatFormatting.GOLD + lc.zombieScythes + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ } else if (ds.display.equals("fishing")) {
+ if (lc.empTime == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.empTime, timeNow);
+ }
+ if (lc.empSCs == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.empSCs);
+ }
+
+ dropsText = EnumChatFormatting.AQUA + "Creatures Caught:\n" +
+ EnumChatFormatting.AQUA + "Fishing Milestone:\n" +
+ EnumChatFormatting.GOLD + "Good Catches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" +
+ EnumChatFormatting.GRAY + "Squids:\n" +
+ EnumChatFormatting.GREEN + "Sea Walkers:\n" +
+ EnumChatFormatting.DARK_GRAY + "Night Squids:\n" +
+ EnumChatFormatting.DARK_AQUA + "Sea Guardians:\n" +
+ EnumChatFormatting.BLUE + "Sea Witches:\n" +
+ EnumChatFormatting.GREEN + "Sea Archers:";
+ countText = EnumChatFormatting.AQUA + nf.format(lc.seaCreatures) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.fishingMilestone) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.goodCatches) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.greatCatches) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(lc.squids) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.seaWalkers) + "\n" +
+ EnumChatFormatting.DARK_GRAY + nf.format(lc.nightSquids) + "\n" +
+ EnumChatFormatting.DARK_AQUA + nf.format(lc.seaGuardians) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(lc.seaWitches) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.seaArchers);
+ // Seperated to save vertical space
+ String dropsTextTwo = EnumChatFormatting.GREEN + "Monster of Deeps:\n" +
+ EnumChatFormatting.YELLOW + "Catfishes:\n" +
+ EnumChatFormatting.GOLD + "Carrot Kings:\n" +
+ EnumChatFormatting.GRAY + "Sea Leeches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Guardian Defenders:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Deep Sea Protectors:\n" +
+ EnumChatFormatting.GOLD + "Hydras:\n" +
+ EnumChatFormatting.GOLD + "Sea Emperors:\n" +
+ EnumChatFormatting.AQUA + "Time Since Emp:\n" +
+ EnumChatFormatting.AQUA + "Creatures Since Emp:";
+ String countTextTwo = EnumChatFormatting.GREEN + nf.format(lc.monsterOfTheDeeps) + "\n" +
+ EnumChatFormatting.YELLOW + nf.format(lc.catfishes) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.carrotKings) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(lc.seaLeeches) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.guardianDefenders) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.deepSeaProtectors) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.hydras) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.seaEmperors) + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+
+ new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, (int) (moc.displayXY[0] + (145 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale);
+ new TextRenderer(Minecraft.getMinecraft(), countTextTwo, (int) (moc.displayXY[0] + (255 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale);
+ } else if (ds.display.equals("fishing_session")) {
+ if (lc.empTimeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = lc.getTimeBetween(lc.empTimeSession, timeNow);
+ }
+ if (lc.empSCsSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(lc.empSCsSession);
+ }
+
+ dropsText = EnumChatFormatting.AQUA + "Creatures Caught:\n" +
+ EnumChatFormatting.AQUA + "Fishing Milestone:\n" +
+ EnumChatFormatting.GOLD + "Good Catches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" +
+ EnumChatFormatting.GRAY + "Squids:\n" +
+ EnumChatFormatting.GREEN + "Sea Walkers:\n" +
+ EnumChatFormatting.DARK_GRAY + "Night Squids:\n" +
+ EnumChatFormatting.DARK_AQUA + "Sea Guardians:\n" +
+ EnumChatFormatting.BLUE + "Sea Witches:\n" +
+ EnumChatFormatting.GREEN + "Sea Archers:";
+ countText = EnumChatFormatting.AQUA + nf.format(lc.seaCreaturesSession) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.fishingMilestoneSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.goodCatchesSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.greatCatchesSession) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(lc.squidsSession) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.seaWalkersSession) + "\n" +
+ EnumChatFormatting.DARK_GRAY + nf.format(lc.nightSquidsSession) + "\n" +
+ EnumChatFormatting.DARK_AQUA + nf.format(lc.seaGuardiansSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(lc.seaWitchesSession) + "\n" +
+ EnumChatFormatting.GREEN + nf.format(lc.seaArchersSession);
+ // Seperated to save vertical space
+ String dropsTextTwo = EnumChatFormatting.GREEN + "Monster of Deeps:\n" +
+ EnumChatFormatting.YELLOW + "Catfishes:\n" +
+ EnumChatFormatting.GOLD + "Carrot Kings:\n" +
+ EnumChatFormatting.GRAY + "Sea Leeches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Guardian Defenders:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Deep Sea Protectors:\n" +
+ EnumChatFormatting.GOLD + "Hydras:\n" +
+ EnumChatFormatting.GOLD + "Sea Emperors:\n" +
+ EnumChatFormatting.AQUA + "Time Since Emp:\n" +
+ EnumChatFormatting.AQUA + "Creatures Since Emp:";
+ String countTextTwo = EnumChatFormatting.GREEN + nf.format(lc.monsterOfTheDeepsSession) + "\n" +
+ EnumChatFormatting.YELLOW + nf.format(lc.catfishesSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.carrotKingsSession) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(lc.seaLeechesSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.guardianDefendersSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.deepSeaProtectorsSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.hydrasSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.seaEmperorsSession) + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+
+ new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, (int) (moc.displayXY[0] + (145 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale);
+ new TextRenderer(Minecraft.getMinecraft(), countTextTwo, (int) (moc.displayXY[0] + (255 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale);
+ } else if (ds.display.equals("fishing_winter")) {
+ dropsText = EnumChatFormatting.AQUA + "Creatures Caught:\n" +
+ EnumChatFormatting.AQUA + "Fishing Milestone:\n" +
+ EnumChatFormatting.GOLD + "Good Catches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" +
+ EnumChatFormatting.AQUA + "Frozen Steves:\n" +
+ EnumChatFormatting.WHITE + "Snowmans:\n" +
+ EnumChatFormatting.DARK_GREEN + "Grinches:\n" +
+ EnumChatFormatting.GOLD + "Yetis:";
+ countText = EnumChatFormatting.AQUA + nf.format(lc.seaCreatures) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.fishingMilestone) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.goodCatches) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.greatCatches) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.frozenSteves) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(lc.frostyTheSnowmans) + "\n" +
+ EnumChatFormatting.DARK_GREEN + nf.format(lc.grinches) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.yetis);
+ } else if (ds.display.equals("fishing_winter_session")) {
+ dropsText = EnumChatFormatting.AQUA + "Creatures Caught:\n" +
+ EnumChatFormatting.AQUA + "Fishing Milestone:\n" +
+ EnumChatFormatting.GOLD + "Good Catches:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" +
+ EnumChatFormatting.AQUA + "Frozen Steves:\n" +
+ EnumChatFormatting.WHITE + "Snowmans:\n" +
+ EnumChatFormatting.DARK_GREEN + "Grinches:\n" +
+ EnumChatFormatting.GOLD + "Yetis:";
+ countText = EnumChatFormatting.AQUA + nf.format(lc.seaCreaturesSession) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.fishingMilestoneSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.goodCatchesSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(lc.greatCatchesSession) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(lc.frozenStevesSession) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(lc.frostyTheSnowmansSession) + "\n" +
+ EnumChatFormatting.DARK_GREEN + nf.format(lc.grinchesSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(lc.yetisSession);
+ } else {
+ ConfigHandler cf = new ConfigHandler();
+
+ System.out.println("Display was an unknown value, turning off.");
+ ds.display = "off";
+ cf.writeStringConfig("misc", "display", "off");
+ }
+ new TextRenderer(Minecraft.getMinecraft(), dropsText, moc.displayXY[0], moc.displayXY[1], ScaleCommand.displayScale);
+ new TextRenderer(Minecraft.getMinecraft(), countText, (int) (moc.displayXY[0] + (110 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale);
+ }
+
+ if (showTitle) {
+ Utils.drawTitle(titleText);
+ }
+ }
+
+ @SubscribeEvent(priority = EventPriority.HIGHEST)
+ public void onSound(final PlaySoundEvent event) {
+ if (event.name.equals("note.pling")) {
+ // Don't check twice within 3 seconds
+ checkItemsNow = System.currentTimeMillis() / 1000;
+ if (checkItemsNow - itemsChecked < 3) return;
+
+ final ScoreboardHandler sc = new ScoreboardHandler();
+ List<String> scoreboard = sc.getSidebarLines();
+
+ for (String line : scoreboard) {
+ String cleanedLine = sc.cleanSB(line);
+ // If Hypixel lags and scoreboard doesn't update
+ if (cleanedLine.contains("Boss slain!") || cleanedLine.contains("Slay the boss!")) {
+ final LootCommand lc = new LootCommand();
+ final ConfigHandler cf = new ConfigHandler();
+
+ int itemTeeth = Utils.getItems("Wolf Tooth");
+ int itemWheels = Utils.getItems("Hamster Wheel");
+ int itemWebs = Utils.getItems("Tarantula Web");
+ int itemTAP = Utils.getItems("Toxic Arrow Poison");
+ int itemRev = Utils.getItems("Revenant Flesh");
+ int itemFoul = Utils.getItems("Foul Flesh");
+
+ // If no items, are detected, allow check again. Should fix items not being found
+ if (itemTeeth + itemWheels + itemWebs + itemTAP + itemRev + itemFoul > 0) {
+ itemsChecked = System.currentTimeMillis() / 1000;
+ lc.wolfTeeth += itemTeeth;
+ lc.wolfWheels += itemWheels;
+ lc.spiderWebs += itemWebs;
+ lc.spiderTAP += itemTAP;
+ lc.zombieRevFlesh += itemRev;
+ lc.zombieFoulFlesh += itemFoul;
+ lc.wolfTeethSession += itemTeeth;
+ lc.wolfWheelsSession += itemWheels;
+ lc.spiderWebsSession += itemWebs;
+ lc.spiderTAPSession += itemTAP;
+ lc.zombieRevFleshSession += itemRev;
+ lc.zombieFoulFleshSession += itemFoul;
+
+ cf.writeIntConfig("wolf", "teeth", lc.wolfTeeth);
+ cf.writeIntConfig("wolf", "wheel", lc.wolfWheels);
+ cf.writeIntConfig("spider", "web", lc.spiderWebs);
+ cf.writeIntConfig("spider", "tap", lc.spiderTAP);
+ cf.writeIntConfig("zombie", "revFlesh", lc.zombieRevFlesh);
+ cf.writeIntConfig("zombie", "foulFlesh", lc.zombieFoulFlesh);
+ }
+ }
+ }
+ }
+ }
+
+ @SubscribeEvent(priority = EventPriority.HIGHEST)
+ public void onTooltip(ItemTooltipEvent event) {
+ final ToggleCommand tc = new ToggleCommand();
+
+ if (event.toolTip == null) return;
+ if (tc.goldenToggled) {
+ for (int i = 0; i < event.toolTip.size(); i++) {
+ event.toolTip.set(i, Utils.returnGoldenEnchants(event.toolTip.get(i)));
+ }
+ }
+ }
+
+ @SubscribeEvent
+ public void onTick(TickEvent.ClientTickEvent event) {
+ if (titleTimer >= 0) {
+ if (titleTimer == 0) {
+ showTitle = false;
+ }
+ titleTimer--;
+ }
+ }
+
+ public void increaseEmpSC() {
+ LootCommand lc = new LootCommand();
+ ConfigHandler cf = new ConfigHandler();
+
+ if (lc.empSCs != -1) {
+ lc.empSCs++;
+ }
+ if (lc.empSCsSession != -1) {
+ lc.empSCsSession++;
+ }
+
+ cf.writeIntConfig("fishing", "empSC", lc.empSCs);
+ }
+
+}