diff options
author | Clicks <58398364+CuzImClicks@users.noreply.github.com> | 2022-04-29 11:24:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-29 11:24:43 +0200 |
commit | 48253eddf00cf5d94ecc2eb6b63e7c490b3145be (patch) | |
tree | b74b3674eb12a168e3e93da1f3ff0119116c3411 | |
parent | 5f6ce80319b21d53abbec15886f4e2fbd765f748 (diff) | |
parent | 36a30bd1a2097b6ab45c27bd248cbea4e292499f (diff) | |
download | SkyblockMod-48253eddf00cf5d94ecc2eb6b63e7c490b3145be.tar.gz SkyblockMod-48253eddf00cf5d94ecc2eb6b63e7c490b3145be.tar.bz2 SkyblockMod-48253eddf00cf5d94ecc2eb6b63e7c490b3145be.zip |
Merge branch 'development' into development
38 files changed, 1699 insertions, 957 deletions
@@ -3,14 +3,21 @@ QOL changes that enhances your Hypixel Skyblock experience. Created to add featu Discord Server: https://discord.gg/QsEkNQS +<details> +<summary>Incompatibilites</summary> + ## Incompatibilities - Old Animations <2.6.4 - Frequent crashes - Old Animations 2.6.4 - Pet colors does not color slots - Catacombs F7 terminal solvers do not color slots - Enchanting solvers do not color slots +</details> -## Current features +<details> +<summary>Current Features</summary> + +## Current Features - Guild party desktop notifications - Coordinate and angle display - Golden T10/T6/T4 enchant display @@ -66,6 +73,12 @@ Discord Server: https://discord.gg/QsEkNQS - Predicted dungeon score display - Hide player armour - Automatically join skyblock +- Fire pillar display +- Chat aliases +</details> + +<details> +<summary>Commands</summary> ## Commands - /dhelp - Returns this message in-game. @@ -76,8 +89,8 @@ Discord Server: https://discord.gg/QsEkNQS - /loot <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological/> [winter/festival/spooky/ch/lava/f(1-7)/mm/session] - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead. - /display <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological/ghosts/auto/off> [winter/festival/spooky/ch/lava/f(1-7)/mm/session] - Text display for trackers. /display fishing winter displays winter sea creatures instead. /display auto automatically displays the loot for the slayer quest you have active. - /resetloot <zombie/spider/wolf/enderman/blaze/fishing/catacombs/mythological/confirm/cancel> - - Resets loot for trackers. /resetloot confirm confirms the reset. -- /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldowns/dungeonscore> <x> <y> - Moves text display to specified X and Y coordinates. -- /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldowns/dungeonscore> <scale (0.1 - 10)> - Scales text display to a specified multipler between 0.1x and 10x. +- /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldowns/dungeonscore/firepillar> <x> <y> - Moves text display to specified X and Y coordinates. +- /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldowns/dungeonscore/firepillar> <scale (0.1 - 10)> - Scales text display to a specified multipler between 0.1x and 10x. - /slayer [player] - Uses API to get slayer xp of a person. If no name is provided, it checks yours. - /skill [player] - Uses API to get skill levels of a person. If no name is provided, it checks yours. - /lobbyskills - Uses API to find the average skills of the lobby, as well the three players with the highest skill average. @@ -94,12 +107,16 @@ Discord Server: https://discord.gg/QsEkNQS - /reparty - Disbands and reparties all members in the party - /fairysouls - Check the fairysouls of a player - /lobbybank - Uses API to find the average bank total of the lobby, as well the three players with the highest total money in the bank (and purse). -- /dsmmusic <stop/reload/volume> [dungeonboss/bloodroom/dungeon/hub/island/dungeonhub/farmingislands/goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/crimsonisle/end/park] [1-100] - Stops, reloads or changes the volume of custom music. +- /dsmmusic <stop/reload/volume> [dungeonboss/bloodroom/dungeon/p2/p3/p4/p5/hub/island/dungeonhub/farmingislands/goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/crimsonisle/end/park] [1-100] - Stops, reloads or changes the volume of custom music. - /player [player] - Uses API to find skills, slayers, coins and weight of a player. - /reloadconfig - Reloads Danker's Skyblock Mod config. - /reloaddsmrepo - Reloads Danker's Skyblock Mod repository. - /dsmfarmlength <min coords> <max coords> - Sets coords to be used for end of farm alert. - /hotmof [player] - Uses API to find total powder and HotM tree of a person. If no name is provided, it checks yours. +</details> + +<details> +<summary>Keybinds</summary> <details> <summary>Warps</summary> @@ -134,6 +151,10 @@ Shortcut commands that save you the time of typing the whole warp command. - Open Maddox menu - M by default. - Regular Ability - Numpad 4 by default. - Start/Stop Skill Tracker - Numpad 5 by default. +</details> + +<details> +<summary>Custom Music</summary> ## Custom Music 1. Place a music file with the given name in the `.minecraft/config/dsmmusic` folder: @@ -141,6 +162,10 @@ Shortcut commands that save you the time of typing the whole warp command. - Blood room: `bloodroom.wav` - Dungeon boss: `dungeonboss.wav` - Dungeon hub: `dungeonhub.wav` + - F7 Phase 2 (Storm): `phasetwo.wav` + - F7 Phase 3 (Goldor): `phasethree.wav` + - F7 Phase 4 (Necron): `phasefour.wav` + - F7 Phase 5 (Wither King): `phasefive.wav` - Hub: `hub.wav` - Private Island: `island.wav` - Farming Islands: `farmingislands.wav` @@ -162,12 +187,34 @@ By adding numbers to the end of the file, you can have multiple music files for - dungeon1.wav - dungeon2.wav - dungeon99.wav +</details> + +<details> +<summary>Alert Regex</summary> + +## Alert Regex +To replace alert text with a captured group, add `$$x$$` to the alert text, with `x` being the number of the capture group. `$$0$$` will always be replaced with the entire trigger message. + +For example, with the following alert + +Regex: `From (.*) (.*): (.*)` +Alert Text: `$$2$$ says $$3$$` +Trigger Message: `From [ADMIN] Plancke: Nice autogg` + +the following alert text would appear + +`Plancke says Nice autogg`. +</details> + +<details> +<summary>Notes</summary> ### Notes - Slayer tracker for token drops and 20% chance drops uses a 12x12x12 bounding box centered on the player to detect the drops. If you are out of the range of the item drop, it will not count on the tracker. - API commands may take a while depending on your internet connection. The API may also go down. - If you use too many API commands too fast, you can and will get rate-limited. - Importing fishing uses your sea creature kills, which may not always be exactly correct (e.x. someone else kills your sea creature). +</details> ### Credits to Open Source Software Credit to all the following open source software used in this mod. diff --git a/build.gradle b/build.gradle index 3247272..fe6e801 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" } */ -version = "1.8.7-beta5" +version = "1.8.7-beta6" group= "me.Danker.DankersSkyblockMod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "Danker's Skyblock Mod" diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java index 16c73c8..4338242 100644 --- a/src/main/java/me/Danker/DankersSkyblockMod.java +++ b/src/main/java/me/Danker/DankersSkyblockMod.java @@ -65,13 +65,13 @@ import java.util.Map; @Mod(modid = DankersSkyblockMod.MODID, version = DankersSkyblockMod.VERSION, clientSideOnly = true) public class DankersSkyblockMod { public static final String MODID = "Danker's Skyblock Mod"; - public static final String VERSION = "1.8.7-beta5"; + public static final String VERSION = "1.8.7-beta6"; public static int titleTimer = -1; public static boolean showTitle = false; public static String titleText = ""; public static int tickAmount = 1; public static int repoTickAmount = 1; - public static KeyBinding[] keyBindings = new KeyBinding[3]; + public static KeyBinding[] keyBindings = new KeyBinding[4]; public static boolean usingLabymod = false; public static boolean usingOAM = false; static boolean OAMWarning = false; @@ -117,6 +117,7 @@ public class DankersSkyblockMod { MinecraftForge.EVENT_BUS.register(new BonzoMaskTimer()); MinecraftForge.EVENT_BUS.register(new BoulderSolver()); MinecraftForge.EVENT_BUS.register(new CakeTimer()); + MinecraftForge.EVENT_BUS.register(new ChatAliases()); MinecraftForge.EVENT_BUS.register(new ChronomatronSolver()); MinecraftForge.EVENT_BUS.register(new ClickInOrderSolver()); MinecraftForge.EVENT_BUS.register(new ColouredNames()); @@ -128,6 +129,7 @@ public class DankersSkyblockMod { MinecraftForge.EVENT_BUS.register(new EndOfFarmAlert()); MinecraftForge.EVENT_BUS.register(new ExpertiseLore()); MinecraftForge.EVENT_BUS.register(new FasterMaddoxCalling()); + MinecraftForge.EVENT_BUS.register(new FirePillarDisplay()); MinecraftForge.EVENT_BUS.register(new GemstonesLore()); MinecraftForge.EVENT_BUS.register(new GiantHPDisplay()); MinecraftForge.EVENT_BUS.register(new GoldenEnchants()); @@ -179,6 +181,7 @@ public class DankersSkyblockMod { MinecraftForge.EVENT_BUS.register(new ZombieTracker()); Alerts.configFile = configDirectory + "/dsmalerts.json"; + ChatAliases.configFile = configDirectory + "/dsmaliases.json"; ConfigHandler.reloadConfig(); GoldenEnchants.init(); @@ -189,6 +192,7 @@ public class DankersSkyblockMod { 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"); keyBindings[2] = new KeyBinding("Start/Stop Skill Tracker", Keyboard.KEY_NUMPAD5, "Danker's Skyblock Mod"); + keyBindings[3] = new KeyBinding("Create Waypoint", Keyboard.KEY_NUMPAD6, "Danker's Skyblock Mod"); for (KeyBinding keyBinding : keyBindings) { ClientRegistry.registerKeyBinding(keyBinding); @@ -459,14 +463,8 @@ public class DankersSkyblockMod { @SubscribeEvent public void onKey(KeyInputEvent event) { - if (!Utils.inSkyblock) return; - - EntityPlayerSP player = Minecraft.getMinecraft().thePlayer; - if (keyBindings[1].isPressed()) { - if (Utils.inDungeons) { - player.dropOneItem(true); - } - } + if (!Utils.inDungeons) return; + if (keyBindings[1].isPressed()) Minecraft.getMinecraft().thePlayer.dropOneItem(true); } @SubscribeEvent diff --git a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java index f5dea9b..4eaf2d6 100644 --- a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java +++ b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java @@ -1,14 +1,11 @@ package me.Danker.commands; -import me.Danker.DankersSkyblockMod; import me.Danker.features.CrystalHollowWaypoints; -import net.minecraft.client.Minecraft; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; + +import java.util.Arrays; public class CrystalHollowWaypointCommand extends CommandBase { @@ -30,34 +27,12 @@ public class CrystalHollowWaypointCommand extends CommandBase { @Override public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { if (arg1.length == 0) return; - addWaypoints(String.join(" ", arg1), false); - } - - public static void addWaypoints(String list, boolean auto) { - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - String[] waypoints = list.split("\\\\n"); - - for (String waypoint : waypoints) { - String[] parts = waypoint.split("@-"); - String[] coords = parts[1].split(","); - - String location = parts[0]; - BlockPos pos = new BlockPos(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); - CrystalHollowWaypoints.Waypoint newWaypoint = new CrystalHollowWaypoints.Waypoint(location, pos); - - if (auto) { - boolean contains = false; - for (CrystalHollowWaypoints.Waypoint existing : CrystalHollowWaypoints.waypoints) { - if (existing.location.equals(location)) { - contains = true; - break; - } - } - if (contains) continue; - } - CrystalHollowWaypoints.waypoints.add(newWaypoint); - player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos())); + if (arg1.length > 4 && arg1[0].equals("st")) { + String name = String.join(" ", Arrays.copyOfRange(arg1, 4, arg1.length)); + CrystalHollowWaypoints.addWaypoint(name, arg1[1], arg1[2], arg1[3]); + } else { + CrystalHollowWaypoints.addDSMWaypoints(String.join(" ", arg1), false); } } diff --git a/src/main/java/me/Danker/commands/CustomMusicCommand.java b/src/main/java/me/Danker/commands/CustomMusicCommand.java index f0634fc..621a6f0 100644 --- a/src/main/java/me/Danker/commands/CustomMusicCommand.java +++ b/src/main/java/me/Danker/commands/CustomMusicCommand.java @@ -21,7 +21,7 @@ public class CustomMusicCommand extends CommandBase { @Override public String getCommandUsage(ICommandSender arg0) { - return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon/hub/island/dungeonhub/farmingislands/" + + return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon/p2/p3/p4/p5/hub/island/dungeonhub/farmingislands/" + "goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/crimsonisle/end/park] [1-100]"; } @@ -90,6 +90,30 @@ public class CustomMusicCommand extends CommandBase { CustomMusic.dungeonVolume = volume; ConfigHandler.writeIntConfig("music", "DungeonVolume", volume); break; + case "p2": + if (!CustomMusic.phase2.setVolume(volume)) return; + + CustomMusic.phase2Volume = volume; + ConfigHandler.writeIntConfig("music", "Phase2Volume", volume); + break; + case "p3": + if (!CustomMusic.phase3.setVolume(volume)) return; + + CustomMusic.phase3Volume = volume; + ConfigHandler.writeIntConfig("music", "Phase3Volume", volume); + break; + case "p4": + if (!CustomMusic.phase4.setVolume(volume)) return; + + CustomMusic.phase4Volume = volume; + ConfigHandler.writeIntConfig("music", "Phase4Volume", volume); + break; + case "p5": + if (!CustomMusic.phase5.setVolume(volume)) return; + + CustomMusic.phase5Volume = volume; + ConfigHandler.writeIntConfig("music", "Phase5Volume", volume); + break; case "hub": if (!CustomMusic.hub.setVolume(volume)) return; diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java index 14041d1..1c5ea53 100644 --- a/src/main/java/me/Danker/commands/DankerGuiCommand.java +++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java @@ -63,6 +63,7 @@ public class DankerGuiCommand extends CommandBase { debug.append("[gianthp][").append(MoveCommand.giantHPXY[0]).append(", ").append(MoveCommand.giantHPXY[1]).append("]\n"); debug.append("[abilitycooldowns][").append(MoveCommand.abilityCooldownsXY[0]).append(", ").append(MoveCommand.abilityCooldownsXY[1]).append("]\n"); debug.append("[dungeonscore][").append(MoveCommand.dungeonScoreXY[0]).append(", ").append(MoveCommand.dungeonScoreXY[1]).append("]\n"); + debug.append("[firepillar][").append(MoveCommand.firePillarXY[0]).append(", ").append(MoveCommand.firePillarXY[1]).append("]\n"); debug.append("# Other Settings\n"); debug.append("[Current Display][").append(LootDisplay.display).append("]\n"); debug.append("[Auto Display][").append(LootDisplay.auto).append("]\n"); diff --git a/src/main/java/me/Danker/commands/ImportFishingCommand.java b/src/main/java/me/Danker/commands/ImportFishingCommand.java index f51e01f..46d9906 100644 --- a/src/main/java/me/Danker/commands/ImportFishingCommand.java +++ b/src/main/java/me/Danker/commands/ImportFishingCommand.java @@ -112,13 +112,14 @@ public class ImportFishingCommand extends CommandBase { FishingTracker.lavaBlazes = getSCFromApi(statsObject, "kills_lava_blaze"); FishingTracker.lavaPigmen = getSCFromApi(statsObject, "kills_lava_pigman"); FishingTracker.zombieMiners = getSCFromApi(statsObject, "kills_zombie_miner"); + FishingTracker.plhlegblasts = getSCFromApi(statsObject, "kills_plhlegblast"); FishingTracker.magmaSlugs = getSCFromApi(statsObject, "kills_magma_slug"); FishingTracker.moogmas = getSCFromApi(statsObject, "kills_moogma"); FishingTracker.lavaLeeches = getSCFromApi(statsObject, "kills_lava_leech"); FishingTracker.pyroclasticWorms = getSCFromApi(statsObject, "kills_pyroclastic_worm"); FishingTracker.lavaFlames = getSCFromApi(statsObject, "kills_lava_flame"); FishingTracker.fireEels = getSCFromApi(statsObject, "kills_fire_eel"); - FishingTracker.tauruses = getSCFromApi(statsObject, "kills_taurus"); + FishingTracker.tauruses = getSCFromApi(statsObject, "kills_pig_rider"); FishingTracker.thunders = getSCFromApi(statsObject, "kills_thunder"); FishingTracker.lordJawbuses = getSCFromApi(statsObject, "kills_lord_jawbus"); @@ -160,6 +161,7 @@ public class ImportFishingCommand extends CommandBase { ConfigHandler.writeIntConfig("fishing", "lavaBlaze", FishingTracker.lavaBlazes); ConfigHandler.writeIntConfig("fishing", "lavaPigman", FishingTracker.lavaPigmen); ConfigHandler.writeIntConfig("fishing", "zombieMiner", FishingTracker.zombieMiners); + ConfigHandler.writeIntConfig("fishing", "plhlegblast", FishingTracker.plhlegblasts); ConfigHandler.writeIntConfig("fishing", "magmaSlug", FishingTracker.magmaSlugs); ConfigHandler.writeIntConfig("fishing", "moogma", FishingTracker.moogmas); ConfigHandler.writeIntConfig("fishing", "lavaLeech", FishingTracker.lavaLeeches); diff --git a/src/main/java/me/Danker/commands/LootCommand.java b/src/main/java/me/Danker/commands/LootCommand.java index 3be46a4..af5479e 100644 --- a/src/main/java/me/Danker/commands/LootCommand.java +++ b/src/main/java/me/Danker/commands/LootCommand.java @@ -70,294 +70,298 @@ public class LootCommand extends CommandBase { switch (arg1[0].toLowerCase()) { case "wolf": if (showSession) { - if (WolfTracker.wolfTimeSession == -1) { + if (WolfTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(WolfTracker.wolfTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(WolfTracker.timeSession, timeNow); } - if (WolfTracker.wolfBossesSession == -1) { + if (WolfTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(WolfTracker.wolfBossesSession); + bossesBetween = nf.format(WolfTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(WolfTracker.wolfWheelsSession); + drop20 = nf.format(WolfTracker.wheelsSession); } else { - drop20 = nf.format(WolfTracker.wolfWheelsDropsSession) + " times"; + drop20 = nf.format(WolfTracker.wheelsDropsSession) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_AQUA + EnumChatFormatting.BOLD + " Sven Loot Summary (Current Session):\n" + - EnumChatFormatting.GOLD + " Svens Killed: " + nf.format(WolfTracker.wolfSvensSession) + "\n" + - EnumChatFormatting.GREEN + " Wolf Teeth: " + nf.format(WolfTracker.wolfTeethSession) + "\n" + + EnumChatFormatting.GOLD + " Svens Killed: " + nf.format(WolfTracker.svensSession) + "\n" + + EnumChatFormatting.GREEN + " Wolf Teeth: " + nf.format(WolfTracker.teethSession) + "\n" + EnumChatFormatting.BLUE + " Hamster Wheels: " + drop20 + "\n" + - EnumChatFormatting.AQUA + " Spirit Runes: " + WolfTracker.wolfSpiritsSession + "\n" + - EnumChatFormatting.WHITE + " Critical VI Books: " + WolfTracker.wolfBooksSession + "\n" + - EnumChatFormatting.DARK_RED + " Red Claw Eggs: " + WolfTracker.wolfEggsSession + "\n" + - EnumChatFormatting.GOLD + " Couture Runes: " + WolfTracker.wolfCouturesSession + "\n" + - EnumChatFormatting.AQUA + " Grizzly Baits: " + WolfTracker.wolfBaitsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + " Overfluxes: " + WolfTracker.wolfFluxesSession + "\n" + + EnumChatFormatting.AQUA + " Spirit Runes: " + WolfTracker.spiritsSession + "\n" + + EnumChatFormatting.WHITE + " Critical VI Books: " + WolfTracker.booksSession + "\n" + + EnumChatFormatting.DARK_AQUA + " Furballs: " + WolfTracker.furballsSession + "\n" + + EnumChatFormatting.DARK_RED + " Red Claw Eggs: " + WolfTracker.eggsSession + "\n" + + EnumChatFormatting.GOLD + " Couture Runes: " + WolfTracker.couturesSession + "\n" + + EnumChatFormatting.AQUA + " Grizzly Baits: " + WolfTracker.baitsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + " Overfluxes: " + WolfTracker.fluxesSession + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + " -------------------")); return; } - if (WolfTracker.wolfTime == -1) { + if (WolfTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(WolfTracker.wolfTime, timeNow); + timeBetween = Utils.getTimeBetween(WolfTracker.time, timeNow); } - if (WolfTracker.wolfBosses == -1) { + if (WolfTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(WolfTracker.wolfBosses); + bossesBetween = nf.format(WolfTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(WolfTracker.wolfWheels); + drop20 = nf.format(WolfTracker.wheels); } else { - drop20 = nf.format(WolfTracker.wolfWheelsDrops) + " times"; + drop20 = nf.format(WolfTracker.wheelsDrops) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_AQUA + EnumChatFormatting.BOLD + " Sven Loot Summary:\n" + - EnumChatFormatting.GOLD + " Svens Killed: " + nf.format(WolfTracker.wolfSvens) + "\n" + - EnumChatFormatting.GREEN + " Wolf Teeth: " + nf.format(WolfTracker.wolfTeeth) + "\n" + + EnumChatFormatting.GOLD + " Svens Killed: " + nf.format(WolfTracker.svens) + "\n" + + EnumChatFormatting.GREEN + " Wolf Teeth: " + nf.format(WolfTracker.teeth) + "\n" + EnumChatFormatting.BLUE + " Hamster Wheels: " + drop20 + "\n" + - EnumChatFormatting.AQUA + " Spirit Runes: " + WolfTracker.wolfSpirits + "\n" + - EnumChatFormatting.WHITE + " Critical VI Books: " + WolfTracker.wolfBooks + "\n" + - EnumChatFormatting.DARK_RED + " Red Claw Eggs: " + WolfTracker.wolfEggs + "\n" + - EnumChatFormatting.GOLD + " Couture Runes: " + WolfTracker.wolfCoutures + "\n" + - EnumChatFormatting.AQUA + " Grizzly Baits: " + WolfTracker.wolfBaits + "\n" + - EnumChatFormatting.DARK_PURPLE + " Overfluxes: " + WolfTracker.wolfFluxes + "\n" + + EnumChatFormatting.AQUA + " Spirit Runes: " + WolfTracker.spirits + "\n" + + EnumChatFormatting.WHITE + " Critical VI Books: " + WolfTracker.books + "\n" + + EnumChatFormatting.DARK_AQUA + " Furballs: " + WolfTracker.furballs + "\n" + + EnumChatFormatting.DARK_RED + " Red Claw Eggs: " + WolfTracker.eggs + "\n" + + EnumChatFormatting.GOLD + " Couture Runes: " + WolfTracker.coutures + "\n" + + EnumChatFormatting.AQUA + " Grizzly Baits: " + WolfTracker.baits + "\n" + + EnumChatFormatting.DARK_PURPLE + " Overfluxes: " + WolfTracker.fluxes + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + " -------------------")); break; case "spider": if (showSession) { - if (SpiderTracker.spiderTimeSession == -1) { + if (SpiderTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(SpiderTracker.spiderTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(SpiderTracker.timeSession, timeNow); } - if (SpiderTracker.spiderBossesSession == -1) { + if (SpiderTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(SpiderTracker.spiderBossesSession); + bossesBetween = nf.format(SpiderTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(SpiderTracker.spiderTAPSession); + drop20 = nf.format(SpiderTracker.TAPSession); } else { - drop20 = nf.format(SpiderTracker.spiderTAPDropsSession) + " times"; + drop20 = nf.format(SpiderTracker.TAPDropsSession) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + " Spider Loot Summary (Current Session):\n" + - EnumChatFormatting.GOLD + " Tarantulas Killed: " + nf.format(SpiderTracker.spiderTarantulasSession) + "\n" + - EnumChatFormatting.GREEN + " Tarantula Webs: " + nf.format(SpiderTracker.spiderWebsSession) + "\n" + + EnumChatFormatting.GOLD + " Tarantulas Killed: " + nf.format(SpiderTracker.tarantulasSession) + "\n" + + EnumChatFormatting.GREEN + " Tarantula Webs: " + nf.format(SpiderTracker.websSession) + "\n" + EnumChatFormatting.DARK_GREEN + " Arrow Poison: " + drop20 + "\n" + - EnumChatFormatting.DARK_GRAY + " Bite Runes: " + SpiderTracker.spiderBitesSession + "\n" + - EnumChatFormatting.WHITE + " Bane VI Books: " + SpiderTracker.spiderBooksSession + "\n" + - EnumChatFormatting.AQUA + " Spider Catalysts: " + SpiderTracker.spiderCatalystsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + " Tarantula Talismans: " + SpiderTracker.spiderTalismansSession + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " Fly Swatters: " + SpiderTracker.spiderSwattersSession + "\n" + - EnumChatFormatting.GOLD + " Digested Mosquitos: " + SpiderTracker.spiderMosquitosSession + "\n" + + EnumChatFormatting.DARK_GRAY + " Bite Runes: " + SpiderTracker.bitesSession + "\n" + + EnumChatFormatting.WHITE + " Bane VI Books: " + SpiderTracker.booksSession + "\n" + + EnumChatFormatting.AQUA + " Spider Catalysts: " + SpiderTracker.catalystsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + " Tarantula Talismans: " + SpiderTracker.talismansSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " Fly Swatters: " + SpiderTracker.swattersSession + "\n" + + EnumChatFormatting.GOLD + " Digested Mosquitos: " + SpiderTracker.mosquitosSession + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.RED + EnumChatFormatting.BOLD + " -------------------")); return; } - if (SpiderTracker.spiderTime == -1) { + if (SpiderTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(SpiderTracker.spiderTime, timeNow); + timeBetween = Utils.getTimeBetween(SpiderTracker.time, timeNow); } - if (SpiderTracker.spiderBosses == -1) { + if (SpiderTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(SpiderTracker.spiderBosses); + bossesBetween = nf.format(SpiderTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(SpiderTracker.spiderTAP); + drop20 = nf.format(SpiderTracker.TAP); } else { - drop20 = nf.format(SpiderTracker.spiderTAPDrops) + " times"; + drop20 = nf.format(SpiderTracker.TAPDrops) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + " Spider Loot Summary:\n" + - EnumChatFormatting.GOLD + " Tarantulas Killed: " + nf.format(SpiderTracker.spiderTarantulas) + "\n" + - EnumChatFormatting.GREEN + " Tarantula Webs: " + nf.format(SpiderTracker.spiderWebs) + "\n" + + EnumChatFormatting.GOLD + " Tarantulas Killed: " + nf.format(SpiderTracker.tarantulas) + "\n" + + EnumChatFormatting.GREEN + " Tarantula Webs: " + nf.format(SpiderTracker.webs) + "\n" + EnumChatFormatting.DARK_GREEN + " Arrow Poison: " + drop20 + "\n" + - EnumChatFormatting.DARK_GRAY + " Bite Runes: " + SpiderTracker.spiderBites + "\n" + - EnumChatFormatting.WHITE + " Bane VI Books: " + SpiderTracker.spiderBooks + "\n" + - EnumChatFormatting.AQUA + " Spider Catalysts: " + SpiderTracker.spiderCatalysts + "\n" + - EnumChatFormatting.DARK_PURPLE + " Tarantula Talismans: " + SpiderTracker.spiderTalismans + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " Fly Swatters: " + SpiderTracker.spiderSwatters + "\n" + - EnumChatFormatting.GOLD + " Digested Mosquitos: " + SpiderTracker.spiderMosquitos + "\n" + + EnumChatFormatting.DARK_GRAY + " Bite Runes: " + SpiderTracker.bites + "\n" + + EnumChatFormatting.WHITE + " Bane VI Books: " + SpiderTracker.books + "\n" + + EnumChatFormatting.AQUA + " Spider Catalysts: " + SpiderTracker.catalysts + "\n" + + EnumChatFormatting.DARK_PURPLE + " Tarantula Talismans: " + SpiderTracker.talismans + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " Fly Swatters: " + SpiderTracker.swatters + "\n" + + EnumChatFormatting.GOLD + " Digested Mosquitos: " + SpiderTracker.mosquitos + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.RED + EnumChatFormatting.BOLD + " -------------------")); break; case "zombie": if (showSession) { - if (ZombieTracker.zombieTimeSession == -1) { + if (ZombieTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(ZombieTracker.zombieTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(ZombieTracker.timeSession, timeNow); } - if (ZombieTracker.zombieBossesSession == -1) { + if (ZombieTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(ZombieTracker.zombieBossesSession); + bossesBetween = nf.format(ZombieTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(ZombieTracker.zombieFoulFleshSession); + drop20 = nf.format(ZombieTracker.foulFleshSession); } else { - drop20 = nf.format(ZombieTracker.zombieFoulFleshDropsSession) + " times"; + drop20 = nf.format(ZombieTracker.foulFleshDropsSession) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Zombie Loot Summary (Current Session):\n" + - EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(ZombieTracker.zombieRevsSession) + "\n" + - EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(ZombieTracker.zombieRevFleshSession) + "\n" + - EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(ZombieTracker.zombieRevVisceraSession) + "\n" + + EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(ZombieTracker.revsSession) + "\n" + + EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(ZombieTracker.revFleshSession) + "\n" + + EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(ZombieTracker.revVisceraSession) + "\n" + EnumChatFormatting.BLUE + " Foul Flesh: " + drop20 + "\n" + - EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " +ZombieTracker.zombiePestilencesSession + "\n" + - EnumChatFormatting.WHITE + " Smite VI Books: " + ZombieTracker.zombieBooksSession + "\n" + - EnumChatFormatting.WHITE + " Smite VII Books: " + ZombieTracker.zombieBooksT7Session + "\n" + - EnumChatFormatting.AQUA + " Undead Catalysts: " + ZombieTracker.zombieUndeadCatasSession + "\n" + - EnumChatFormatting.DARK_PURPLE + " Beheaded Horrors: " + ZombieTracker.zombieBeheadedsSession + "\n" + - EnumChatFormatting.RED + " Revenant Catalysts: " + ZombieTracker.zombieRevCatasSession + "\n" + - EnumChatFormatting.DARK_GREEN + " Snake Runes: " + ZombieTracker.zombieSnakesSession + "\n" + - EnumChatFormatting.GOLD + " Scythe Blades: " + ZombieTracker.zombieScythesSession + "\n" + - EnumChatFormatting.RED + " Shard of the Shreddeds: " + ZombieTracker.zombieShardsSession + "\n" + - EnumChatFormatting.RED + " Warden Hearts: " + ZombieTracker.zombieWardenHeartsSession + "\n" + + EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " +ZombieTracker.pestilencesSession + "\n" + + EnumChatFormatting.WHITE + " Smite VI Books: " + ZombieTracker.booksSession + "\n" + + EnumChatFormatting.WHITE + " Smite VII Books: " + ZombieTracker.booksT7Session + "\n" + + EnumChatFormatting.AQUA + " Undead Catalysts: " + ZombieTracker.undeadCatasSession + "\n" + + EnumChatFormatting.DARK_PURPLE + " Beheaded Horrors: " + ZombieTracker.beheadedsSession + "\n" + + EnumChatFormatting.RED + " Revenant Catalysts: " + ZombieTracker.revCatasSession + "\n" + + EnumChatFormatting.DARK_GREEN + " Snake Runes: " + ZombieTracker.snakesSession + "\n" + + EnumChatFormatting.GOLD + " Scythe Blades: " + ZombieTracker.scythesSession + "\n" + + EnumChatFormatting.RED + " Shard of the Shreddeds: " + ZombieTracker.shardsSession + "\n" + + EnumChatFormatting.RED + " Warden Hearts: " + ZombieTracker.wardenHeartsSession + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + " -------------------")); return; } - if (ZombieTracker.zombieTime == -1) { + if (ZombieTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(ZombieTracker.zombieTime, timeNow); + timeBetween = Utils.getTimeBetween(ZombieTracker.time, timeNow); } - if (ZombieTracker.zombieBosses == -1) { + if (ZombieTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(ZombieTracker.zombieBosses); + bossesBetween = nf.format(ZombieTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(ZombieTracker.zombieFoulFlesh); + drop20 = nf.format(ZombieTracker.foulFlesh); } else { - drop20 = nf.format(ZombieTracker.zombieFoulFleshDrops) + " times"; + drop20 = nf.format(ZombieTracker.foulFleshDrops) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Zombie Loot Summary:\n" + - EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(ZombieTracker.zombieRevs) + "\n" + - EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(ZombieTracker.zombieRevFlesh) + "\n" + - EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(ZombieTracker.zombieRevViscera) + "\n" + + EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(ZombieTracker.revs) + "\n" + + EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(ZombieTracker.revFlesh) + "\n" + + EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(ZombieTracker.revViscera) + "\n" + EnumChatFormatting.BLUE + " Foul Flesh: " + drop20 + "\n" + - EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " + ZombieTracker.zombiePestilences + "\n" + - EnumChatFormatting.WHITE + " Smite VI Books: " + ZombieTracker.zombieBooks + "\n" + - EnumChatFormatting.WHITE + " Smite VII Books: " + ZombieTracker.zombieBooksT7 + "\n" + - EnumChatFormatting.AQUA + " Undead Catalysts: " + ZombieTracker.zombieUndeadCatas + "\n" + - EnumChatFormatting.DARK_PURPLE + " Beheaded Horrors: " + ZombieTracker.zombieBeheadeds + "\n" + - EnumChatFormatting.RED + " Revenant Catalysts: " + ZombieTracker.zombieRevCatas + "\n" + - EnumChatFormatting.DARK_GREEN + " Snake Runes: " + ZombieTracker.zombieSnakes + "\n" + - EnumChatFormatting.GOLD + " Scythe Blades: " + ZombieTracker.zombieScythes + "\n" + - EnumChatFormatting.RED + " Shard of the Shreddeds: " + ZombieTracker.zombieShards + "\n" + - EnumChatFormatting.RED + " Warden Hearts: " + ZombieTracker.zombieWardenHearts + "\n" + + EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " + ZombieTracker.pestilences + "\n" + + EnumChatFormatting.WHITE + " Smite VI Books: " + ZombieTracker.books + "\n" + + EnumChatFormatting.WHITE + " Smite VII Books: " + ZombieTracker.booksT7 + "\n" + + EnumChatFormatting.AQUA + " Undead Catalysts: " + ZombieTracker.undeadCatas + "\n" + + EnumChatFormatting.DARK_PURPLE + " Beheaded Horrors: " + ZombieTracker.beheadeds + "\n" + + EnumChatFormatting.RED + " Revenant Catalysts: " + ZombieTracker.revCatas + "\n" + + EnumChatFormatting.DARK_GREEN + " Snake Runes: " + ZombieTracker.snakes + "\n" + + EnumChatFormatting.GOLD + " Scythe Blades: " + ZombieTracker.scythes + "\n" + + EnumChatFormatting.RED + " Shard of the Shreddeds: " + ZombieTracker.shards + "\n" + + EnumChatFormatting.RED + " Warden Hearts: " + ZombieTracker.wardenHearts + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + " -------------------")); break; case "enderman": if (showSession) { - if (EndermanTracker.endermanTimeSession == -1) { + if (EndermanTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(EndermanTracker.endermanTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(EndermanTracker.timeSession, timeNow); } - if (EndermanTracker.endermanBossesSession == -1) { + if (EndermanTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(EndermanTracker.endermanBossesSession); + bossesBetween = nf.format(EndermanTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(EndermanTracker.endermanTAPSession); + drop20 = nf.format(EndermanTracker.TAPSession); } else { - drop20 = nf.format(EndermanTracker.endermanTAPDropsSession) + " times"; + drop20 = nf.format(EndermanTracker.TAPDropsSession) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Enderman Loot Summary (Current Session):\n" + - EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(EndermanTracker.endermanVoidgloomsSession) + "\n" + - EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(EndermanTracker.endermanNullSpheresSession) + "\n" + + EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(EndermanTracker.voidgloomsSession) + "\n" + + EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(EndermanTracker.nullSpheresSession) + "\n" + EnumChatFormatting.DARK_PURPLE + " Arrow Poison: " + drop20 + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + EndermanTracker.endermanEndersnakesSession + "\n" + - EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + EndermanTracker.endermanSummoningEyesSession + "\n" + - EnumChatFormatting.AQUA + " Mana Steal Books: " + EndermanTracker.endermanManaBooksSession + "\n" + - EnumChatFormatting.BLUE + " Transmission Tuners: " + EndermanTracker.endermanTunersSession + "\n" + - EnumChatFormatting.YELLOW + " Null Atoms: " + EndermanTracker.endermanAtomsSession + "\n" + - EnumChatFormatting.AQUA + " Espresso Machines: " + EndermanTracker.endermanEspressoMachinesSession + "\n" + - EnumChatFormatting.WHITE + " Smarty Pants Books: " + EndermanTracker.endermanSmartyBooksSession + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + EndermanTracker.endermanEndRunesSession + "\n" + - EnumChatFormatting.RED + " Blood Chalices: " + EndermanTracker.endermanChalicesSession + "\n" + - EnumChatFormatting.RED + " Sinful Dice: " + EndermanTracker.endermanDiceSession + "\n" + - EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + EndermanTracker.endermanArtifactsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + EndermanTracker.endermanSkinsSession + "\n" + - EnumChatFormatting.GRAY + " Enchant Runes: " + EndermanTracker.endermanEnchantRunesSession + "\n" + - EnumChatFormatting.GOLD + " Etherwarp Mergers: " + EndermanTracker.endermanMergersSession + "\n" + - EnumChatFormatting.GOLD + " Judgement Cores: " + EndermanTracker.endermanCoresSession + "\n" + - EnumChatFormatting.RED + " Ender Slayer VII Books: " + EndermanTracker.endermanEnderBooksSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + EndermanTracker.endersnakesSession + "\n" + + EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + EndermanTracker.summoningEyesSession + "\n" + + EnumChatFormatting.AQUA + " Mana Steal Books: " + EndermanTracker.manaBooksSession + "\n" + + EnumChatFormatting.BLUE + " Transmission Tuners: " + EndermanTracker.tunersSession + "\n" + + EnumChatFormatting.YELLOW + " Null Atoms: " + EndermanTracker.atomsSession + "\n" + + EnumChatFormatting.YELLOW + " Hazmat Endermen: " + EndermanTracker.hazmatsSession + "\n" + + EnumChatFormatting.AQUA + " Espresso Machines: " + EndermanTracker.espressoMachinesSession + "\n" + + EnumChatFormatting.WHITE + " Smarty Pants Books: " + EndermanTracker.smartyBooksSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + EndermanTracker.endRunesSession + "\n" + + EnumChatFormatting.RED + " Blood Chalices: " + EndermanTracker.chalicesSession + "\n" + + EnumChatFormatting.RED + " Sinful Dice: " + EndermanTracker.diceSession + "\n" + + EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + EndermanTracker.artifactsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + EndermanTracker.skinsSession + "\n" + + EnumChatFormatting.GRAY + " Enchant Runes: " + EndermanTracker.enchantRunesSession + "\n" + + EnumChatFormatting.GOLD + " Etherwarp Mergers: " + EndermanTracker.mergersSession + "\n" + + EnumChatFormatting.GOLD + " Judgement Cores: " + EndermanTracker.coresSession + "\n" + + EnumChatFormatting.RED + " Ender Slayer VII Books: " + EndermanTracker.enderBooksSession + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD + " -------------------")); return; } - if (EndermanTracker.endermanTime == -1) { + if (EndermanTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(EndermanTracker.endermanTime, timeNow); + timeBetween = Utils.getTimeBetween(EndermanTracker.time, timeNow); } - if (EndermanTracker.endermanBosses == -1) { + if (EndermanTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(EndermanTracker.endermanBosses); + bossesBetween = nf.format(EndermanTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(EndermanTracker.endermanTAP); + drop20 = nf.format(EndermanTracker.TAP); } else { - drop20 = nf.format(EndermanTracker.endermanTAPDrops) + " times"; + drop20 = nf.format(EndermanTracker.TAPDrops) + " times"; } player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Enderman Loot Summary:\n" + - EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(EndermanTracker.endermanVoidglooms) + "\n" + - EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(EndermanTracker.endermanNullSpheres) + "\n" + + EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(EndermanTracker.voidglooms) + "\n" + + EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(EndermanTracker.nullSpheres) + "\n" + EnumChatFormatting.DARK_PURPLE + " Arrow Poison: " + drop20 + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + EndermanTracker.endermanEndersnakes + "\n" + - EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + EndermanTracker.endermanSummoningEyes + "\n" + - EnumChatFormatting.AQUA + " Mana Steal Books: " + EndermanTracker.endermanManaBooks + "\n" + - EnumChatFormatting.BLUE + " Transmission Tuners: " + EndermanTracker.endermanTuners + "\n" + - EnumChatFormatting.YELLOW + " Null Atoms: " + EndermanTracker.endermanAtoms + "\n" + - EnumChatFormatting.AQUA + " Espresso Machines: " + EndermanTracker.endermanEspressoMachines + "\n" + - EnumChatFormatting.WHITE + " Smarty Pants Books: " + EndermanTracker.endermanSmartyBooks + "\n" + - EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + EndermanTracker.endermanEndRunes + "\n" + - EnumChatFormatting.RED + " Blood Chalices: " + EndermanTracker.endermanChalices + "\n" + - EnumChatFormatting.RED + " Sinful Dice: " + EndermanTracker.endermanDice + "\n" + - EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + EndermanTracker.endermanArtifacts + "\n" + - EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + EndermanTracker.endermanSkins + "\n" + - EnumChatFormatting.GRAY + " Enchant Runes: " + EndermanTracker.endermanEnchantRunes + "\n" + - EnumChatFormatting.GOLD + " Etherwarp Mergers: " + EndermanTracker.endermanMergers + "\n" + - EnumChatFormatting.GOLD + " Judgement Cores: " + EndermanTracker.endermanCores + "\n" + - EnumChatFormatting.RED + " Ender Slayer VII Books: " + EndermanTracker.endermanEnderBooks + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + EndermanTracker.endersnakes + "\n" + + EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + EndermanTracker.summoningEyes + "\n" + + EnumChatFormatting.AQUA + " Mana Steal Books: " + EndermanTracker.manaBooks + "\n" + + EnumChatFormatting.BLUE + " Transmission Tuners: " + EndermanTracker.tuners + "\n" + + EnumChatFormatting.YELLOW + " Null Atoms: " + EndermanTracker.atoms + "\n" + + EnumChatFormatting.YELLOW + " Hazmat Endermen: " + EndermanTracker.hazmats + "\n" + + EnumChatFormatting.AQUA + " Espresso Machines: " + EndermanTracker.espressoMachines + "\n" + + EnumChatFormatting.WHITE + " Smarty Pants Books: " + EndermanTracker.smartyBooks + "\n" + + EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + EndermanTracker.endRunes + "\n" + + EnumChatFormatting.RED + " Blood Chalices: " + EndermanTracker.chalices + "\n" + + EnumChatFormatting.RED + " Sinful Dice: " + EndermanTracker.dice + "\n" + + EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + EndermanTracker.artifacts + "\n" + + EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + EndermanTracker.skins + "\n" + + EnumChatFormatting.GRAY + " Enchant Runes: " + EndermanTracker.enchantRunes + "\n" + + EnumChatFormatting.GOLD + " Etherwarp Mergers: " + EndermanTracker.mergers + "\n" + + EnumChatFormatting.GOLD + " Judgement Cores: " + EndermanTracker.cores + "\n" + + EnumChatFormatting.RED + " Ender Slayer VII Books: " + EndermanTracker.enderBooks + "\n" + EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" + EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" + EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD + " -------------------")); @@ -574,6 +578,7 @@ public class LootCommand extends CommandBase { player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.RED + EnumChatFormatting.BOLD + " Lava Fishing Summary (Current Session):\n" + + EnumChatFormatting.BLUE + " Plhlegblasts: " + nf.format(FishingTracker.plhlegblastsSession) + "\n" + EnumChatFormatting.DARK_RED + " Magma Slugs: " + nf.format(FishingTracker.magmaSlugsSession) + "\n" + EnumChatFormatting.RED + " Moogmas: " + nf.format(FishingTracker.moogmasSession) + "\n" + EnumChatFormatting.RED + " Lava Leeches: " + nf.format(FishingTracker.lavaLeechesSession) + "\n" + @@ -602,6 +607,7 @@ public class LootCommand extends CommandBase { player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" + EnumChatFormatting.RED + EnumChatFormatting.BOLD + " Lava Fishing Summary:\n" + + EnumChatFormatting.BLUE + " Plhlegblasts: " + nf.format(FishingTracker.plhlegblasts) + "\n" + EnumChatFormatting.DARK_RED + " Magma Slugs: " + nf.format(FishingTracker.magmaSlugs) + "\n" + EnumChatFormatting.RED + " Moogmas: " + nf.format(FishingTracker.moogmas) + "\n" + EnumChatFormatting.RED + " Lava Leeches: " + nf.format(FishingTracker.lavaLeeches) + "\n" + diff --git a/src/main/java/me/Danker/commands/MoveCommand.java b/src/main/java/me/Danker/commands/MoveCommand.java index 5a6c6a2..106e603 100644 --- a/src/main/java/me/Danker/commands/MoveCommand.java +++ b/src/main/java/me/Danker/commands/MoveCommand.java @@ -27,6 +27,7 @@ public class MoveCommand extends CommandBase { public static int[] giantHPXY = {0, 0}; public static int[] abilityCooldownsXY = {0, 0}; public static int[] dungeonScoreXY = {0, 0}; + public static int[] firePillarXY = {0, 0}; @Override public String getCommandName() { @@ -37,7 +38,7 @@ public class MoveCommand extends CommandBase { public String getCommandUsage(ICommandSender arg0) { return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/" + "wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp/" + - "abilitycooldowns/dungeonscore> <x> <y>"; + "abilitycooldowns/dungeonscore/firepillar> <x> <y>"; } public static String usage(ICommandSender arg0) { @@ -54,7 +55,7 @@ public class MoveCommand extends CommandBase { if (args.length == 1) { return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius", - "gianthp", "abilitycooldowns", "dungeonscore"); + "gianthp", "abilitycooldowns", "dungeonscore", "firepillar"); } return null; } @@ -167,6 +168,13 @@ public class MoveCommand extends CommandBase { ConfigHandler.writeIntConfig("locations", "dungeonScoreY", dungeonScoreXY[1]); player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Dungeon score has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2])); break; + case "firepillar": + firePillarXY[0] = Integer.parseInt(arg1[1]); + firePillarXY[1] = Integer.parseInt(arg1[2]); + ConfigHandler.writeIntConfig("locations", "firePillarX", firePillarXY[0]); + ConfigHandler.writeIntConfig("locations", "firePillarY", firePillarXY[1]); + player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Fire pillar has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2])); + break; default: player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0))); } diff --git a/src/main/java/me/Danker/commands/ResetLootCommand.java b/src/main/java/me/Danker/commands/ResetLootCommand.java index c17c2ae..9256394 100644 --- a/src/main/java/me/Danker/commands/ResetLootCommand.java +++ b/src/main/java/me/Danker/commands/ResetLootCommand.java @@ -126,82 +126,84 @@ public class ResetLootCommand extends CommandBase { } static void resetZombie() { - ZombieTracker.zombieRevsSession = 0; - ZombieTracker.zombieRevFleshSession = 0; - ZombieTracker.zombieRevVisceraSession = 0; - ZombieTracker.zombieFoulFleshSession = 0; - ZombieTracker.zombieFoulFleshDropsSession = 0; - ZombieTracker.zombiePestilencesSession = 0; - ZombieTracker.zombieUndeadCatasSession = 0; - ZombieTracker.zombieBooksSession = 0; - ZombieTracker.zombieBooksT7Session = 0; - ZombieTracker.zombieBeheadedsSession = 0; - ZombieTracker.zombieRevCatasSession = 0; - ZombieTracker.zombieSnakesSession = 0; - ZombieTracker.zombieScythesSession = 0; - ZombieTracker.zombieTimeSession = -1; - ZombieTracker.zombieBossesSession = -1; + ZombieTracker.revsSession = 0; + ZombieTracker.revFleshSession = 0; + ZombieTracker.revVisceraSession = 0; + ZombieTracker.foulFleshSession = 0; + ZombieTracker.foulFleshDropsSession = 0; + ZombieTracker.pestilencesSession = 0; + ZombieTracker.undeadCatasSession = 0; + ZombieTracker.booksSession = 0; + ZombieTracker.booksT7Session = 0; + ZombieTracker.beheadedsSession = 0; + ZombieTracker.revCatasSession = 0; + ZombieTracker.snakesSession = 0; + ZombieTracker.scythesSession = 0; + ZombieTracker.timeSession = -1; + ZombieTracker.bossesSession = -1; ConfigHandler.deleteCategory("zombie"); ConfigHandler.reloadConfig(); } static void resetSpider() { - SpiderTracker.spiderTarantulasSession = 0; - SpiderTracker.spiderWebsSession = 0; - SpiderTracker.spiderTAPSession = 0; - SpiderTracker.spiderTAPDropsSession = 0; - SpiderTracker.spiderBitesSession = 0; - SpiderTracker.spiderCatalystsSession = 0; - SpiderTracker.spiderBooksSession = 0; - SpiderTracker.spiderSwattersSession = 0; - SpiderTracker.spiderTalismansSession = 0; - SpiderTracker.spiderMosquitosSession = 0; - SpiderTracker.spiderTimeSession = -1; - SpiderTracker.spiderBossesSession = -1; + SpiderTracker.tarantulasSession = 0; + SpiderTracker.websSession = 0; + SpiderTracker.TAPSession = 0; + SpiderTracker.TAPDropsSession = 0; + SpiderTracker.bitesSession = 0; + SpiderTracker.catalystsSession = 0; + SpiderTracker.booksSession = 0; + SpiderTracker.swattersSession = 0; + SpiderTracker.talismansSession = 0; + SpiderTracker.mosquitosSession = 0; + SpiderTracker.timeSession = -1; + SpiderTracker.bossesSession = -1; ConfigHandler.deleteCategory("spider"); ConfigHandler.reloadConfig(); } static void resetWolf() { - WolfTracker.wolfSvensSession = 0; - WolfTracker.wolfTeethSession = 0; - WolfTracker.wolfWheelsSession = 0; - WolfTracker.wolfWheelsDropsSession = 0; - WolfTracker.wolfSpiritsSession = 0; - WolfTracker.wolfBooksSession = 0; - WolfTracker.wolfEggsSession = 0; - WolfTracker.wolfCouturesSession = 0; - WolfTracker.wolfBaitsSession = 0; - WolfTracker.wolfFluxesSession = 0; - WolfTracker.wolfTimeSession = -1; - WolfTracker.wolfBossesSession = -1; + WolfTracker.svensSession = 0; + WolfTracker.teethSession = 0; + WolfTracker.wheelsSession = 0; + WolfTracker.wheelsDropsSession = 0; + WolfTracker.spiritsSession = 0; + WolfTracker.booksSession = 0; + WolfTracker.furballsSession = 0; + WolfTracker.eggsSession = 0; + WolfTracker.couturesSession = 0; + WolfTracker.baitsSession = 0; + WolfTracker.fluxesSession = 0; + WolfTracker.timeSession = -1; + WolfTracker.bossesSession = -1; ConfigHandler.deleteCategory("wolf"); ConfigHandler.reloadConfig(); } static void resetEnderman() { - EndermanTracker.endermanVoidgloomsSession = 0; - EndermanTracker.endermanNullSpheresSession = 0; - EndermanTracker.endermanTAPSession = 0; - EndermanTracker.endermanTAPDropsSession = 0; - EndermanTracker.endermanEndersnakesSession = 0; - EndermanTracker.endermanSummoningEyesSession = 0; - EndermanTracker.endermanManaBooksSession = 0; - EndermanTracker.endermanTunersSession = 0; - EndermanTracker.endermanAtomsSession = 0; - EndermanTracker.endermanEspressoMachinesSession = 0; - EndermanTracker.endermanSmartyBooksSession = 0; - EndermanTracker.endermanEndRunesSession = 0; - EndermanTracker.endermanChalicesSession = 0; - EndermanTracker.endermanDiceSession = 0; - EndermanTracker.endermanArtifactsSession = 0; - EndermanTracker.endermanSkinsSession = 0; - EndermanTracker.endermanMergersSession = 0; - EndermanTracker.endermanCoresSession = 0; - EndermanTracker.endermanEnchantRunesSession = 0; - EndermanTracker.endermanEnderBooksSession = 0; - EndermanTracker.endermanTimeSession = -1; - EndermanTracker.endermanBossesSession = -1; + EndermanTracker.voidgloomsSession = 0; + EndermanTracker.nullSpheresSession = 0; + EndermanTracker.TAPSession = 0; + EndermanTracker.TAPDropsSession = 0; + EndermanTracker.endersnakesSession = 0; + EndermanTracker.summoningEyesSession = 0; + EndermanTracker.manaBooksSession = 0; + EndermanTracker.tunersSession = 0; + EndermanTracker.atomsSession = 0; + EndermanTracker.hazmatsSession = 0; + EndermanTracker.espressoMachinesSession = 0; + EndermanTracker.smartyBooksSession = 0; + EndermanTracker.endRunesSession = 0; + EndermanTracker.chalicesSession = 0; + EndermanTracker.diceSession = 0; + EndermanTracker.artifactsSession = 0; + EndermanTracker.skinsSession = 0; + EndermanTracker.mergersSession = 0; + EndermanTracker.coresSession = 0; + EndermanTracker.enchantRunesSession = 0; + EndermanTracker.enderBooksSession = 0; + EndermanTracker.timeSession = -1; + EndermanTracker.bossesSession = -1; ConfigHandler.deleteCategory("enderman"); ConfigHandler.reloadConfig(); } @@ -277,6 +279,7 @@ public class ResetLootCommand extends CommandBase { FishingTracker.lavaBlazesSession = 0; FishingTracker.lavaPigmenSession = 0; FishingTracker.zombieMinersSession = 0; + FishingTracker.plhlegblastsSession = 0; FishingTracker.magmaSlugsSession = 0; FishingTracker.moogmasSession = 0; FishingTracker.lavaLeechesSession = 0; diff --git a/src/main/java/me/Danker/commands/ScaleCommand.java b/src/main/java/me/Danker/commands/ScaleCommand.java index 9bb1f08..a19642b 100644 --- a/src/main/java/me/Danker/commands/ScaleCommand.java +++ b/src/main/java/me/Danker/commands/ScaleCommand.java @@ -27,6 +27,7 @@ public class ScaleCommand extends CommandBase { public static double giantHPScale; public static double abilityCooldownsScale; public static double dungeonScoreScale; + public static double firePillarScale; @Override public String getCommandName() { @@ -36,7 +37,7 @@ public class ScaleCommand extends CommandBase { @Override public String getCommandUsage(ICommandSender arg0) { return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/" + - "bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldown/dungeonscore> <size (0.1 - 10)>"; + "bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldown/dungeonscore/firepillar> <size (0.1 - 10)>"; } public static String usage(ICommandSender arg0) { @@ -53,7 +54,7 @@ public class ScaleCommand extends CommandBase { if (args.length == 1) { return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius", - "gianthp", "abilitycooldowns", "dungeonscore"); + "gianthp", "abilitycooldowns", "dungeonscore", "firepillar"); } return null; } @@ -144,6 +145,11 @@ public class ScaleCommand extends CommandBase { ConfigHandler.writeDoubleConfig("scales", "dungeonScoreScale", dungeonScoreScale); player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Dungeon score has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonScoreScale + "x")); break; + case "firepillar": + firePillarScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "firePillarScale", firePillarScale); + player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Fire pillar has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + firePillarScale + "x")); + break; default: player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0))); } diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java index 6b659ab..2009e1c 100644 --- a/src/main/java/me/Danker/commands/ToggleCommand.java +++ b/src/main/java/me/Danker/commands/ToggleCommand.java @@ -32,6 +32,15 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean expertiseLoreToggled; public static boolean skill50DisplayToggled; public static boolean outlineTextToggled; + public static boolean lowHealthNotifyToggled; + public static boolean stopSalvageStarredToggled; + public static boolean watcherReadyToggled; + public static boolean swapToPickBlockToggled; + public static boolean flowerWeaponsToggled; + public static boolean notifySlayerSlainToggled; + public static boolean necronNotificationsToggled; + public static boolean bonzoTimerToggled; + public static boolean autoSkillTrackerToggled; public static boolean cakeTimerToggled; public static boolean highlightSlayers; public static boolean highlightArachne; @@ -52,6 +61,8 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean dungeonScore; public static boolean hideArmour; public static boolean autoJoinSkyblock; + public static boolean firePillar; + public static boolean aliases; // Chat Messages public static boolean sceptreMessages; public static boolean midasStaffMessages; @@ -60,16 +71,6 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean cooldownMessages; public static boolean manaMessages; public static boolean killComboMessages; - public static boolean lowHealthNotifyToggled; - public static boolean lividSolverToggled; - public static boolean stopSalvageStarredToggled; - public static boolean watcherReadyToggled; - public static boolean swapToPickBlockToggled; - public static boolean flowerWeaponsToggled; - public static boolean notifySlayerSlainToggled; - public static boolean necronNotificationsToggled; - public static boolean bonzoTimerToggled; - public static boolean autoSkillTrackerToggled; // Puzzle Solvers public static boolean threeManToggled; public static boolean oruoToggled; @@ -81,6 +82,7 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean boulderToggled; public static boolean silverfishToggled; public static boolean iceWalkToggled; + public static boolean lividSolverToggled; // Terminal Helpers public static boolean startsWithToggled; public static boolean selectAllToggled; diff --git a/src/main/java/me/Danker/features/Alerts.java b/src/main/java/me/Danker/features/Alerts.java index aab99b3..8f45423 100644 --- a/src/main/java/me/Danker/features/Alerts.java +++ b/src/main/java/me/Danker/features/Alerts.java @@ -1,6 +1,7 @@ package me.Danker.features; import com.google.gson.GsonBuilder; +import javafx.scene.control.Alert; import me.Danker.commands.ToggleCommand; import me.Danker.utils.Utils; import net.minecraft.util.EnumChatFormatting; @@ -12,11 +13,15 @@ import java.awt.*; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Alerts { public static List<Alert> alerts = new ArrayList<>(); + public static HashMap<Alert, Pattern> patterns = new HashMap<>(); public static String configFile; @SubscribeEvent @@ -41,45 +46,59 @@ public class Alerts { } if (!location) continue; - boolean trigger; - switch (alert.mode) { - case "Starts With": - trigger = message.startsWith(alert.message); - break; - case "Contains": - trigger = message.contains(alert.message); - break; - case "Ends With": - trigger = message.endsWith(alert.message); - break; - default: - continue; - } - - if (trigger) { - Utils.createTitle(EnumChatFormatting.RED + alert.alert.replace("&", "§"), 2); - - if (alert.desktop) { - try { - final SystemTray tray = SystemTray.getSystemTray(); - final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); - final TrayIcon trayIcon = new TrayIcon(image, "Alert"); - trayIcon.setImageAutoSize(true); - trayIcon.setToolTip("Alert"); - tray.add(trayIcon); - trayIcon.displayMessage(StringUtils.stripControlCodes(alert.alert), message, TrayIcon.MessageType.INFO); - tray.remove(trayIcon); - } catch (Exception ex) { - ex.printStackTrace(); + if (alert.mode.equals("Regex")) { + Matcher matcher = patterns.get(alert).matcher(message); + if (matcher.matches()) { + matcher.reset(); + String alertText = alert.alert; + + int i = 0; + while (matcher.find()) { + for (int j = 0; j <= matcher.groupCount(); j++) { + alertText = alertText.replace("$$" + i + "$$", matcher.group(j)); + i++; + } } + + Utils.createTitle(EnumChatFormatting.RED + alertText.replace("&", "§"), 2); + if (alert.desktop) Utils.desktopNotification("Alert", alertText, message, TrayIcon.MessageType.INFO); + + return; } + } else { + boolean trigger; + switch (alert.mode) { + case "Starts With": + trigger = message.startsWith(alert.message); + break; + case "Contains": + trigger = message.contains(alert.message); + break; + case "Ends With": + trigger = message.endsWith(alert.message); + break; + default: + continue; + } + + if (trigger) { + Utils.createTitle(EnumChatFormatting.RED + alert.alert.replace("&", "§"), 2); + if (alert.desktop) Utils.desktopNotification("Alert", alert.alert, message, TrayIcon.MessageType.INFO); - return; + return; + } } } } - public static void saveToFile() { + public static void save() { + for (Alert alert : alerts) { + if (alert.mode.equals("Regex")) { + Pattern pattern = Pattern.compile(alert.message); + patterns.put(alert, pattern); + } + } + try (FileWriter writer = new FileWriter(configFile)) { new GsonBuilder().create().toJson(alerts, writer); writer.flush(); diff --git a/src/main/java/me/Danker/features/ChatAliases.java b/src/main/java/me/Danker/features/ChatAliases.java new file mode 100644 index 0000000..ae9e0f7 --- /dev/null +++ b/src/main/java/me/Danker/features/ChatAliases.java @@ -0,0 +1,64 @@ +package me.Danker.features; + +import com.google.gson.GsonBuilder; +import me.Danker.events.PacketWriteEvent; +import net.minecraft.client.Minecraft; +import net.minecraft.network.play.client.C01PacketChatMessage; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class ChatAliases { + + public static List<Alias> aliases = new ArrayList<>(); + public static String configFile; + + @SubscribeEvent + public void onPacketWrite(PacketWriteEvent event) { + if (event.packet instanceof C01PacketChatMessage) { + C01PacketChatMessage packet = (C01PacketChatMessage) event.packet; + String message = packet.getMessage(); + + for (Alias alias : aliases) { + if (!alias.toggled) continue; + message = message.replace(alias.text, alias.alias); + } + + if (!packet.getMessage().equals(message)) { + event.setCanceled(true); + Minecraft.getMinecraft().thePlayer.sendQueue.addToSendQueue(new C01PacketChatMessage(message)); + } + } + } + + public static void save() { + try (FileWriter writer = new FileWriter(configFile)) { + new GsonBuilder().create().toJson(aliases, writer); + writer.flush(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + public static class Alias { + + public String text; + public String alias; + public boolean toggled; + + public Alias(String text, String alias, boolean toggled) { + this.text = text; + this.alias = alias; + this.toggled = toggled; + } + + public void toggle() { + toggled = !toggled; + } + + } + +} diff --git a/src/main/java/me/Danker/features/ColouredNames.java b/src/main/java/me/Danker/features/ColouredNames.java index aad1ab1..90d722e 100644 --- a/src/main/java/me/Danker/features/ColouredNames.java +++ b/src/main/java/me/Danker/features/ColouredNames.java @@ -11,6 +11,7 @@ import net.minecraft.network.play.server.S45PacketTitle; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import net.minecraft.util.StringUtils; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.client.event.RenderLivingEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; @@ -53,7 +54,7 @@ public class ColouredNames { for (String user : users) { for (int i = 0; i < event.toolTip.size(); i++) { - if (event.toolTip.get(i).contains(user)) { + if (StringUtils.stripControlCodes(event.toolTip.get(i)).contains(user)) { event.toolTip.set(i, replaceName(event.toolTip.get(i), user, getColourFromName(user))); } } diff --git a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java index f367877..a8ee0f9 100644 --- a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java +++ b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java @@ -1,12 +1,13 @@ package me.Danker.features; import me.Danker.DankersSkyblockMod; -import me.Danker.commands.CrystalHollowWaypointCommand; import me.Danker.commands.ToggleCommand; +import me.Danker.gui.crystalhollowwaypoints.CrystalHollowAddWaypointGui; import me.Danker.handlers.ScoreboardHandler; import me.Danker.utils.RenderUtils; import me.Danker.utils.Utils; import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.item.EntityArmorStand; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.event.ClickEvent; @@ -16,15 +17,19 @@ import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class CrystalHollowWaypoints { public static List<Waypoint> waypoints = new ArrayList<>(); - + public static Pattern skytilsPattern = Pattern.compile("(?<name>.*?): (?<x>\\d{1,3}) (?<y>\\d{1,3}) (?<z>\\d{1,3})"); + static boolean khazad = false; static boolean fairy = false; static boolean temple = false; @@ -123,30 +128,71 @@ public class CrystalHollowWaypoints { $SBECHWP:Khazad-dûm@-292,63,281\nFairy Grotto@-216,110,400\njungle temple@-525,110,395\nJungle Temple@-493,101,425\nMines of Divan@-673,117,426 */ if (ToggleCommand.crystalHollowWaypoints && Utils.tabLocation.equals("Crystal Hollows")) { - if (!message.contains(player.getName()) && (message.contains(": $DSMCHWP:") || message.contains(": $SBECHWP:"))) { - String waypoints = message.substring(message.lastIndexOf(":") + 1); + if (!message.contains(player.getName())) { + if (message.contains(": $DSMCHWP:") || message.contains(": $SBECHWP:")) { + String waypoints = message.substring(message.lastIndexOf(":") + 1); - if (ToggleCommand.crystalAutoPlayerWaypoints) { - CrystalHollowWaypointCommand.addWaypoints(waypoints, true); - return; - } + if (ToggleCommand.crystalAutoPlayerWaypoints) { + addDSMWaypoints(waypoints, true); + return; + } + + ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); + add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints " + waypoints))); - ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); - add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints " + waypoints))); + new Thread(() -> { + try { + Thread.sleep(10); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "DSM/SBE Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); + }).start(); + } else { + String text = message.substring(message.indexOf(":") + 2); + Matcher matcher = skytilsPattern.matcher(text); + + if (matcher.matches()) { + String name = matcher.group("name"); + String x = matcher.group("x"); + String y = matcher.group("y"); + String z = matcher.group("z"); + + if (ToggleCommand.crystalAutoPlayerWaypoints) { + addWaypoint(name, x, y, z); + return; + } - new Thread(() -> { - try { - Thread.sleep(10); - } catch (InterruptedException ex) { - ex.printStackTrace(); + ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); + add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints st " + x + " " + y + " " + z + " " + name))); + + new Thread(() -> { + try { + Thread.sleep(10); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "Skytils Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); + }).start(); } - player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "DSM/SBE Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); - }).start(); + } } } } @SubscribeEvent + public void onKey(InputEvent.KeyInputEvent event) { + if (!Utils.tabLocation.equals("Crystal Hollows")) return; + + if (DankersSkyblockMod.keyBindings[3].isPressed()) { + Minecraft mc = Minecraft.getMinecraft(); + EntityPlayer player = mc.thePlayer; + + mc.displayGuiScreen(new CrystalHollowAddWaypointGui((int) player.posX, (int) player.posY, (int) player.posZ)); + } + } + + @SubscribeEvent public void onWorldRender(RenderWorldLastEvent event) { if (ToggleCommand.crystalHollowWaypoints && Utils.tabLocation.equals("Crystal Hollows")) { for (Waypoint waypoint : waypoints) { @@ -201,4 +247,38 @@ public class CrystalHollowWaypoints { } + public static void addWaypoint(String name, String x, String y, String z) { + BlockPos pos = new BlockPos(Integer.parseInt(x), Integer.parseInt(y), Integer.parseInt(z)); + Waypoint waypoint = new Waypoint(name, pos); + waypoints.add(waypoint); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + waypoint.location + " @ " + waypoint.getPos())); + } + + public static void addDSMWaypoints(String list, boolean auto) { + String[] waypointsList = list.split("\\\\n"); + + for (String waypoint : waypointsList) { + String[] parts = waypoint.split("@-"); + String[] coords = parts[1].split(","); + + String location = parts[0]; + BlockPos pos = new BlockPos(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); + Waypoint newWaypoint = new Waypoint(location, pos); + + if (auto) { + boolean contains = false; + for (Waypoint existing : waypoints) { + if (existing.location.equals(location)) { + contains = true; + break; + } + } + if (contains) continue; + } + + waypoints.add(newWaypoint); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos())); + } + } + } diff --git a/src/main/java/me/Danker/features/CustomMusic.java b/src/main/java/me/Danker/features/CustomMusic.java index a31e40a..3ea8d1f 100644 --- a/src/main/java/me/Danker/features/CustomMusic.java +++ b/src/main/java/me/Danker/features/CustomMusic.java @@ -27,12 +27,21 @@ import java.util.Random; public class CustomMusic { static boolean cancelNotes; + public static Song dungeonboss; public static int dungeonbossVolume; public static Song bloodroom; public static int bloodroomVolume; public static Song dungeon; public static int dungeonVolume; + public static Song phase2; + public static int phase2Volume; + public static Song phase3; + public static int phase3Volume; + public static Song phase4; + public static int phase4Volume; + public static Song phase5; + public static int phase5Volume; public static Song hub; public static int hubVolume; public static Song island; @@ -79,56 +88,56 @@ public class CustomMusic { String firstLine = ScoreboardHandler.cleanSB(scoreboard.get(scoreboard.size() - 1)); String secondLine = ScoreboardHandler.cleanSB(scoreboard.get(scoreboard.size() - 2)); if (firstLine.contains("30,30") || // F1 - firstLine.contains("30,125") || // F2 - firstLine.contains("30,225") || // F3 - secondLine.contains("- Healthy") || // F3 - firstLine.contains("30,344") || // F4 - firstLine.contains("livid") || // F5 - firstLine.contains("sadan") || // F6 - firstLine.contains("necron")) { // F7 - - if (ToggleCommand.dungeonBossMusic) dungeonboss.start(); - } - } - } else { - switch (Utils.tabLocation) { - case "Hub": - if (ToggleCommand.hubMusic) hub.start(); - break; - case "Private Island": - if (ToggleCommand.islandMusic) island.start(); - break; - case "Dungeon Hub": - if (ToggleCommand.dungeonHubMusic) dungeonHub.start(); - break; - case "The Farming Islands": - if (ToggleCommand.farmingIslandsMusic) farmingIslands.start(); - break; - case "Gold Mine": - if (ToggleCommand.goldMineMusic) goldMine.start(); - break; - case "Deep Caverns": - if (ToggleCommand.deepCavernsMusic) deepCaverns.start(); - break; - case "Dwarven Mines": - if (ToggleCommand.dwarvenMinesMusic) dwarvenMines.start(); - break; - case "Crystal Hollows": - if (ToggleCommand.crystalHollowsMusic) crystalHollows.start(); - break; - case "Spider's Den": - if (ToggleCommand.spidersDenMusic) spidersDen.start(); - break; - case "Crimson Isle": - if (ToggleCommand.crimsonIsleMusic) crimsonIsle.start(); - break; - case "The End": - if (ToggleCommand.endMusic) end.start(); - break; - case "The Park": - if (ToggleCommand.parkMusic) park.start(); - break; + firstLine.contains("30,125") || // F2 + firstLine.contains("30,225") || // F3 + secondLine.contains("- Healthy") || // F3 + firstLine.contains("30,344") || // F4 + firstLine.contains("livid") || // F5 + firstLine.contains("sadan") || // F6 + firstLine.contains("maxor")) { // F7 + + if (ToggleCommand.dungeonBossMusic) dungeonboss.start(); } + } + } else { + switch (Utils.tabLocation) { + case "Hub": + if (ToggleCommand.hubMusic) hub.start(); + break; + case "Private Island": + if (ToggleCommand.islandMusic) island.start(); + break; + case "Dungeon Hub": + if (ToggleCommand.dungeonHubMusic) dungeonHub.start(); + break; + case "The Farming Islands": + if (ToggleCommand.farmingIslandsMusic) farmingIslands.start(); + break; + case "Gold Mine": + if (ToggleCommand.goldMineMusic) goldMine.start(); + break; + case "Deep Caverns": + if (ToggleCommand.deepCavernsMusic) deepCaverns.start(); + break; + case "Dwarven Mines": + if (ToggleCommand.dwarvenMinesMusic) dwarvenMines.start(); + break; + case "Crystal Hollows": + if (ToggleCommand.crystalHollowsMusic) crystalHollows.start(); + break; + case "Spider's Den": + if (ToggleCommand.spidersDenMusic) spidersDen.start(); + break; + case "Crimson Isle": + if (ToggleCommand.crimsonIsleMusic) crimsonIsle.start(); + break; + case "The End": + if (ToggleCommand.endMusic) end.start(); + break; + case "The Park": + if (ToggleCommand.parkMusic) park.start(); + break; + } } } } @@ -147,10 +156,26 @@ public class CustomMusic { if (message.contains(":")) return; if (Utils.inDungeons) { + if (ToggleCommand.dungeonBossMusic) { + if (message.startsWith("[BOSS] Storm: Pathetic Maxor")) { + phase2.start(); + } else if (message.startsWith("[BOSS] Goldor: Who dares trespass into my domain?")) { + phase3.start(); + } else if (message.startsWith("[BOSS] Necron: You went further than any human before")) { + phase4.start(); + } else if (message.startsWith("[BOSS] ") && message.endsWith("You.. again?")) { + phase5.start(); + } + } + if (message.contains("EXTRA STATS ")) { dungeonboss.stop(); bloodroom.stop(); dungeon.stop(); + phase2.stop(); + phase3.stop(); + phase4.stop(); + phase5.stop(); } else if (message.contains("The BLOOD DOOR has been opened!")) { dungeon.stop(); if (ToggleCommand.bloodRoomMusic) bloodroom.start(); @@ -175,6 +200,10 @@ public class CustomMusic { dungeonboss = new Song(directory, "dungeonboss", dungeonbossVolume); bloodroom = new Song(directory, "bloodroom", bloodroomVolume); dungeon = new Song(directory, "dungeon", dungeonVolume); + phase2 = new Song(directory, "phasetwo", phase2Volume); + phase3 = new Song(directory, "phasethree", phase3Volume); + phase4 = new Song(directory, "phasefour", phase4Volume); + phase5 = new Song(directory, "phasefive", phase5Volume); hub = new Song(directory, "hub", hubVolume); island = new Song(directory, "island", hubVolume); dungeonHub = new Song(directory, "dungeonhub", dungeonHubVolume); @@ -193,6 +222,10 @@ public class CustomMusic { if (dungeonboss != null) dungeonboss.stop(); if (bloodroom != null) bloodroom.stop(); if (dungeon != null) dungeon.stop(); + if (phase2 != null) phase2.stop(); + if (phase3 != null) phase3.stop(); + if (phase4 != null) phase4.stop(); + if (phase5 != null) phase5.stop(); if (hub != null) hub.stop(); if (island != null) island.stop(); if (dungeonHub != null) dungeonHub.stop(); @@ -230,7 +263,6 @@ public class CustomMusic { public void start() throws UnsupportedAudioFileException, LineUnavailableException, IOException { try { - if (music == null) music = AudioSystem.getClip(); if (!music.isRunning()) { reset(); shuffle(); diff --git a/src/main/java/me/Danker/features/FirePillarDisplay.java b/src/main/java/me/Danker/features/FirePillarDisplay.java new file mode 100644 index 0000000..34b2288 --- /dev/null +++ b/src/main/java/me/Danker/features/FirePillarDisplay.java @@ -0,0 +1,51 @@ +package me.Danker.features; + +import me.Danker.DankersSkyblockMod; +import me.Danker.commands.MoveCommand; +import me.Danker.commands.ScaleCommand; +import me.Danker.commands.ToggleCommand; +import me.Danker.events.RenderOverlayEvent; +import me.Danker.handlers.TextRenderer; +import me.Danker.utils.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.util.StringUtils; +import net.minecraft.world.World; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +import java.util.List; + +public class FirePillarDisplay { + + static Entity pillar = null; + + @SubscribeEvent + public void onTick(TickEvent.ClientTickEvent event) { + if (event.phase != TickEvent.Phase.START) return; + + World world = Minecraft.getMinecraft().theWorld; + if (DankersSkyblockMod.tickAmount % 20 == 0) { + pillar = null; + if (ToggleCommand.firePillar && world != null && Utils.tabLocation.equals("Crimson Isle") && Utils.isInScoreboard("Slay the boss!")) { + List<Entity> entities = world.getLoadedEntityList(); + + for (Entity entity : entities) { + String name = StringUtils.stripControlCodes(entity.getName()); + if (name.endsWith(" hits") && name.charAt(1) == 's') { + pillar = entity; + break; + } + } + } + } + } + + @SubscribeEvent + public void renderPlayerInfo(RenderOverlayEvent event) { + if (ToggleCommand.firePillar && pillar != null) { + new TextRenderer(Minecraft.getMinecraft(), Utils.removeBold(pillar.getName()), MoveCommand.firePillarXY[0], MoveCommand.firePillarXY[1], ScaleCommand.firePillarScale); + } + } + +} diff --git a/src/main/java/me/Danker/features/GpartyNotifications.java b/src/main/java/me/Danker/features/GpartyNotifications.java index f3aec69..76c0a66 100644 --- a/src/main/java/me/Danker/features/GpartyNotifications.java +++ b/src/main/java/me/Danker/features/GpartyNotifications.java @@ -19,18 +19,7 @@ public class GpartyNotifications { if (ToggleCommand.gpartyToggled) { if (message.contains(" has invited all members of ")) { - 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) { - ex.printStackTrace(); - } + Utils.desktopNotification("Guild Party Notifier", "Guild Party", message, TrayIcon.MessageType.INFO); } } } diff --git a/src/main/java/me/Danker/features/loot/BlazeTracker.java b/src/main/java/me/Danker/features/loot/BlazeTracker.java index 896f65f..955f83c 100644 --- a/src/main/java/me/Danker/features/loot/BlazeTracker.java +++ b/src/main/java/me/Danker/features/loot/BlazeTracker.java @@ -89,7 +89,7 @@ public class BlazeTracker { splashPotions++; splashPotionsSession++; ConfigHandler.writeIntConfig("blaze", "splashPotions", splashPotions); - } else if (message.contains("RARE DROP! (Bundle of Magma Arrows)")) { + } else if (message.contains("RARE DROP! (Bundle of Magma Arrows)")) { magmaArrows++; magmaArrowsSession++; ConfigHandler.writeIntConfig("blaze", "magmaArrows", magmaArrows); @@ -105,25 +105,30 @@ public class BlazeTracker { kelvinInverters++; kelvinInvertersSession++; ConfigHandler.writeIntConfig("blaze", "kelvinInverters", kelvinInverters); - } else if (message.contains("VERY RARE DROP! (Blaze Rod Distillate)")) { - blazeRodDistillates++; - blazeRodDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Blaze Rod Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + blazeRodDistillates += amount; + blazeRodDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "blazeRodDistillates", blazeRodDistillates); - } else if (message.contains("VERY RARE DROP! (Glowstone Distillate)")) { - glowstoneDistillates++; - glowstoneDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Glowstone Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + glowstoneDistillates += amount; + glowstoneDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "glowstoneDistillates", glowstoneDistillates); - } else if (message.contains("VERY RARE DROP! (Magma Cream Distillate)")) { - magmaCreamDistillates++; - magmaCreamDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Magma Cream Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + magmaCreamDistillates += amount; + magmaCreamDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "magmaCreamDistillates", magmaCreamDistillates); - } else if (message.contains("VERY RARE DROP! (Nether Wart Distillate)")) { - netherWartDistillates++; - netherWartDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Nether Wart Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + netherWartDistillates += amount; + netherWartDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "netherWartDistillates", netherWartDistillates); - } else if (message.contains("VERY RARE DROP! (Gabagool Distillate)")) { - gabagoolDistillates++; - gabagoolDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Gabagool Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + gabagoolDistillates += amount; + gabagoolDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "gabagoolDistillates", gabagoolDistillates); } else if (message.contains("VERY RARE DROP! (Scorched Power Crystal)")) { scorchedPowerCrystals++; @@ -140,8 +145,9 @@ public class BlazeTracker { ConfigHandler.writeIntConfig("blaze", "fieryBurstRunes", fieryBurstRunes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "FIERY BURST RUNE!", 5); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Flawed Opal Gemstone)")) { - opalGems++; - opalGemsSession++; + int amount = LootTracker.getAmountfromMessage(message); + opalGems += amount; + opalGemsSession += amount; ConfigHandler.writeIntConfig("blaze", "opalGems", opalGems); } else if (message.contains("VERY RARE DROP! (Archfiend Dice)")) { archfiendDice++; diff --git a/src/main/java/me/Danker/features/loot/EndermanTracker.java b/src/main/java/me/Danker/features/loot/EndermanTracker.java index 38b22f9..1cc46db 100644 --- a/src/main/java/me/Danker/features/loot/EndermanTracker.java +++ b/src/main/java/me/Danker/features/loot/EndermanTracker.java @@ -10,51 +10,53 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class EndermanTracker { - public static int endermanVoidglooms; - public static int endermanNullSpheres; - public static int endermanTAP; - public static int endermanTAPDrops; - public static int endermanEndersnakes; - public static int endermanSummoningEyes; - public static int endermanManaBooks; - public static int endermanTuners; - public static int endermanAtoms; - public static int endermanEspressoMachines; - public static int endermanSmartyBooks; - public static int endermanEndRunes; - public static int endermanChalices; - public static int endermanDice; - public static int endermanArtifacts; - public static int endermanSkins; - public static int endermanMergers; - public static int endermanCores; - public static int endermanEnchantRunes; - public static int endermanEnderBooks; - public static double endermanTime; - public static int endermanBosses; + public static int voidglooms; + public static int nullSpheres; + public static int TAP; + public static int TAPDrops; + public static int endersnakes; + public static int summoningEyes; + public static int manaBooks; + public static int tuners; + public static int atoms; + public static int hazmats; + public static int espressoMachines; + public static int smartyBooks; + public static int endRunes; + public static int chalices; + public static int dice; + public static int artifacts; + public static int skins; + public static int mergers; + public static int cores; + public static int enchantRunes; + public static int enderBooks; + public static double time; + public static int bosses; - public static int endermanVoidgloomsSession = 0; - public static int endermanNullSpheresSession = 0; - public static int endermanTAPSession = 0; - public static int endermanTAPDropsSession = 0; - public static int endermanEndersnakesSession = 0; - public static int endermanSummoningEyesSession = 0; - public static int endermanManaBooksSession = 0; - public static int endermanTunersSession = 0; - public static int endermanAtomsSession = 0; - public static int endermanEspressoMachinesSession = 0; - public static int endermanSmartyBooksSession = 0; - public static int endermanEndRunesSession = 0; - public static int endermanChalicesSession = 0; - public static int endermanDiceSession = 0; - public static int endermanArtifactsSession = 0; - public static int endermanSkinsSession = 0; - public static int endermanMergersSession = 0; - public static int endermanCoresSession = 0; - public static int endermanEnchantRunesSession = 0; - public static int endermanEnderBooksSession = 0; - public static double endermanTimeSession = -1; - public static int endermanBossesSession = -1; + public static int voidgloomsSession = 0; + public static int nullSpheresSession = 0; + public static int TAPSession = 0; + public static int TAPDropsSession = 0; + public static int endersnakesSession = 0; + public static int summoningEyesSession = 0; + public static int manaBooksSession = 0; + public static int tunersSession = 0; + public static int atomsSession = 0; + public static int hazmatsSession = 0; + public static int espressoMachinesSession = 0; + public static int smartyBooksSession = 0; + public static int endRunesSession = 0; + public static int chalicesSession = 0; + public static int diceSession = 0; + public static int artifactsSession = 0; + public static int skinsSession = 0; + public static int mergersSession = 0; + public static int coresSession = 0; + public static int enchantRunesSession = 0; + public static int enderBooksSession = 0; + public static double timeSession = -1; + public static int bossesSession = -1; @SubscribeEvent public void onChat(ClientChatReceivedEvent event) { @@ -67,110 +69,114 @@ public class EndermanTracker { boolean rng = false; if (message.contains(" Enderman Slayer LVL ")) { - endermanVoidglooms++; - endermanVoidgloomsSession++; - if (endermanBosses != -1) { - endermanBosses++; + voidglooms++; + voidgloomsSession++; + if (bosses != -1) { + bosses++; } - if (endermanBossesSession != -1) { - endermanBossesSession++; + if (bossesSession != -1) { + bossesSession++; } - ConfigHandler.writeIntConfig("enderman", "voidglooms", endermanVoidglooms); - ConfigHandler.writeIntConfig("enderman", "bossRNG", endermanBosses); + ConfigHandler.writeIntConfig("enderman", "voidglooms", voidglooms); + ConfigHandler.writeIntConfig("enderman", "bossRNG", bosses); } else if (message.contains("RARE DROP! (") && message.contains("Twilight Arrow Poison)")) { int amount = LootTracker.getAmountfromMessage(message); - endermanTAP += amount; - endermanTAPSession += amount; - endermanTAPDrops++; - endermanTAPDropsSession++; - ConfigHandler.writeIntConfig("enderman", "tap", endermanTAP); - ConfigHandler.writeIntConfig("enderman", "tapDrops", endermanTAPDrops); + TAP += amount; + TAPSession += amount; + TAPDrops++; + TAPDropsSession++; + ConfigHandler.writeIntConfig("enderman", "tap", TAP); + ConfigHandler.writeIntConfig("enderman", "tapDrops", TAPDrops); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Endersnake Rune I)")) { - endermanEndersnakes++; - endermanEndersnakesSession++; - ConfigHandler.writeIntConfig("enderman", "endersnakes", endermanEndersnakes); + endersnakes++; + endersnakesSession++; + ConfigHandler.writeIntConfig("enderman", "endersnakes", endersnakes); } else if (message.contains("VERY RARE DROP! (Summoning Eye)")) { - endermanSummoningEyes++; - endermanSummoningEyesSession++; - ConfigHandler.writeIntConfig("enderman", "summoningEyes", endermanSummoningEyes); + summoningEyes++; + summoningEyesSession++; + ConfigHandler.writeIntConfig("enderman", "summoningEyes", summoningEyes); } else if (message.contains("VERY RARE DROP! (Mana Steal I)")) { - endermanManaBooks++; - endermanManaBooksSession++; - ConfigHandler.writeIntConfig("enderman", "manaBooks", endermanManaBooks); + manaBooks++; + manaBooksSession++; + ConfigHandler.writeIntConfig("enderman", "manaBooks", manaBooks); } else if (message.contains("VERY RARE DROP! (Transmission Tuner)")) { - endermanTuners++; - endermanTunersSession++; - ConfigHandler.writeIntConfig("enderman", "tuners", endermanTuners); + tuners++; + tunersSession++; + ConfigHandler.writeIntConfig("enderman", "tuners", tuners); } else if (message.contains("VERY RARE DROP! (Null Atom)")) { - endermanAtoms++; - endermanAtomsSession++; - ConfigHandler.writeIntConfig("enderman", "atoms", endermanAtoms); + atoms++; + atomsSession++; + ConfigHandler.writeIntConfig("enderman", "atoms", atoms); + } else if (message.contains("VERY RARE DROP! (Hazmat Enderman)")) { + hazmats++; + hazmatsSession++; + ConfigHandler.writeIntConfig("enderman", "hazmats", hazmats); } else if (message.contains("CRAZY RARE DROP! (Pocket Espresso Machine)")) { rng = true; - endermanEspressoMachines++; - endermanEspressoMachinesSession++; - ConfigHandler.writeIntConfig("enderman", "espressoMachines", endermanEspressoMachines); + espressoMachines++; + espressoMachinesSession++; + ConfigHandler.writeIntConfig("enderman", "espressoMachines", espressoMachines); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.AQUA + "POCKET ESPRESSO MACHINE!", 3); } else if (message.contains("VERY RARE DROP! (Smarty Pants I)")) { - endermanSmartyBooks++; - endermanSmartyBooksSession++; - ConfigHandler.writeIntConfig("enderman", "smartyBooks", endermanSmartyBooks); + smartyBooks++; + smartyBooksSession++; + ConfigHandler.writeIntConfig("enderman", "smartyBooks", smartyBooks); } else if (message.contains("VERY RARE DROP! (") && message.contains(" End Rune I)")) { - endermanEndRunes++; - endermanEndRunesSession++; - ConfigHandler.writeIntConfig("enderman", "endRunes", endermanEndRunes); + endRunes++; + endRunesSession++; + ConfigHandler.writeIntConfig("enderman", "endRunes", endRunes); } else if (message.contains("CRAZY RARE DROP! (Handy Blood Chalice)")) { rng = true; - endermanChalices++; - endermanChalicesSession++; - ConfigHandler.writeIntConfig("enderman", "chalices", endermanChalices); + chalices++; + chalicesSession++; + ConfigHandler.writeIntConfig("enderman", "chalices", chalices); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "HANDY BLOOD CHALICE!", 3); } else if (message.contains("VERY RARE DROP! (Sinful Dice)")) { - endermanDice++; - endermanDiceSession++; - ConfigHandler.writeIntConfig("enderman", "dice", endermanDice); + dice++; + diceSession++; + ConfigHandler.writeIntConfig("enderman", "dice", dice); } else if (message.contains("CRAZY RARE DROP! (Exceedingly Rare Ender Artifact Upgrader)")) { rng = true; - endermanArtifacts++; - endermanArtifactsSession++; - ConfigHandler.writeIntConfig("enderman", "artifacts", endermanArtifacts); + artifacts++; + artifactsSession++; + ConfigHandler.writeIntConfig("enderman", "artifacts", artifacts); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "ENDER ARTIFACT UPGRADER!", 3); } else if (message.contains("CRAZY RARE DROP! (Void Conqueror Enderman Skin)")) { rng = true; - endermanSkins++; - endermanSkinsSession++; - ConfigHandler.writeIntConfig("enderman", "skins", endermanSkins); + skins++; + skinsSession++; + ConfigHandler.writeIntConfig("enderman", "skins", skins); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "ENDERMAN SKIN!", 3); } else if (message.contains("VERY RARE DROP! (Etherwarp Merger)")) { - endermanMergers++; - endermanMergersSession++; - ConfigHandler.writeIntConfig("enderman", "mergers", endermanMergers); + mergers++; + mergersSession++; + ConfigHandler.writeIntConfig("enderman", "mergers", mergers); } else if (message.contains("CRAZY RARE DROP! (Judgement Core)")) { rng = true; - endermanCores++; - endermanCoresSession++; - ConfigHandler.writeIntConfig("enderman", "cores", endermanCores); + cores++; + coresSession++; + ConfigHandler.writeIntConfig("enderman", "cores", cores); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "JUDGEMENT CORE!", 5); } else if (message.contains("CRAZY RARE DROP! (") && message.contains(" Enchant Rune I)")) { rng = true; - endermanEnchantRunes++; - endermanEnchantRunesSession++; - ConfigHandler.writeIntConfig("enderman", "enchantRunes", endermanEnchantRunes); + enchantRunes++; + enchantRunesSession++; + ConfigHandler.writeIntConfig("enderman", "enchantRunes", enchantRunes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GRAY + "ENCHANT RUNE!", 3); } else if (message.contains("INSANE DROP! (Ender Slayer VII)") || message.contains("CRAZY RARE DROP! (Ender Slayer VII)")) { rng = true; - endermanEnderBooks++; - endermanEnderBooksSession++; - ConfigHandler.writeIntConfig("enderman", "enderBooks", endermanEnderBooks); + enderBooks++; + enderBooksSession++; + ConfigHandler.writeIntConfig("enderman", "enderBooks", enderBooks); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "ENDER SLAYER VII!", 3); } if (rng) { - endermanTime = System.currentTimeMillis() / 1000; - endermanBosses = 0; - endermanTimeSession = System.currentTimeMillis() / 1000; - endermanBossesSession = 0; - ConfigHandler.writeDoubleConfig("enderman", "timeRNG", endermanTime); + time = System.currentTimeMillis() / 1000; + bosses = 0; + timeSession = System.currentTimeMillis() / 1000; + bossesSession = 0; + ConfigHandler.writeDoubleConfig("enderman", "timeRNG", time); ConfigHandler.writeIntConfig("enderman", "bossRNG", 0); } } diff --git a/src/main/java/me/Danker/features/loot/FishingTracker.java b/src/main/java/me/Danker/features/loot/FishingTracker.java index 95a9040..f8adfa2 100644 --- a/src/main/java/me/Danker/features/loot/FishingTracker.java +++ b/src/main/java/me/Danker/features/loot/FishingTracker.java @@ -55,6 +55,7 @@ public class FishingTracker { public static int lavaPigmen; public static int zombieMiners; // Lava fishing + public static int plhlegblasts; public static int magmaSlugs; public static int moogmas; public static int lavaLeeches; @@ -114,6 +115,7 @@ public class FishingTracker { public static int lavaPigmenSession = 0; public static int zombieMinersSession = 0; // Lava fishing + public static int plhlegblastsSession = 0; public static int magmaSlugsSession = 0; public static int moogmasSession = 0; public static int lavaLeechesSession = 0; @@ -320,7 +322,12 @@ public class FishingTracker { zombieMinersSession++; ConfigHandler.writeIntConfig("fishing", "zombieMiner", zombieMiners); increaseSeaCreatures(); - } else if (message.contains("From Beneath the lava appears a Magma Slug")) { + } else if (message.contains("WOAH! A Plhlegblast appeared")) { + plhlegblasts++; + plhlegblastsSession++; + ConfigHandler.writeIntConfig("fishing", "plhlegblast", plhlegblasts); + increaseSeaCreatures(); + } else if (message.contains("From beneath the lava appears a Magma Slug")) { magmaSlugs++; magmaSlugsSession++; ConfigHandler.writeIntConfig("fishing", "magmaSlug", magmaSlugs); diff --git a/src/main/java/me/Danker/features/loot/LootDisplay.java b/src/main/java/me/Danker/features/loot/LootDisplay.java index e1ddcb0..7832362 100644 --- a/src/main/java/me/Danker/features/loot/LootDisplay.java +++ b/src/main/java/me/Danker/features/loot/LootDisplay.java @@ -37,20 +37,20 @@ public class LootDisplay { switch (display) { case "wolf": - if (WolfTracker.wolfTime == -1) { + if (WolfTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(WolfTracker.wolfTime, timeNow); + timeBetween = Utils.getTimeBetween(WolfTracker.time, timeNow); } - if (WolfTracker.wolfBosses == -1) { + if (WolfTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(WolfTracker.wolfBosses); + bossesBetween = nf.format(WolfTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(WolfTracker.wolfWheels); + drop20 = nf.format(WolfTracker.wheels); } else { - drop20 = nf.format(WolfTracker.wolfWheelsDrops) + " times"; + drop20 = nf.format(WolfTracker.wheelsDrops) + " times"; } dropsText = EnumChatFormatting.GOLD + "Svens Killed:\n" + @@ -58,39 +58,41 @@ public class LootDisplay { EnumChatFormatting.BLUE + "Hamster Wheels:\n" + EnumChatFormatting.AQUA + "Spirit Runes:\n" + EnumChatFormatting.WHITE + "Critical VI Books:\n" + + EnumChatFormatting.DARK_AQUA + "Furballs:\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(WolfTracker.wolfSvens) + "\n" + - EnumChatFormatting.GREEN + nf.format(WolfTracker.wolfTeeth) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(WolfTracker.svens) + "\n" + + EnumChatFormatting.GREEN + nf.format(WolfTracker.teeth) + "\n" + EnumChatFormatting.BLUE + drop20 + "\n" + - EnumChatFormatting.AQUA + WolfTracker.wolfSpirits + "\n" + - EnumChatFormatting.WHITE + WolfTracker.wolfBooks + "\n" + - EnumChatFormatting.DARK_RED + WolfTracker.wolfEggs + "\n" + - EnumChatFormatting.GOLD + WolfTracker.wolfCoutures + "\n" + - EnumChatFormatting.AQUA + WolfTracker.wolfBaits + "\n" + - EnumChatFormatting.DARK_PURPLE + WolfTracker.wolfFluxes + "\n" + + EnumChatFormatting.AQUA + WolfTracker.spirits + "\n" + + EnumChatFormatting.WHITE + WolfTracker.books + "\n" + + EnumChatFormatting.DARK_AQUA + WolfTracker.furballs + "\n" + + EnumChatFormatting.DARK_RED + WolfTracker.eggs + "\n" + + EnumChatFormatting.GOLD + WolfTracker.coutures + "\n" + + EnumChatFormatting.AQUA + WolfTracker.baits + "\n" + + EnumChatFormatting.DARK_PURPLE + WolfTracker.fluxes + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "wolf_session": - if (WolfTracker.wolfTimeSession == -1) { + if (WolfTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(WolfTracker.wolfTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(WolfTracker.timeSession, timeNow); } - if (WolfTracker.wolfBossesSession == -1) { + if (WolfTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(WolfTracker.wolfBossesSession); + bossesBetween = nf.format(WolfTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(WolfTracker.wolfWheelsSession); + drop20 = nf.format(WolfTracker.wheelsSession); } else { - drop20 = nf.format(WolfTracker.wolfWheelsDropsSession) + " times"; + drop20 = nf.format(WolfTracker.wheelsDropsSession) + " times"; } dropsText = EnumChatFormatting.GOLD + "Svens Killed:\n" + @@ -98,39 +100,41 @@ public class LootDisplay { EnumChatFormatting.BLUE + "Hamster Wheels:\n" + EnumChatFormatting.AQUA + "Spirit Runes:\n" + EnumChatFormatting.WHITE + "Critical VI Books:\n" + + EnumChatFormatting.DARK_AQUA + "Furballs:\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(WolfTracker.wolfSvensSession) + "\n" + - EnumChatFormatting.GREEN + nf.format(WolfTracker.wolfTeethSession) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(WolfTracker.svensSession) + "\n" + + EnumChatFormatting.GREEN + nf.format(WolfTracker.teethSession) + "\n" + EnumChatFormatting.BLUE + drop20 + "\n" + - EnumChatFormatting.AQUA + WolfTracker.wolfSpiritsSession + "\n" + - EnumChatFormatting.WHITE + WolfTracker.wolfBooksSession + "\n" + - EnumChatFormatting.DARK_RED + WolfTracker.wolfEggsSession + "\n" + - EnumChatFormatting.GOLD + WolfTracker.wolfCouturesSession + "\n" + - EnumChatFormatting.AQUA + WolfTracker.wolfBaitsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + WolfTracker.wolfFluxesSession + "\n" + + EnumChatFormatting.AQUA + WolfTracker.spiritsSession + "\n" + + EnumChatFormatting.WHITE + WolfTracker.booksSession + "\n" + + EnumChatFormatting.DARK_AQUA + WolfTracker.furballsSession + "\n" + + EnumChatFormatting.DARK_RED + WolfTracker.eggsSession + "\n" + + EnumChatFormatting.GOLD + WolfTracker.couturesSession + "\n" + + EnumChatFormatting.AQUA + WolfTracker.baitsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + WolfTracker.fluxesSession + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "spider": - if (SpiderTracker.spiderTime == -1) { + if (SpiderTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(SpiderTracker.spiderTime, timeNow); + timeBetween = Utils.getTimeBetween(SpiderTracker.time, timeNow); } - if (SpiderTracker.spiderBosses == -1) { + if (SpiderTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(SpiderTracker.spiderBosses); + bossesBetween = nf.format(SpiderTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(SpiderTracker.spiderTAP); + drop20 = nf.format(SpiderTracker.TAP); } else { - drop20 = nf.format(SpiderTracker.spiderTAPDrops) + " times"; + drop20 = nf.format(SpiderTracker.TAPDrops) + " times"; } dropsText = EnumChatFormatting.GOLD + "Tarantulas Killed:\n" + @@ -144,33 +148,33 @@ public class LootDisplay { EnumChatFormatting.GOLD + "Digested Mosquitos:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(SpiderTracker.spiderTarantulas) + "\n" + - EnumChatFormatting.GREEN + nf.format(SpiderTracker.spiderWebs) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(SpiderTracker.tarantulas) + "\n" + + EnumChatFormatting.GREEN + nf.format(SpiderTracker.webs) + "\n" + EnumChatFormatting.DARK_GREEN + drop20 + "\n" + - EnumChatFormatting.DARK_GRAY + SpiderTracker.spiderBites + "\n" + - EnumChatFormatting.WHITE + SpiderTracker.spiderBooks + "\n" + - EnumChatFormatting.AQUA + SpiderTracker.spiderCatalysts + "\n" + - EnumChatFormatting.DARK_PURPLE + SpiderTracker.spiderTalismans + "\n" + - EnumChatFormatting.LIGHT_PURPLE + SpiderTracker.spiderSwatters + "\n" + - EnumChatFormatting.GOLD + SpiderTracker.spiderMosquitos + "\n" + + EnumChatFormatting.DARK_GRAY + SpiderTracker.bites + "\n" + + EnumChatFormatting.WHITE + SpiderTracker.books + "\n" + + EnumChatFormatting.AQUA + SpiderTracker.catalysts + "\n" + + EnumChatFormatting.DARK_PURPLE + SpiderTracker.talismans + "\n" + + EnumChatFormatting.LIGHT_PURPLE + SpiderTracker.swatters + "\n" + + EnumChatFormatting.GOLD + SpiderTracker.mosquitos + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "spider_session": - if (SpiderTracker.spiderTimeSession == -1) { + if (SpiderTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(SpiderTracker.spiderTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(SpiderTracker.timeSession, timeNow); } - if (SpiderTracker.spiderBossesSession == -1) { + if (SpiderTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(SpiderTracker.spiderBossesSession); + bossesBetween = nf.format(SpiderTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(SpiderTracker.spiderTAPSession); + drop20 = nf.format(SpiderTracker.TAPSession); } else { - drop20 = nf.format(SpiderTracker.spiderTAPDropsSession) + " times"; + drop20 = nf.format(SpiderTracker.TAPDropsSession) + " times"; } dropsText = EnumChatFormatting.GOLD + "Tarantulas Killed:\n" + @@ -184,33 +188,33 @@ public class LootDisplay { EnumChatFormatting.GOLD + "Digested Mosquitos:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(SpiderTracker.spiderTarantulasSession) + "\n" + - EnumChatFormatting.GREEN + nf.format(SpiderTracker.spiderWebsSession) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(SpiderTracker.tarantulasSession) + "\n" + + EnumChatFormatting.GREEN + nf.format(SpiderTracker.websSession) + "\n" + EnumChatFormatting.DARK_GREEN + drop20 + "\n" + - EnumChatFormatting.DARK_GRAY + SpiderTracker.spiderBitesSession + "\n" + - EnumChatFormatting.WHITE + SpiderTracker.spiderBooksSession + "\n" + - EnumChatFormatting.AQUA + SpiderTracker.spiderCatalystsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + SpiderTracker.spiderTalismansSession + "\n" + - EnumChatFormatting.LIGHT_PURPLE + SpiderTracker.spiderSwattersSession + "\n" + - EnumChatFormatting.GOLD + SpiderTracker.spiderMosquitosSession + "\n" + + EnumChatFormatting.DARK_GRAY + SpiderTracker.bitesSession + "\n" + + EnumChatFormatting.WHITE + SpiderTracker.booksSession + "\n" + + EnumChatFormatting.AQUA + SpiderTracker.catalystsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + SpiderTracker.talismansSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + SpiderTracker.swattersSession + "\n" + + EnumChatFormatting.GOLD + SpiderTracker.mosquitosSession + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "zombie": - if (ZombieTracker.zombieTime == -1) { + if (ZombieTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(ZombieTracker.zombieTime, timeNow); + timeBetween = Utils.getTimeBetween(ZombieTracker.time, timeNow); } - if (ZombieTracker.zombieBosses == -1) { + if (ZombieTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(ZombieTracker.zombieBosses); + bossesBetween = nf.format(ZombieTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(ZombieTracker.zombieFoulFlesh); + drop20 = nf.format(ZombieTracker.foulFlesh); } else { - drop20 = nf.format(ZombieTracker.zombieFoulFleshDrops) + " times"; + drop20 = nf.format(ZombieTracker.foulFleshDrops) + " times"; } dropsText = EnumChatFormatting.GOLD + "Revs Killed:\n" + @@ -229,38 +233,38 @@ public class LootDisplay { EnumChatFormatting.RED + "Warden Hearts:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(ZombieTracker.zombieRevs) + "\n" + - EnumChatFormatting.GREEN + nf.format(ZombieTracker.zombieRevFlesh) + "\n" + - EnumChatFormatting.GREEN + nf.format(ZombieTracker.zombieRevViscera) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(ZombieTracker.revs) + "\n" + + EnumChatFormatting.GREEN + nf.format(ZombieTracker.revFlesh) + "\n" + + EnumChatFormatting.GREEN + nf.format(ZombieTracker.revViscera) + "\n" + EnumChatFormatting.BLUE + drop20 + "\n" + - EnumChatFormatting.DARK_GREEN + ZombieTracker.zombiePestilences + "\n" + - EnumChatFormatting.WHITE + ZombieTracker.zombieBooks + "\n" + - EnumChatFormatting.WHITE + ZombieTracker.zombieBooksT7 + "\n" + - EnumChatFormatting.AQUA + ZombieTracker.zombieUndeadCatas + "\n" + - EnumChatFormatting.DARK_PURPLE + ZombieTracker.zombieBeheadeds + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieRevCatas + "\n" + - EnumChatFormatting.DARK_GREEN + ZombieTracker.zombieSnakes + "\n" + - EnumChatFormatting.GOLD + ZombieTracker.zombieScythes + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieShards + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieWardenHearts + "\n" + + EnumChatFormatting.DARK_GREEN + ZombieTracker.pestilences + "\n" + + EnumChatFormatting.WHITE + ZombieTracker.books + "\n" + + EnumChatFormatting.WHITE + ZombieTracker.booksT7 + "\n" + + EnumChatFormatting.AQUA + ZombieTracker.undeadCatas + "\n" + + EnumChatFormatting.DARK_PURPLE + ZombieTracker.beheadeds + "\n" + + EnumChatFormatting.RED + ZombieTracker.revCatas + "\n" + + EnumChatFormatting.DARK_GREEN + ZombieTracker.snakes + "\n" + + EnumChatFormatting.GOLD + ZombieTracker.scythes + "\n" + + EnumChatFormatting.RED + ZombieTracker.shards + "\n" + + EnumChatFormatting.RED + ZombieTracker.wardenHearts + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "zombie_session": - if (ZombieTracker.zombieTimeSession == -1) { + if (ZombieTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(ZombieTracker.zombieTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(ZombieTracker.timeSession, timeNow); } - if (ZombieTracker.zombieBossesSession == -1) { + if (ZombieTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(ZombieTracker.zombieBossesSession); + bossesBetween = nf.format(ZombieTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(ZombieTracker.zombieFoulFleshSession); + drop20 = nf.format(ZombieTracker.foulFleshSession); } else { - drop20 = nf.format(ZombieTracker.zombieFoulFleshDropsSession) + " times"; + drop20 = nf.format(ZombieTracker.foulFleshDropsSession) + " times"; } dropsText = EnumChatFormatting.GOLD + "Revs Killed:\n" + @@ -279,38 +283,38 @@ public class LootDisplay { EnumChatFormatting.RED + "Warden Hearts:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(ZombieTracker.zombieRevsSession) + "\n" + - EnumChatFormatting.GREEN + nf.format(ZombieTracker.zombieRevFleshSession) + "\n" + - EnumChatFormatting.GREEN + nf.format(ZombieTracker.zombieRevVisceraSession) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(ZombieTracker.revsSession) + "\n" + + EnumChatFormatting.GREEN + nf.format(ZombieTracker.revFleshSession) + "\n" + + EnumChatFormatting.GREEN + nf.format(ZombieTracker.revVisceraSession) + "\n" + EnumChatFormatting.BLUE + drop20 + "\n" + - EnumChatFormatting.DARK_GREEN + ZombieTracker.zombiePestilencesSession + "\n" + - EnumChatFormatting.WHITE + ZombieTracker.zombieBooksSession + "\n" + - EnumChatFormatting.WHITE + ZombieTracker.zombieBooksT7Session + "\n" + - EnumChatFormatting.AQUA + ZombieTracker.zombieUndeadCatasSession + "\n" + - EnumChatFormatting.DARK_PURPLE + ZombieTracker.zombieBeheadedsSession + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieRevCatasSession + "\n" + - EnumChatFormatting.DARK_GREEN + ZombieTracker.zombieSnakesSession + "\n" + - EnumChatFormatting.GOLD + ZombieTracker.zombieScythes + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieShardsSession + "\n" + - EnumChatFormatting.RED + ZombieTracker.zombieWardenHeartsSession + "\n" + + EnumChatFormatting.DARK_GREEN + ZombieTracker.pestilencesSession + "\n" + + EnumChatFormatting.WHITE + ZombieTracker.booksSession + "\n" + + EnumChatFormatting.WHITE + ZombieTracker.booksT7Session + "\n" + + EnumChatFormatting.AQUA + ZombieTracker.undeadCatasSession + "\n" + + EnumChatFormatting.DARK_PURPLE + ZombieTracker.beheadedsSession + "\n" + + EnumChatFormatting.RED + ZombieTracker.revCatasSession + "\n" + + EnumChatFormatting.DARK_GREEN + ZombieTracker.snakesSession + "\n" + + EnumChatFormatting.GOLD + ZombieTracker.scythes + "\n" + + EnumChatFormatting.RED + ZombieTracker.shardsSession + "\n" + + EnumChatFormatting.RED + ZombieTracker.wardenHeartsSession + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "enderman": - if (EndermanTracker.endermanTime == -1) { + if (EndermanTracker.time == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(EndermanTracker.endermanTime, timeNow); + timeBetween = Utils.getTimeBetween(EndermanTracker.time, timeNow); } - if (EndermanTracker.endermanBosses == -1) { + if (EndermanTracker.bosses == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(EndermanTracker.endermanBosses); + bossesBetween = nf.format(EndermanTracker.bosses); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(EndermanTracker.endermanTAP); + drop20 = nf.format(EndermanTracker.TAP); } else { - drop20 = nf.format(EndermanTracker.endermanTAPDrops) + " times"; + drop20 = nf.format(EndermanTracker.TAPDrops) + " times"; } dropsText = EnumChatFormatting.GOLD + "Voidglooms Killed:\n" + @@ -321,6 +325,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + "Mana Steal Books:\n" + EnumChatFormatting.BLUE + "Transmission Tuners:\n" + EnumChatFormatting.YELLOW + "Null Atoms:\n" + + EnumChatFormatting.YELLOW + "Hazmat Endermen:\n" + EnumChatFormatting.AQUA + "Espresso Machines:\n" + EnumChatFormatting.WHITE + "Smarty Pants Books:\n" + EnumChatFormatting.LIGHT_PURPLE + "End Runes:\n" + @@ -334,43 +339,44 @@ public class LootDisplay { EnumChatFormatting.RED + "Ender Slayer Books:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(EndermanTracker.endermanVoidglooms) + "\n" + - EnumChatFormatting.DARK_GRAY + nf.format(EndermanTracker.endermanNullSpheres) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(EndermanTracker.voidglooms) + "\n" + + EnumChatFormatting.DARK_GRAY + nf.format(EndermanTracker.nullSpheres) + "\n" + EnumChatFormatting.DARK_PURPLE + drop20 + "\n" + - EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endermanEndersnakes + "\n" + - EnumChatFormatting.DARK_GREEN + EndermanTracker.endermanSummoningEyes + "\n" + - EnumChatFormatting.AQUA + EndermanTracker.endermanManaBooks + "\n" + - EnumChatFormatting.BLUE + EndermanTracker.endermanTuners + "\n" + - EnumChatFormatting.YELLOW + EndermanTracker.endermanAtoms + "\n" + - EnumChatFormatting.AQUA + EndermanTracker.endermanEspressoMachines + "\n" + - EnumChatFormatting.WHITE + EndermanTracker.endermanSmartyBooks + "\n" + - EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endermanEndRunes + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanChalices + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanDice + "\n" + - EnumChatFormatting.DARK_PURPLE + EndermanTracker.endermanArtifacts + "\n" + - EnumChatFormatting.DARK_PURPLE + EndermanTracker.endermanSkins + "\n" + - EnumChatFormatting.GRAY + EndermanTracker.endermanEnchantRunes + "\n" + - EnumChatFormatting.GOLD + EndermanTracker.endermanMergers + "\n" + - EnumChatFormatting.GOLD + EndermanTracker.endermanCores + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanEnderBooks + "\n" + + EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endersnakes + "\n" + + EnumChatFormatting.DARK_GREEN + EndermanTracker.summoningEyes + "\n" + + EnumChatFormatting.AQUA + EndermanTracker.manaBooks + "\n" + + EnumChatFormatting.BLUE + EndermanTracker.tuners + "\n" + + EnumChatFormatting.YELLOW + EndermanTracker.atoms + "\n" + + EnumChatFormatting.YELLOW + EndermanTracker.hazmats + "\n" + + EnumChatFormatting.AQUA + EndermanTracker.espressoMachines + "\n" + + EnumChatFormatting.WHITE + EndermanTracker.smartyBooks + "\n" + + EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endRunes + "\n" + + EnumChatFormatting.RED + EndermanTracker.chalices + "\n" + + EnumChatFormatting.RED + EndermanTracker.dice + "\n" + + EnumChatFormatting.DARK_PURPLE + EndermanTracker.artifacts + "\n" + + EnumChatFormatting.DARK_PURPLE + EndermanTracker.skins + "\n" + + EnumChatFormatting.GRAY + EndermanTracker.enchantRunes + "\n" + + EnumChatFormatting.GOLD + EndermanTracker.mergers + "\n" + + EnumChatFormatting.GOLD + EndermanTracker.cores + "\n" + + EnumChatFormatting.RED + EndermanTracker.enderBooks + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; case "enderman_session": - if (EndermanTracker.endermanTimeSession == -1) { + if (EndermanTracker.timeSession == -1) { timeBetween = "Never"; } else { - timeBetween = Utils.getTimeBetween(EndermanTracker.endermanTimeSession, timeNow); + timeBetween = Utils.getTimeBetween(EndermanTracker.timeSession, timeNow); } - if (EndermanTracker.endermanBossesSession == -1) { + if (EndermanTracker.bossesSession == -1) { bossesBetween = "Never"; } else { - bossesBetween = nf.format(EndermanTracker.endermanBossesSession); + bossesBetween = nf.format(EndermanTracker.bossesSession); } if (ToggleCommand.slayerCountTotal) { - drop20 = nf.format(EndermanTracker.endermanTAPSession); + drop20 = nf.format(EndermanTracker.TAPSession); } else { - drop20 = nf.format(EndermanTracker.endermanTAPDropsSession) + " times"; + drop20 = nf.format(EndermanTracker.TAPDropsSession) + " times"; } dropsText = EnumChatFormatting.GOLD + "Voidglooms Killed:\n" + @@ -381,6 +387,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + "Mana Steal Books:\n" + EnumChatFormatting.BLUE + "Transmission Tuners:\n" + EnumChatFormatting.YELLOW + "Null Atoms:\n" + + EnumChatFormatting.YELLOW + "Hazmat Endermen:\n" + EnumChatFormatting.AQUA + "Espresso Machines:\n" + EnumChatFormatting.WHITE + "Smarty Pants Books:\n" + EnumChatFormatting.LIGHT_PURPLE + "End Runes:\n" + @@ -394,25 +401,26 @@ public class LootDisplay { EnumChatFormatting.RED + "Ender Slayer Books:\n" + EnumChatFormatting.AQUA + "Time Since RNG:\n" + EnumChatFormatting.AQUA + "Bosses Since RNG:"; - countText = EnumChatFormatting.GOLD + nf.format(EndermanTracker.endermanVoidgloomsSession) + "\n" + - EnumChatFormatting.DARK_GRAY + nf.format(EndermanTracker.endermanNullSpheresSession) + "\n" + + countText = EnumChatFormatting.GOLD + nf.format(EndermanTracker.voidgloomsSession) + "\n" + + EnumChatFormatting.DARK_GRAY + nf.format(EndermanTracker.nullSpheresSession) + "\n" + EnumChatFormatting.DARK_PURPLE + drop20 + "\n" + - EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endermanEndersnakesSession + "\n" + - EnumChatFormatting.DARK_GREEN + EndermanTracker.endermanSummoningEyesSession + "\n" + - EnumChatFormatting.AQUA + EndermanTracker.endermanManaBooksSession + "\n" + - EnumChatFormatting.BLUE + EndermanTracker.endermanTunersSession + "\n" + - EnumChatFormatting.YELLOW + EndermanTracker.endermanAtomsSession + "\n" + - EnumChatFormatting.AQUA + EndermanTracker.endermanEspressoMachinesSession + "\n" + - EnumChatFormatting.WHITE + EndermanTracker.endermanSmartyBooksSession + "\n" + - EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endermanEndRunesSession + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanChalicesSession + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanDiceSession + "\n" + - EnumChatFormatting.DARK_PURPLE + EndermanTracker.endermanArtifactsSession + "\n" + - EnumChatFormatting.DARK_PURPLE + EndermanTracker.endermanSkinsSession + "\n" + - EnumChatFormatting.GRAY + EndermanTracker.endermanEnchantRunesSession + "\n" + - EnumChatFormatting.GOLD + EndermanTracker.endermanMergersSession + "\n" + - EnumChatFormatting.GOLD + EndermanTracker.endermanCoresSession + "\n" + - EnumChatFormatting.RED + EndermanTracker.endermanEnderBooksSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endersnakesSession + "\n" + + EnumChatFormatting.DARK_GREEN + EndermanTracker.summoningEyesSession + "\n" + + EnumChatFormatting.AQUA + EndermanTracker.manaBooksSession + "\n" + + EnumChatFormatting.BLUE + EndermanTracker.tunersSession + "\n" + + EnumChatFormatting.YELLOW + EndermanTracker.atomsSession + "\n" + + EnumChatFormatting.YELLOW + EndermanTracker.hazmatsSession + "\n" + + EnumChatFormatting.AQUA + EndermanTracker.espressoMachinesSession + "\n" + + EnumChatFormatting.WHITE + EndermanTracker.smartyBooksSession + "\n" + + EnumChatFormatting.LIGHT_PURPLE + EndermanTracker.endRunesSession + "\n" + + EnumChatFormatting.RED + EndermanTracker.chalicesSession + "\n" + + EnumChatFormatting.RED + EndermanTracker.diceSession + "\n" + + EnumChatFormatting.DARK_PURPLE + EndermanTracker.artifactsSession + "\n" + + EnumChatFormatting.DARK_PURPLE + EndermanTracker.skinsSession + "\n" + + EnumChatFormatting.GRAY + EndermanTracker.enchantRunesSession + "\n" + + EnumChatFormatting.GOLD + EndermanTracker.mergersSession + "\n" + + EnumChatFormatting.GOLD + EndermanTracker.coresSession + "\n" + + EnumChatFormatting.RED + EndermanTracker.enderBooksSession + "\n" + EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; break; @@ -864,6 +872,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + "Fishing Milestone:\n" + EnumChatFormatting.GOLD + "Good Catches:\n" + EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" + + EnumChatFormatting.BLUE + "Plhlegblasts:\n" + EnumChatFormatting.DARK_RED + "Magma Slugs:\n" + EnumChatFormatting.RED + "Moogmas:\n" + EnumChatFormatting.RED + "Lava Leeches:\n" + @@ -879,6 +888,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + nf.format(FishingTracker.fishingMilestone) + "\n" + EnumChatFormatting.GOLD + nf.format(FishingTracker.goodCatches) + "\n" + EnumChatFormatting.DARK_PURPLE + nf.format(FishingTracker.greatCatches) + "\n" + + EnumChatFormatting.BLUE + nf.format(FishingTracker.plhlegblasts) + "\n" + EnumChatFormatting.DARK_RED + nf.format(FishingTracker.magmaSlugs) + "\n" + EnumChatFormatting.RED + nf.format(FishingTracker.moogmas) + "\n" + EnumChatFormatting.RED + nf.format(FishingTracker.lavaLeeches) + "\n" + @@ -907,6 +917,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + "Fishing Milestone:\n" + EnumChatFormatting.GOLD + "Good Catches:\n" + EnumChatFormatting.DARK_PURPLE + "Great Catches:\n" + + EnumChatFormatting.BLUE + "Plhlegblasts:\n" + EnumChatFormatting.DARK_RED + "Magma Slugs:\n" + EnumChatFormatting.RED + "Moogmas:\n" + EnumChatFormatting.RED + "Lava Leeches:\n" + @@ -922,6 +933,7 @@ public class LootDisplay { EnumChatFormatting.AQUA + nf.format(FishingTracker.fishingMilestoneSession) + "\n" + EnumChatFormatting.GOLD + nf.format(FishingTracker.goodCatchesSession) + "\n" + EnumChatFormatting.DARK_PURPLE + nf.format(FishingTracker.greatCatchesSession) + "\n" + + EnumChatFormatting.BLUE + nf.format(FishingTracker.plhlegblastsSession) + "\n" + EnumChatFormatting.DARK_RED + nf.format(FishingTracker.magmaSlugsSession) + "\n" + EnumChatFormatting.RED + nf.format(FishingTracker.moogmasSession) + "\n" + EnumChatFormatting.RED + nf.format(FishingTracker.lavaLeechesSession) + "\n" + diff --git a/src/main/java/me/Danker/features/loot/LootTracker.java b/src/main/java/me/Danker/features/loot/LootTracker.java index 27f0779..7fa223d 100644 --- a/src/main/java/me/Danker/features/loot/LootTracker.java +++ b/src/main/java/me/Danker/features/loot/LootTracker.java @@ -8,10 +8,13 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class LootTracker { public static long itemsChecked = 0; + static Pattern dropPattern = Pattern.compile(".*? \\((?<amount>\\d+)x .*\\).*"); @SubscribeEvent(priority = EventPriority.HIGHEST) public void onSound(PlaySoundEvent event) { @@ -36,21 +39,21 @@ public class LootTracker { // If no items, are detected, allow check again. Should fix items not being found if (itemTeeth + itemWebs + itemRev + itemNullSphere + itemDerelictAshe > 0) { itemsChecked = System.currentTimeMillis() / 1000; - WolfTracker.wolfTeeth += itemTeeth; - SpiderTracker.spiderWebs += itemWebs; - ZombieTracker.zombieRevFlesh += itemRev; - EndermanTracker.endermanNullSpheres += itemNullSphere; + WolfTracker.teeth += itemTeeth; + SpiderTracker.webs += itemWebs; + ZombieTracker.revFlesh += itemRev; + EndermanTracker.nullSpheres += itemNullSphere; BlazeTracker.derelictAshes += itemDerelictAshe; - WolfTracker.wolfTeethSession += itemTeeth; - SpiderTracker.spiderWebsSession += itemWebs; - ZombieTracker.zombieRevFleshSession += itemRev; - EndermanTracker.endermanNullSpheresSession += itemNullSphere; + WolfTracker.teethSession += itemTeeth; + SpiderTracker.websSession += itemWebs; + ZombieTracker.revFleshSession += itemRev; + EndermanTracker.nullSpheresSession += itemNullSphere; BlazeTracker.derelictAshesSession += itemDerelictAshe; - ConfigHandler.writeIntConfig("wolf", "teeth", WolfTracker.wolfTeeth); - ConfigHandler.writeIntConfig("spider", "web", SpiderTracker.spiderWebs); - ConfigHandler.writeIntConfig("zombie", "revFlesh", ZombieTracker.zombieRevFlesh); - ConfigHandler.writeIntConfig("enderman", "nullSpheres", EndermanTracker.endermanNullSpheres); + ConfigHandler.writeIntConfig("wolf", "teeth", WolfTracker.teeth); + ConfigHandler.writeIntConfig("spider", "web", SpiderTracker.webs); + ConfigHandler.writeIntConfig("zombie", "revFlesh", ZombieTracker.revFlesh); + ConfigHandler.writeIntConfig("enderman", "nullSpheres", EndermanTracker.nullSpheres); ConfigHandler.writeIntConfig("blaze", "derelictAshe", BlazeTracker.derelictAshes); } } @@ -59,11 +62,11 @@ public class LootTracker { } public static int getAmountfromMessage(String message) { - if (message.charAt(message.indexOf("(") + 2) == 'x' || message.charAt(message.indexOf("(") + 3) == 'x') { - return Integer.parseInt(message.substring(message.indexOf("(") + 1, message.indexOf("x"))); - } else { - return 1; + Matcher matcher = dropPattern.matcher(message); + if (matcher.find()) { + return Integer.parseInt(matcher.group("amount")); } + return 1; } } diff --git a/src/main/java/me/Danker/features/loot/SpiderTracker.java b/src/main/java/me/Danker/features/loot/SpiderTracker.java index 34ee695..05a8e75 100644 --- a/src/main/java/me/Danker/features/loot/SpiderTracker.java +++ b/src/main/java/me/Danker/features/loot/SpiderTracker.java @@ -10,31 +10,31 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class SpiderTracker { - public static int spiderTarantulas; - public static int spiderWebs; - public static int spiderTAP; - public static int spiderTAPDrops; - public static int spiderBites; - public static int spiderCatalysts; - public static int spiderBooks; - public static int spiderSwatters; - public static int spiderTalismans; - public static int spiderMosquitos; - public static double spiderTime; - public static int spiderBosses; + public static int tarantulas; + public static int webs; + public static int TAP; + public static int TAPDrops; + public static int bites; + public static int catalysts; + public static int books; + public static int swatters; + public static int talismans; + public static int mosquitos; + public static double time; + public static int bosses; - public static int spiderTarantulasSession = 0; - public static int spiderWebsSession = 0; - public static int spiderTAPSession = 0; - public static int spiderTAPDropsSession = 0; - public static int spiderBitesSession = 0; - public static int spiderCatalystsSession = 0; - public static int spiderBooksSession = 0; - public static int spiderSwattersSession = 0; - public static int spiderTalismansSession = 0; - public static int spiderMosquitosSession = 0; - public static double spiderTimeSession = -1; - public static int spiderBossesSession = -1; + public static int tarantulasSession = 0; + public static int websSession = 0; + public static int TAPSession = 0; + public static int TAPDropsSession = 0; + public static int bitesSession = 0; + public static int catalystsSession = 0; + public static int booksSession = 0; + public static int swattersSession = 0; + public static int talismansSession = 0; + public static int mosquitosSession = 0; + public static double timeSession = -1; + public static int bossesSession = -1; @SubscribeEvent public void onChat(ClientChatReceivedEvent event) { @@ -47,62 +47,62 @@ public class SpiderTracker { boolean rng = false; if (message.contains(" Spider Slayer LVL ")) { // Spider - spiderTarantulas++; - spiderTarantulasSession++; - if (spiderBosses != -1) { - spiderBosses++; + tarantulas++; + tarantulasSession++; + if (bosses != -1) { + bosses++; } - if (spiderBossesSession != -1) { - spiderBossesSession++; + if (bossesSession != -1) { + bossesSession++; } - ConfigHandler.writeIntConfig("spider", "tarantulas", spiderTarantulas); - ConfigHandler.writeIntConfig("spider", "bossRNG", spiderBosses); + ConfigHandler.writeIntConfig("spider", "tarantulas", tarantulas); + ConfigHandler.writeIntConfig("spider", "bossRNG", bosses); } else if (message.contains("RARE DROP! (") && message.contains("Toxic Arrow Poison)")) { int amount = LootTracker.getAmountfromMessage(message); - spiderTAP += amount; - spiderTAPSession += amount; - spiderTAPDrops++; - spiderTAPDropsSession++; - ConfigHandler.writeIntConfig("spider", "tap", spiderTAP); - ConfigHandler.writeIntConfig("spider", "tapDrops", spiderTAPDrops); + TAP += amount; + TAPSession += amount; + TAPDrops++; + TAPDropsSession++; + ConfigHandler.writeIntConfig("spider", "tap", TAP); + ConfigHandler.writeIntConfig("spider", "tapDrops", TAPDrops); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Bite Rune I)")) { - spiderBites++; - spiderBitesSession++; - ConfigHandler.writeIntConfig("spider", "bite", spiderBites); + bites++; + bitesSession++; + ConfigHandler.writeIntConfig("spider", "bite", bites); } else if (message.contains("VERY RARE DROP! (Bane of Arthropods VI)")) { - spiderBooks++; - spiderBooksSession++; - ConfigHandler.writeIntConfig("spider", "book", spiderBooks); + books++; + booksSession++; + ConfigHandler.writeIntConfig("spider", "book", books); } else if (message.contains("VERY RARE DROP! (Spider Catalyst)")) { - spiderCatalysts++; - spiderCatalystsSession++; - ConfigHandler.writeIntConfig("spider", "catalyst", spiderCatalysts); + catalysts++; + catalystsSession++; + ConfigHandler.writeIntConfig("spider", "catalyst", catalysts); } else if (message.contains("CRAZY RARE DROP! (Fly Swatter)")) { rng = true; - spiderSwatters++; - spiderSwattersSession++; - ConfigHandler.writeIntConfig("spider", "swatter", spiderSwatters); + swatters++; + swattersSession++; + ConfigHandler.writeIntConfig("spider", "swatter", swatters); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.LIGHT_PURPLE + "FLY SWATTER!", 3); } else if (message.contains("CRAZY RARE DROP! (Tarantula Talisman")) { rng = true; - spiderTalismans++; - spiderTalismansSession++; - ConfigHandler.writeIntConfig("spider", "talisman", spiderTalismans); + talismans++; + talismansSession++; + ConfigHandler.writeIntConfig("spider", "talisman", talismans); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "TARANTULA TALISMAN!", 3); } else if (message.contains("CRAZY RARE DROP! (Digested Mosquito)")) { rng = true; - spiderMosquitos++; - spiderMosquitosSession++; - ConfigHandler.writeIntConfig("spider", "mosquito", spiderMosquitos); + mosquitos++; + mosquitosSession++; + ConfigHandler.writeIntConfig("spider", "mosquito", mosquitos); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "DIGESTED MOSQUITO!", 5); } if (rng) { - spiderTime = System.currentTimeMillis() / 1000; - spiderBosses = 0; - spiderTimeSession = System.currentTimeMillis() / 1000; - spiderBossesSession = 0; - ConfigHandler.writeDoubleConfig("spider", "timeRNG", spiderTime); + time = System.currentTimeMillis() / 1000; + bosses = 0; + timeSession = System.currentTimeMillis() / 1000; + bossesSession = 0; + ConfigHandler.writeDoubleConfig("spider", "timeRNG", time); ConfigHandler.writeIntConfig("spider", "bossRNG", 0); } } diff --git a/src/main/java/me/Danker/features/loot/WolfTracker.java b/src/main/java/me/Danker/features/loot/WolfTracker.java index 449a3b4..906f507 100644 --- a/src/main/java/me/Danker/features/loot/WolfTracker.java +++ b/src/main/java/me/Danker/features/loot/WolfTracker.java @@ -10,31 +10,33 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class WolfTracker { - public static int wolfSvens; - public static int wolfTeeth; - public static int wolfWheels; - public static int wolfWheelsDrops; - public static int wolfSpirits; - public static int wolfBooks; - public static int wolfEggs; - public static int wolfCoutures; - public static int wolfBaits; - public static int wolfFluxes; - public static double wolfTime; - public static int wolfBosses; + public static int svens; + public static int teeth; + public static int wheels; + public static int wheelsDrops; + public static int spirits; + public static int books; + public static int furballs; + public static int eggs; + public static int coutures; + public static int baits; + public static int fluxes; + public static double time; + public static int bosses; - public static int wolfSvensSession = 0; - public static int wolfTeethSession = 0; - public static int wolfWheelsSession = 0; - public static int wolfWheelsDropsSession = 0; - public static int wolfSpiritsSession = 0; - public static int wolfBooksSession = 0; - public static int wolfEggsSession = 0; - public static int wolfCouturesSession = 0; - public static int wolfBaitsSession = 0; - public static int wolfFluxesSession = 0; - public static double wolfTimeSession = -1; - public static int wolfBossesSession = -1; + public static int svensSession = 0; + public static int teethSession = 0; + public static int wheelsSession = 0; + public static int wheelsDropsSession = 0; + public static int spiritsSession = 0; + public static int booksSession = 0; + public static int furballsSession = 0; + public static int eggsSession = 0; + public static int couturesSession = 0; + public static int baitsSession = 0; + public static int fluxesSession = 0; + public static double timeSession = -1; + public static int bossesSession = -1; @SubscribeEvent public void onChat(ClientChatReceivedEvent event) { @@ -47,64 +49,68 @@ public class WolfTracker { boolean rng = false; if (message.contains(" Wolf Slayer LVL ")) { - wolfSvens++; - wolfSvensSession++; - if (wolfBosses != -1) { - wolfBosses++; + svens++; + svensSession++; + if (bosses != -1) { + bosses++; } - if (wolfBossesSession != -1) { - wolfBossesSession++; + if (bossesSession != -1) { + bossesSession++; } - ConfigHandler.writeIntConfig("wolf", "svens", wolfSvens); - ConfigHandler.writeIntConfig("wolf", "bossRNG", wolfBosses); + ConfigHandler.writeIntConfig("wolf", "svens", svens); + ConfigHandler.writeIntConfig("wolf", "bossRNG", bosses); } else if (message.contains("RARE DROP! (") && message.contains("Hamster Wheel)")) { int amount = LootTracker.getAmountfromMessage(message); - wolfWheels += amount; - wolfWheelsSession += amount; - wolfWheelsDrops++; - wolfWheelsDropsSession++; - ConfigHandler.writeIntConfig("wolf", "wheel", wolfWheels); - ConfigHandler.writeIntConfig("wolf", "wheelDrops", wolfWheelsDrops); + wheels += amount; + wheelsSession += amount; + wheelsDrops++; + wheelsDropsSession++; + ConfigHandler.writeIntConfig("wolf", "wheel", wheels); + ConfigHandler.writeIntConfig("wolf", "wheelDrops", wheelsDrops); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Spirit Rune I)")) { // Removing the unicode here *should* fix rune drops not counting - wolfSpirits++; - wolfSpiritsSession++; - ConfigHandler.writeIntConfig("wolf", "spirit", wolfSpirits); + spirits++; + spiritsSession++; + ConfigHandler.writeIntConfig("wolf", "spirit", spirits); } else if (message.contains("VERY RARE DROP! (Critical VI)")) { - wolfBooks++; - wolfBooksSession++; - ConfigHandler.writeIntConfig("wolf", "book", wolfBooks); + books++; + booksSession++; + ConfigHandler.writeIntConfig("wolf", "book", books); + } else if (message.contains("VERY RARE DROP! (Furball)")) { + furballs++; + furballsSession++; + ConfigHandler.writeIntConfig("wolf", "furball", furballs); } else if (message.contains("CRAZY RARE DROP! (Red Claw Egg)")) { rng = true; - wolfEggs++; - wolfEggsSession++; - ConfigHandler.writeIntConfig("wolf", "egg", wolfEggs); + eggs++; + eggsSession++; + ConfigHandler.writeIntConfig("wolf", "egg", eggs); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_RED + "RED CLAW EGG!", 3); } else if (message.contains("CRAZY RARE DROP! (") && message.contains(" Couture Rune I)")) { rng = true; - wolfCoutures++; - wolfCouturesSession++; - ConfigHandler.writeIntConfig("wolf", "couture", wolfCoutures); + coutures++; + couturesSession++; + ConfigHandler.writeIntConfig("wolf", "couture", coutures); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "COUTURE RUNE!", 3); } else if (message.contains("CRAZY RARE DROP! (Grizzly Bait)") || message.contains("CRAZY RARE DROP! (Rename Me)")) { // How did Skyblock devs even manage to make this item Rename Me rng = true; - wolfBaits++; - wolfBaitsSession++; - ConfigHandler.writeIntConfig("wolf", "bait", wolfBaits); + baits++; + baitsSession++; + ConfigHandler.writeIntConfig("wolf", "bait", baits); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.AQUA + "GRIZZLY BAIT!", 3); } else if (message.contains("CRAZY RARE DROP! (Overflux Capacitor)")) { rng = true; - wolfFluxes++; - wolfFluxesSession++; - ConfigHandler.writeIntConfig("wolf", "flux", wolfFluxes); + fluxes++; + fluxesSession++; + ConfigHandler.writeIntConfig("wolf", "flux", fluxes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "OVERFLUX CAPACITOR!", 5); } if (rng) { - wolfTime = System.currentTimeMillis() / 1000; - wolfBosses = 0; - wolfTimeSession = System.currentTimeMillis() / 1000; - wolfBossesSession = 0; - ConfigHandler.writeDoubleConfig("wolf", "timeRNG", wolfTime); + time = System.currentTimeMillis() / 1000; + bosses = 0; + timeSession = System.currentTimeMillis() / 1000; + bossesSession = 0; + ConfigHandler.writeDoubleConfig("wolf", "timeRNG", time); ConfigHandler.writeIntConfig("wolf", "bossRNG", 0); } } diff --git a/src/main/java/me/Danker/features/loot/ZombieTracker.java b/src/main/java/me/Danker/features/loot/ZombieTracker.java index 1d71222..922e1f4 100644 --- a/src/main/java/me/Danker/features/loot/ZombieTracker.java +++ b/src/main/java/me/Danker/features/loot/ZombieTracker.java @@ -10,41 +10,41 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class ZombieTracker { - public static int zombieRevs; - public static int zombieRevFlesh; - public static int zombieRevViscera; - public static int zombieFoulFlesh; - public static int zombieFoulFleshDrops; - public static int zombiePestilences; - public static int zombieUndeadCatas; - public static int zombieBooks; - public static int zombieBooksT7; - public static int zombieBeheadeds; - public static int zombieRevCatas; - public static int zombieSnakes; - public static int zombieScythes; - public static int zombieShards; - public static int zombieWardenHearts; - public static double zombieTime; - public static int zombieBosses; + public static int revs; + public static int revFlesh; + public static int revViscera; + public static int foulFlesh; + public static int foulFleshDrops; + public static int pestilences; + public static int undeadCatas; + public static int books; + public static int booksT7; + public static int beheadeds; + public static int revCatas; + public static int snakes; + public static int scythes; + public static int shards; + public static int wardenHearts; + public static double time; + public static int bosses; - public static int zombieRevsSession = 0; - public static int zombieRevFleshSession = 0; - public static int zombieRevVisceraSession = 0; - public static int zombieFoulFleshSession = 0; - public static int zombieFoulFleshDropsSession = 0; - public static int zombiePestilencesSession = 0; - public static int zombieUndeadCatasSession = 0; - public static int zombieBooksSession = 0; - public static int zombieBooksT7Session = 0; - public static int zombieBeheadedsSession = 0; - public static int zombieRevCatasSession = 0; - public static int zombieSnakesSession = 0; - public static int zombieScythesSession = 0; - public static int zombieShardsSession = 0; - public static int zombieWardenHeartsSession = 0; - public static double zombieTimeSession = -1; - public static int zombieBossesSession = -1; + public static int revsSession = 0; + public static int revFleshSession = 0; + public static int revVisceraSession = 0; + public static int foulFleshSession = 0; + public static int foulFleshDropsSession = 0; + public static int pestilencesSession = 0; + public static int undeadCatasSession = 0; + public static int booksSession = 0; + public static int booksT7Session = 0; + public static int beheadedsSession = 0; + public static int revCatasSession = 0; + public static int snakesSession = 0; + public static int scythesSession = 0; + public static int shardsSession = 0; + public static int wardenHeartsSession = 0; + public static double timeSession = -1; + public static int bossesSession = -1; @SubscribeEvent public void onChat(ClientChatReceivedEvent event) { @@ -57,87 +57,87 @@ public class ZombieTracker { boolean rng = false; if (message.contains(" Zombie Slayer LVL ")) { // Zombie - zombieRevs++; - zombieRevsSession++; - if (zombieBosses != -1) { - zombieBosses++; + revs++; + revsSession++; + if (bosses != -1) { + bosses++; } - if (zombieBossesSession != 1) { - zombieBossesSession++; + if (bossesSession != 1) { + bossesSession++; } - ConfigHandler.writeIntConfig("zombie", "revs", zombieRevs); - ConfigHandler.writeIntConfig("zombie", "bossRNG", zombieBosses); + ConfigHandler.writeIntConfig("zombie", "revs", revs); + ConfigHandler.writeIntConfig("zombie", "bossRNG", bosses); } else if (message.contains("RARE DROP! (") && message.contains("Revenant Viscera)")) { int amount = LootTracker.getAmountfromMessage(message); - zombieRevViscera += amount; - zombieRevVisceraSession += amount; - ConfigHandler.writeIntConfig("zombie", "revViscera", zombieRevViscera); + revViscera += amount; + revVisceraSession += amount; + ConfigHandler.writeIntConfig("zombie", "revViscera", revViscera); } else if (message.contains("RARE DROP! (") && message.contains("Foul Flesh)")) { int amount = LootTracker.getAmountfromMessage(message); - zombieFoulFlesh += amount; - zombieFoulFleshSession += amount; - zombieFoulFleshDrops++; - zombieFoulFleshDropsSession++; - ConfigHandler.writeIntConfig("zombie", "foulFlesh", zombieFoulFlesh); - ConfigHandler.writeIntConfig("zombie", "foulFleshDrops", zombieFoulFleshDrops); + foulFlesh += amount; + foulFleshSession += amount; + foulFleshDrops++; + foulFleshDropsSession++; + ConfigHandler.writeIntConfig("zombie", "foulFlesh", foulFlesh); + ConfigHandler.writeIntConfig("zombie", "foulFleshDrops", foulFleshDrops); } else if (message.contains("VERY RARE DROP! (Revenant Catalyst)")) { - zombieRevCatas++; - zombieRevCatasSession++; - ConfigHandler.writeIntConfig("zombie", "revCatalyst", zombieRevCatas); + revCatas++; + revCatasSession++; + ConfigHandler.writeIntConfig("zombie", "revCatalyst", revCatas); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Pestilence Rune I)")) { - zombiePestilences++; - zombiePestilencesSession++; - ConfigHandler.writeIntConfig("zombie", "pestilence", zombiePestilences); + pestilences++; + pestilencesSession++; + ConfigHandler.writeIntConfig("zombie", "pestilence", pestilences); } else if (message.contains("VERY RARE DROP! (Smite VI)")) { - zombieBooks++; - zombieBooksSession++; - ConfigHandler.writeIntConfig("zombie", "book", zombieBooks); + books++; + booksSession++; + ConfigHandler.writeIntConfig("zombie", "book", books); } else if (message.contains("VERY RARE DROP! (Smite VII)")) { - zombieBooksT7++; - zombieBooksT7Session++; - ConfigHandler.writeIntConfig("zombie", "bookT7", zombieBooksT7); + booksT7++; + booksT7Session++; + ConfigHandler.writeIntConfig("zombie", "bookT7", booksT7); } else if (message.contains("VERY RARE DROP! (Undead Catalyst)")) { - zombieUndeadCatas++; - zombieUndeadCatasSession++; - ConfigHandler.writeIntConfig("zombie", "undeadCatalyst", zombieUndeadCatas); + undeadCatas++; + undeadCatasSession++; + ConfigHandler.writeIntConfig("zombie", "undeadCatalyst", undeadCatas); } else if (message.contains("CRAZY RARE DROP! (Beheaded Horror)")) { rng = true; - zombieBeheadeds++; - zombieBeheadedsSession++; - ConfigHandler.writeIntConfig("zombie", "beheaded", zombieBeheadeds); + beheadeds++; + beheadedsSession++; + ConfigHandler.writeIntConfig("zombie", "beheaded", beheadeds); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "BEHEADED HORROR!", 3); } else if (message.contains("CRAZY RARE DROP! (") && message.contains(" Snake Rune I)")) { rng = true; - zombieSnakes++; - zombieSnakesSession++; - ConfigHandler.writeIntConfig("zombie", "snake", zombieSnakes); + snakes++; + snakesSession++; + ConfigHandler.writeIntConfig("zombie", "snake", snakes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.DARK_GREEN + "SNAKE RUNE!", 3); } else if (message.contains("CRAZY RARE DROP! (Scythe Blade)")) { rng = true; - zombieScythes++; - zombieScythesSession++; - ConfigHandler.writeIntConfig("zombie", "scythe", zombieScythes); + scythes++; + scythesSession++; + ConfigHandler.writeIntConfig("zombie", "scythe", scythes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "SCYTHE BLADE!", 5); } else if (message.contains("CRAZY RARE DROP! (Shard of the Shredded)")) { rng = true; - zombieShards++; - zombieShardsSession++; - ConfigHandler.writeIntConfig("zombie", "shard", zombieShards); + shards++; + shardsSession++; + ConfigHandler.writeIntConfig("zombie", "shard", shards); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "SHARD OF THE SHREDDED!", 5); } else if (message.contains("INSANE DROP! (Warden Heart)") || message.contains("CRAZY RARE DROP! (Warden Heart)")) { rng = true; - zombieWardenHearts++; - zombieWardenHeartsSession++; - ConfigHandler.writeIntConfig("zombie", "heart", zombieWardenHearts); + wardenHearts++; + wardenHeartsSession++; + ConfigHandler.writeIntConfig("zombie", "heart", wardenHearts); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "WARDEN HEART!", 5); } if (rng) { - zombieTime = System.currentTimeMillis() / 1000; - zombieBosses = 0; - zombieTimeSession = System.currentTimeMillis() / 1000; - zombieBossesSession = 0; - ConfigHandler.writeDoubleConfig("zombie", "timeRNG", zombieTime); + time = System.currentTimeMillis() / 1000; + bosses = 0; + timeSession = System.currentTimeMillis() / 1000; + bossesSession = 0; + ConfigHandler.writeDoubleConfig("zombie", "timeRNG", time); ConfigHandler.writeIntConfig("zombie", "bossRNG", 0); } } diff --git a/src/main/java/me/Danker/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java index 95c0629..f4319a8 100644 --- a/src/main/java/me/Danker/gui/DankerGui.java +++ b/src/main/java/me/Danker/gui/DankerGui.java @@ -2,6 +2,7 @@ package me.Danker.gui; import me.Danker.commands.ToggleCommand; import me.Danker.gui.alerts.AlertsGui; +import me.Danker.gui.aliases.AliasesGui; import me.Danker.gui.buttons.FeatureButton; import me.Danker.gui.crystalhollowwaypoints.CrystalHollowWaypointsGui; import me.Danker.handlers.ConfigHandler; @@ -46,6 +47,7 @@ public class DankerGui extends GuiScreen { private GuiButton customMusic; private GuiButton crystalHollowWaypoints; private GuiButton alerts; + private GuiButton aliases; // Toggles private GuiButton gparty; private GuiButton coords; @@ -89,6 +91,7 @@ public class DankerGui extends GuiScreen { private GuiButton dungeonScore; private GuiButton hideArmour; private GuiButton autoJoinSkyblock; + private GuiButton firePillar; // Chat Messages private GuiButton sceptreMessages; private GuiButton midasStaffMessages; @@ -133,6 +136,7 @@ public class DankerGui extends GuiScreen { customMusic = new GuiButton(0, 0, 0, "Custom Music"); crystalHollowWaypoints = new GuiButton(0, 0, 0, "Crystal Hollows Waypoints"); alerts = new GuiButton(0, 0, 0, "Alerts"); + aliases = new GuiButton(0, 0, 0, "Aliases"); outlineText = new FeatureButton("Outline Displayed Text: " + Utils.getColouredBoolean(ToggleCommand.outlineTextToggled), "Adds bold outline to on-screen text."); pickBlock = new FeatureButton("Auto-Swap to Pick Block: " + Utils.getColouredBoolean(ToggleCommand.swapToPickBlockToggled), "Automatically changes left clicks to middle clicks.\nHelpful when lagging."); coords = new FeatureButton("Coordinate/Angle Display: " + Utils.getColouredBoolean(ToggleCommand.coordsToggled), "Displays coordinates and angle."); @@ -182,6 +186,7 @@ public class DankerGui extends GuiScreen { dungeonScore = new FeatureButton("Dungeon Score Display: " + Utils.getColouredBoolean(ToggleCommand.dungeonScore), "Displays an estimated dungeon score with secrets."); hideArmour = new FeatureButton("Hide Player Armour: " + Utils.getColouredBoolean(ToggleCommand.hideArmour), "Makes player armour invisible, showing their skin."); autoJoinSkyblock = new FeatureButton("Automatically Join Skyblock: " + Utils.getColouredBoolean(ToggleCommand.autoJoinSkyblock), "Automatically join Skyblock when you join Hypixel.\nYou have an addiction."); + firePillar = new FeatureButton("Fire Pillar Display: " + Utils.getColouredBoolean(ToggleCommand.firePillar), "Displays blaze fire pillar text on screen"); allButtons.clear(); allButtons.add(changeDisplay); @@ -192,6 +197,7 @@ public class DankerGui extends GuiScreen { allButtons.add(customMusic); allButtons.add(crystalHollowWaypoints); allButtons.add(alerts); + allButtons.add(aliases); allButtons.add(outlineText); allButtons.add(pickBlock); allButtons.add(coords); @@ -241,6 +247,7 @@ public class DankerGui extends GuiScreen { allButtons.add(dungeonScore); allButtons.add(hideArmour); allButtons.add(autoJoinSkyblock); + allButtons.add(firePillar); search.setText(initSearchText); search.setVisible(true); @@ -336,6 +343,8 @@ public class DankerGui extends GuiScreen { mc.displayGuiScreen(new CrystalHollowWaypointsGui(1)); } else if (button == alerts) { mc.displayGuiScreen(new AlertsGui(1)); + } else if (button == aliases) { + mc.displayGuiScreen(new AliasesGui(1)); } else if (button == outlineText) { ToggleCommand.outlineTextToggled = !ToggleCommand.outlineTextToggled; ConfigHandler.writeBooleanConfig("toggles", "OutlineText", ToggleCommand.outlineTextToggled); @@ -532,6 +541,10 @@ public class DankerGui extends GuiScreen { ToggleCommand.autoJoinSkyblock = !ToggleCommand.autoJoinSkyblock; ConfigHandler.writeBooleanConfig("toggles", "AutoJoinSkyblock", ToggleCommand.autoJoinSkyblock); autoJoinSkyblock.displayString = "Automatically Join Skyblock: " + Utils.getColouredBoolean(ToggleCommand.autoJoinSkyblock); + } else if (button == firePillar) { + ToggleCommand.firePillar = !ToggleCommand.firePillar; + ConfigHandler.writeBooleanConfig("toggles", "FirePillar", ToggleCommand.firePillar); + firePillar.displayString = "Fire Pillar Display: " + Utils.getColouredBoolean(ToggleCommand.firePillar); } } diff --git a/src/main/java/me/Danker/gui/EditLocationsGui.java b/src/main/java/me/Danker/gui/EditLocationsGui.java index b7f4b02..24f0908 100644 --- a/src/main/java/me/Danker/gui/EditLocationsGui.java +++ b/src/main/java/me/Danker/gui/EditLocationsGui.java @@ -33,6 +33,7 @@ public class EditLocationsGui extends GuiScreen { private LocationButton giantHP; private LocationButton abilityCooldown; private LocationButton dungeonScore; + private LocationButton firePillar; @Override public boolean doesGuiPauseGame() { @@ -120,18 +121,19 @@ public class EditLocationsGui extends GuiScreen { display = new LocationButton(MoveCommand.displayXY[0], MoveCommand.displayXY[1], ScaleCommand.displayScale, displayText, displayNums, 110); dungeonTimer = new LocationButton(MoveCommand.dungeonTimerXY[0], MoveCommand.dungeonTimerXY[1], ScaleCommand.dungeonTimerScale, dungeonTimerText, dungeonTimerNums, 80); - coords = new LocationButton(MoveCommand.coordsXY[0], MoveCommand.coordsXY[1], ScaleCommand.coordsScale, NoF3Coords.COORDS_COLOUR + "74 / 14 / -26 (141.1 / 6.7)", null, null); - skill50 = new LocationButton(MoveCommand.skill50XY[0], MoveCommand.skill50XY[1], ScaleCommand.skill50Scale, Skill50Display.SKILL_50_COLOUR + "+3.5 Farming (28,882,117.7/55,172,425) 52.34%", null, null); - lividHP = new LocationButton(MoveCommand.lividHpXY[0], MoveCommand.lividHpXY[1], ScaleCommand.lividHpScale, EnumChatFormatting.WHITE + "﴾ Livid " + EnumChatFormatting.YELLOW + "6.9M" + EnumChatFormatting.RED + "❤ " + EnumChatFormatting.WHITE + "﴿", null, null); - cakeTimer = new LocationButton(MoveCommand.cakeTimerXY[0], MoveCommand.cakeTimerXY[1] + 5, ScaleCommand.cakeTimerScale, CakeTimer.CAKE_COLOUR + " 11h16m", null, null); - skillTracker = new LocationButton(MoveCommand.skillTrackerXY[0], MoveCommand.skillTrackerXY[1], ScaleCommand.skillTrackerScale, skillTrackerText, null, null); - waterAnswer = new LocationButton(MoveCommand.waterAnswerXY[0], MoveCommand.waterAnswerXY[1], ScaleCommand.waterAnswerScale, waterAnswerText, null, null); - bonzoTimer = new LocationButton(MoveCommand.bonzoTimerXY[0], MoveCommand.bonzoTimerXY[1] + 5, ScaleCommand.bonzoTimerScale, BonzoMaskTimer.BONZO_COLOR + " 3m30s", null, null); - golemTimer = new LocationButton(MoveCommand.golemTimerXY[0], MoveCommand.golemTimerXY[1] + 5, ScaleCommand.golemTimerScale, GolemSpawningAlert.GOLEM_COLOUR + " 20s", null, null); - teammatesInRadius = new LocationButton(MoveCommand.teammatesInRadiusXY[0], MoveCommand.teammatesInRadiusXY[1], ScaleCommand.teammatesInRadiusScale, teammatesInRadiusText, null, null); - giantHP = new LocationButton(MoveCommand.giantHPXY[0], MoveCommand.giantHPXY[1], ScaleCommand.giantHPScale, giantHPText, null, null); - abilityCooldown = new LocationButton(MoveCommand.abilityCooldownsXY[0], MoveCommand.abilityCooldownsXY[1], ScaleCommand.abilityCooldownsScale, abilityCooldownText, null, null); + coords = new LocationButton(MoveCommand.coordsXY[0], MoveCommand.coordsXY[1], ScaleCommand.coordsScale, NoF3Coords.COORDS_COLOUR + "74 / 14 / -26 (141.1 / 6.7)"); + skill50 = new LocationButton(MoveCommand.skill50XY[0], MoveCommand.skill50XY[1], ScaleCommand.skill50Scale, Skill50Display.SKILL_50_COLOUR + "+3.5 Farming (28,882,117.7/55,172,425) 52.34%"); + lividHP = new LocationButton(MoveCommand.lividHpXY[0], MoveCommand.lividHpXY[1], ScaleCommand.lividHpScale, EnumChatFormatting.WHITE + "﴾ Livid " + EnumChatFormatting.YELLOW + "6.9M" + EnumChatFormatting.RED + "❤ " + EnumChatFormatting.WHITE + "﴿"); + cakeTimer = new LocationButton(MoveCommand.cakeTimerXY[0], MoveCommand.cakeTimerXY[1] + 5, ScaleCommand.cakeTimerScale, CakeTimer.CAKE_COLOUR + " 11h16m"); + skillTracker = new LocationButton(MoveCommand.skillTrackerXY[0], MoveCommand.skillTrackerXY[1], ScaleCommand.skillTrackerScale, skillTrackerText); + waterAnswer = new LocationButton(MoveCommand.waterAnswerXY[0], MoveCommand.waterAnswerXY[1], ScaleCommand.waterAnswerScale, waterAnswerText); + bonzoTimer = new LocationButton(MoveCommand.bonzoTimerXY[0], MoveCommand.bonzoTimerXY[1] + 5, ScaleCommand.bonzoTimerScale, BonzoMaskTimer.BONZO_COLOR + " 3m30s"); + golemTimer = new LocationButton(MoveCommand.golemTimerXY[0], MoveCommand.golemTimerXY[1] + 5, ScaleCommand.golemTimerScale, GolemSpawningAlert.GOLEM_COLOUR + " 20s"); + teammatesInRadius = new LocationButton(MoveCommand.teammatesInRadiusXY[0], MoveCommand.teammatesInRadiusXY[1], ScaleCommand.teammatesInRadiusScale, teammatesInRadiusText); + giantHP = new LocationButton(MoveCommand.giantHPXY[0], MoveCommand.giantHPXY[1], ScaleCommand.giantHPScale, giantHPText); + abilityCooldown = new LocationButton(MoveCommand.abilityCooldownsXY[0], MoveCommand.abilityCooldownsXY[1], ScaleCommand.abilityCooldownsScale, abilityCooldownText); dungeonScore = new LocationButton(MoveCommand.dungeonScoreXY[0], MoveCommand.dungeonScoreXY[1], ScaleCommand.dungeonScoreScale, dungeonScoreText, dungeonScoreNums, 80); + firePillar = new LocationButton(MoveCommand.firePillarXY[0], MoveCommand.firePillarXY[1], ScaleCommand.firePillarScale, EnumChatFormatting.GOLD + "3s " + EnumChatFormatting.RED + "8 hits"); this.buttonList.add(coords); this.buttonList.add(dungeonTimer); @@ -147,6 +149,7 @@ public class EditLocationsGui extends GuiScreen { this.buttonList.add(giantHP); this.buttonList.add(abilityCooldown); this.buttonList.add(dungeonScore); + this.buttonList.add(firePillar); } @Override @@ -267,6 +270,12 @@ public class EditLocationsGui extends GuiScreen { MoveCommand.dungeonScoreXY[1] += yMoved; dungeonScore.xPosition = MoveCommand.dungeonScoreXY[0]; dungeonScore.yPosition = MoveCommand.dungeonScoreXY[1]; + break; + case "firePillar": + MoveCommand.firePillarXY[0] += xMoved; + MoveCommand.firePillarXY[1] += yMoved; + firePillar.xPosition = MoveCommand.firePillarXY[0]; + firePillar.yPosition = MoveCommand.firePillarXY[1]; } this.buttonList.clear(); initGui(); @@ -307,6 +316,8 @@ public class EditLocationsGui extends GuiScreen { moving = "abilityCooldown"; } else if (button == dungeonScore) { moving = "dungeonScore"; + } else if (button == firePillar) { + moving = "firePillar"; } } } @@ -343,6 +354,8 @@ public class EditLocationsGui extends GuiScreen { ConfigHandler.writeIntConfig("locations", "abilityCooldownsY", MoveCommand.abilityCooldownsXY[1]); ConfigHandler.writeIntConfig("locations", "dungeonScoreX", MoveCommand.dungeonScoreXY[0]); ConfigHandler.writeIntConfig("locations", "dungeonScoreY", MoveCommand.dungeonScoreXY[1]); + ConfigHandler.writeIntConfig("locations", "firePillarX", MoveCommand.firePillarXY[0]); + ConfigHandler.writeIntConfig("locations", "firePillarY", MoveCommand.firePillarXY[1]); } } diff --git a/src/main/java/me/Danker/gui/alerts/AlertActionGui.java b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java index 7a73f5a..4853ac1 100644 --- a/src/main/java/me/Danker/gui/alerts/AlertActionGui.java +++ b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java @@ -60,9 +60,6 @@ public class AlertActionGui extends GuiScreen { Alerts.Alert alert = Alerts.alerts.get(id); RenderUtils.drawCenteredText(alert.alert, width, 10, 1D); - String alertText = alert.alert; - int textWidth = mc.fontRendererObj.getStringWidth(alertText); - new TextRenderer(mc, alertText, width / 2 - textWidth / 2, 10, 1D); } @Override @@ -80,12 +77,12 @@ public class AlertActionGui extends GuiScreen { mc.displayGuiScreen(new AlertAddGui(alert, id)); } else if (button == delete) { Alerts.alerts.remove(id); - Alerts.saveToFile(); + Alerts.save(); mc.displayGuiScreen(new AlertsGui(1)); return; } Alerts.alerts.set(id, alert); - Alerts.saveToFile(); + Alerts.save(); } } diff --git a/src/main/java/me/Danker/gui/alerts/AlertAddGui.java b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java index 5f01d6d..304c77a 100644 --- a/src/main/java/me/Danker/gui/alerts/AlertAddGui.java +++ b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java @@ -25,6 +25,7 @@ public class AlertAddGui extends GuiScreen { private GuiButton startsWith; private GuiButton contains; private GuiButton endsWith; + private GuiButton regex; private GuiButton everywhere; private GuiButton skyblock; private GuiButton dungeons; @@ -57,9 +58,10 @@ public class AlertAddGui extends GuiScreen { cancel = new GuiButton(0, 2, height - 30, 100, 20, "Cancel"); - startsWith = new GuiButton(0, width / 2 - 200, (int) (height * 0.2), 120, 20, "Starts With"); - contains = new GuiButton(0, width / 2 - 60, (int) (height * 0.2), 120, 20, "Contains"); - endsWith = new GuiButton(0, width / 2 + 80, (int) (height * 0.2), 120, 20, "Ends With"); + startsWith = new GuiButton(0, width / 2 - 260, (int) (height * 0.2), 120, 20, "Starts With"); + contains = new GuiButton(0, width / 2 - 130, (int) (height * 0.2), 120, 20, "Contains"); + endsWith = new GuiButton(0, width / 2 + 10, (int) (height * 0.2), 120, 20, "Ends With"); + regex = new GuiButton(0, width / 2 + 140, (int) (height * 0.2), 120, 20, "Regex"); everywhere = new GuiButton(0, width / 2 - 200, (int) (height * 0.3), 120, 20, "Everywhere"); skyblock = new GuiButton(0, width / 2 - 60, (int) (height * 0.3), 120, 20, "Skyblock"); dungeons = new GuiButton(0, width / 2 + 80, (int) (height * 0.3), 120, 20, "Dungeons"); @@ -80,13 +82,16 @@ public class AlertAddGui extends GuiScreen { message.setVisible(true); message.setEnabled(true); + message.setMaxStringLength(100); alert.setVisible(true); alert.setEnabled(true); + alert.setMaxStringLength(100); this.buttonList.add(cancel); this.buttonList.add(startsWith); this.buttonList.add(contains); this.buttonList.add(endsWith); + this.buttonList.add(regex); this.buttonList.add(everywhere); this.buttonList.add(skyblock); this.buttonList.add(dungeons); @@ -119,6 +124,8 @@ public class AlertAddGui extends GuiScreen { mode = "Contains"; } else if (button == endsWith) { mode = "Ends With"; + } else if (button == regex) { + mode = "Regex"; } else if (button == everywhere) { location = "Everywhere"; } else if (button == skyblock) { @@ -132,7 +139,7 @@ public class AlertAddGui extends GuiScreen { } else { Alerts.alerts.add(newAlert); } - Alerts.saveToFile(); + Alerts.save(); mc.displayGuiScreen(new AlertsGui(1)); } } diff --git a/src/main/java/me/Danker/gui/aliases/AliasesActionGui.java b/src/main/java/me/Danker/gui/aliases/AliasesActionGui.java new file mode 100644 index 0000000..d2c7a6a --- /dev/null +++ b/src/main/java/me/Danker/gui/aliases/AliasesActionGui.java @@ -0,0 +1,81 @@ +package me.Danker.gui.aliases; + +import me.Danker.features.ChatAliases; +import me.Danker.utils.RenderUtils; +import me.Danker.utils.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.EnumChatFormatting; + +public class AliasesActionGui extends GuiScreen { + + private final int id; + + private GuiButton goBack; + private GuiButton toggle; + private GuiButton edit; + private GuiButton delete; + + public AliasesActionGui(int id) { + this.id = id; + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void initGui() { + super.initGui(); + + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + int height = sr.getScaledHeight(); + int width = sr.getScaledWidth(); + + ChatAliases.Alias alias = ChatAliases.aliases.get(id); + + goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back"); + toggle = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Enabled: " + Utils.getColouredBoolean(alias.toggled)); + edit = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Edit >"); + delete = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), EnumChatFormatting.RED + "Delete Alias"); + + this.buttonList.add(toggle); + this.buttonList.add(edit); + this.buttonList.add(delete); + this.buttonList.add(goBack); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + this.drawDefaultBackground(); + super.drawScreen(mouseX, mouseY, partialTicks); + + ChatAliases.Alias alias = ChatAliases.aliases.get(id); + + RenderUtils.drawCenteredText(alias.text, width, 10, 1D); + } + + @Override + public void actionPerformed(GuiButton button) { + ChatAliases.Alias alias = ChatAliases.aliases.get(id); + if (button == goBack) { + mc.displayGuiScreen(new AliasesGui(1)); + } else if (button == toggle) { + alias.toggle(); + toggle.displayString = "Enabled: " + Utils.getColouredBoolean(alias.toggled); + } else if (button == edit) { + mc.displayGuiScreen(new AliasesAddGui(alias, id)); + } else if (button == delete) { + ChatAliases.aliases.remove(id); + ChatAliases.save(); + mc.displayGuiScreen(new AliasesGui(1)); + return; + } + ChatAliases.aliases.set(id, alias); + ChatAliases.save(); + } + +} diff --git a/src/main/java/me/Danker/gui/aliases/AliasesAddGui.java b/src/main/java/me/Danker/gui/aliases/AliasesAddGui.java new file mode 100644 index 0000000..610354a --- /dev/null +++ b/src/main/java/me/Danker/gui/aliases/AliasesAddGui.java @@ -0,0 +1,115 @@ +package me.Danker.gui.aliases; + +import me.Danker.features.ChatAliases; +import me.Danker.handlers.TextRenderer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraftforge.fml.client.config.GuiCheckBox; + +import java.io.IOException; + +public class AliasesAddGui extends GuiScreen { + + private boolean editing; + private ChatAliases.Alias base = null; + private int id; + + private GuiButton cancel; + + private GuiTextField text; + private GuiTextField alias; + private GuiCheckBox toggled; + private GuiButton add; + + public AliasesAddGui() {} + + public AliasesAddGui(ChatAliases.Alias alias, int id) { + editing = true; + base = alias; + this.id = id; + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void initGui() { + super.initGui(); + + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + int height = sr.getScaledHeight(); + int width = sr.getScaledWidth(); + + cancel = new GuiButton(0, 2, height - 30, 100, 20, "Cancel"); + + + text = new GuiTextField(0, this.fontRendererObj, width / 2 - 100, (int) (height * 0.2), 200, 20); + alias = new GuiTextField(0, this.fontRendererObj, width / 2 - 100, (int) (height * 0.3), 200, 20); + toggled = new GuiCheckBox(0, width / 2 - 26, (int) (height * 0.4), "Toggled", true); + add = new GuiButton(0, width / 2 - 25, (int) (height * 0.8), 50, 20, "Add"); + + if (editing) { + text.setText(base.text); + alias.setText(base.alias); + toggled.setIsChecked(base.toggled); + } + + text.setVisible(true); + text.setEnabled(true); + alias.setVisible(true); + alias.setEnabled(true); + alias.setMaxStringLength(100); + + this.buttonList.add(cancel); + this.buttonList.add(toggled); + this.buttonList.add(add); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + this.drawDefaultBackground(); + super.drawScreen(mouseX, mouseY, partialTicks); + + text.drawTextBox(); + alias.drawTextBox(); + + new TextRenderer(mc, "Text:", width / 2 - 135, (int) (height * 0.22), 1D); + new TextRenderer(mc, "Alias:", width / 2 - 137, (int) (height * 0.32), 1D); + } + + @Override + public void actionPerformed(GuiButton button) { + if (button == cancel) { + mc.displayGuiScreen(new AliasesGui(1)); + } else if (button == add) { + ChatAliases.Alias newAlias = new ChatAliases.Alias(text.getText(), alias.getText(), toggled.isChecked()); + if (editing) { + ChatAliases.aliases.set(id, newAlias); + } else { + ChatAliases.aliases.add(newAlias); + } + ChatAliases.save(); + mc.displayGuiScreen(new AliasesGui(1)); + } + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + text.mouseClicked(mouseX, mouseY, mouseButton); + alias.mouseClicked(mouseX, mouseY, mouseButton); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException { + super.keyTyped(typedChar, keyCode); + text.textboxKeyTyped(typedChar, keyCode); + alias.textboxKeyTyped(typedChar, keyCode); + } + +} diff --git a/src/main/java/me/Danker/gui/aliases/AliasesGui.java b/src/main/java/me/Danker/gui/aliases/AliasesGui.java new file mode 100644 index 0000000..f5b863a --- /dev/null +++ b/src/main/java/me/Danker/gui/aliases/AliasesGui.java @@ -0,0 +1,108 @@ +package me.Danker.gui.aliases; + +import me.Danker.commands.ToggleCommand; +import me.Danker.features.ChatAliases; +import me.Danker.gui.DankerGui; +import me.Danker.gui.buttons.FeatureButton; +import me.Danker.handlers.ConfigHandler; +import me.Danker.utils.RenderUtils; +import me.Danker.utils.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; + +import java.util.ArrayList; +import java.util.List; + +public class AliasesGui extends GuiScreen { + + private final int page; + private final List<GuiButton> allButtons = new ArrayList<>(); + + private GuiButton goBack; + private GuiButton backPage; + private GuiButton nextPage; + private GuiButton add; + private GuiButton aliases; + + public AliasesGui(int page) { + this.page = page; + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void initGui() { + super.initGui(); + + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + int height = sr.getScaledHeight(); + int width = sr.getScaledWidth(); + + goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back"); + backPage = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), 80, 20, "< Back"); + nextPage = new GuiButton(0, width / 2 + 20, (int) (height * 0.8), 80, 20, "Next >"); + aliases = new FeatureButton("Aliases: " + Utils.getColouredBoolean(ToggleCommand.aliases), "Replaces text in chat with an alias"); + add = new GuiButton(0, 0, 0, "Add Alias"); + + allButtons.clear(); + allButtons.add(aliases); + allButtons.add(add); + for (int i = 0; i < ChatAliases.aliases.size(); i++) { + ChatAliases.Alias alias = ChatAliases.aliases.get(i); + GuiButton button = new GuiButton(i, 0, 0, alias.text + " >"); + allButtons.add(button); + } + + reInit(); + } + + public void reInit() { + this.buttonList.clear(); + + for (int i = (page - 1) * 7, iteration = 0; iteration < 7 && i < allButtons.size(); i++, iteration++) { + GuiButton button = allButtons.get(i); + button.xPosition = width / 2 - 100; + button.yPosition = (int) (height * (0.1 * (iteration + 1))); + this.buttonList.add(button); + } + + if (page > 1) this.buttonList.add(backPage); + if (page < Math.ceil(allButtons.size() / 7D)) this.buttonList.add(nextPage); + + this.buttonList.add(goBack); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + this.drawDefaultBackground(); + super.drawScreen(mouseX, mouseY, partialTicks); + + String pageText = "Page: " + page + "/" + (int) Math.ceil(allButtons.size() / 7D); + RenderUtils.drawCenteredText(pageText, width, 10, 1D); + } + + @Override + public void actionPerformed(GuiButton button) { + if (button == goBack) { + mc.displayGuiScreen(new DankerGui(1, "")); + } else if (button == nextPage) { + mc.displayGuiScreen(new AliasesGui(page + 1)); + } else if (button == backPage) { + mc.displayGuiScreen(new AliasesGui(page - 1)); + } else if (button == add) { + mc.displayGuiScreen(new AliasesAddGui()); + } else if (button == aliases) { + ToggleCommand.aliases = !ToggleCommand.aliases; + ConfigHandler.writeBooleanConfig("toggles", "Aliases", ToggleCommand.aliases); + aliases.displayString = "Aliases: " + Utils.getColouredBoolean(ToggleCommand.aliases); + } else { + mc.displayGuiScreen(new AliasesActionGui(button.id)); + } + } + +} diff --git a/src/main/java/me/Danker/gui/buttons/LocationButton.java b/src/main/java/me/Danker/gui/buttons/LocationButton.java index 8da1ab9..533bf83 100644 --- a/src/main/java/me/Danker/gui/buttons/LocationButton.java +++ b/src/main/java/me/Danker/gui/buttons/LocationButton.java @@ -44,6 +44,10 @@ public class LocationButton extends GuiButton { this.height = (int) ((splitText.length * 9 + 3) * scale); this.width = (int) ((this.longestText + offset + 3) * scale); } + + public LocationButton(int x, int y, double scale, String text) { + this(x, y, scale, text, null, null); + } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java index df91f04..52c0fba 100644 --- a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java +++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java @@ -23,6 +23,18 @@ public class CrystalHollowAddWaypointGui extends GuiScreen { private GuiTextField z; private GuiButton add; + private int xPos = -1; + private int yPos = -1; + private int zPos = -1; + + public CrystalHollowAddWaypointGui() {} + + public CrystalHollowAddWaypointGui(int x, int y, int z) { + xPos = x; + yPos = y; + zPos = z; + } + @Override public boolean doesGuiPauseGame() { return false; @@ -49,10 +61,13 @@ public class CrystalHollowAddWaypointGui extends GuiScreen { name.setEnabled(true); x.setVisible(true); x.setEnabled(true); + if (xPos != -1) x.setText(xPos + ""); y.setVisible(true); y.setEnabled(true); + if (yPos != -1) y.setText(yPos + ""); z.setVisible(true); z.setEnabled(true); + if (zPos != -1) z.setText(zPos + ""); this.buttonList.add(cancel); this.buttonList.add(curPos); diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java index f5e2706..4880041 100644 --- a/src/main/java/me/Danker/handlers/ConfigHandler.java +++ b/src/main/java/me/Danker/handlers/ConfigHandler.java @@ -9,6 +9,7 @@ import me.Danker.commands.ToggleCommand; import me.Danker.features.*; import me.Danker.features.loot.*; import me.Danker.features.puzzlesolvers.*; +import me.Danker.utils.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.util.EnumChatFormatting; @@ -245,6 +246,8 @@ public class ConfigHandler { ToggleCommand.dungeonScore = initBoolean("toggles", "DungeonScore", false); ToggleCommand.hideArmour = initBoolean("toggles", "HideArmour", false); ToggleCommand.autoJoinSkyblock = initBoolean("toggles", "AutoJoinSkyblock", false); + ToggleCommand.firePillar = initBoolean("toggles", "FirePillar", false); + ToggleCommand.aliases = initBoolean("toggles", "Aliases", false); // Chat Messages ToggleCommand.sceptreMessages = initBoolean("toggles", "SceptreMessages", true); ToggleCommand.midasStaffMessages = initBoolean("toggles", "MidasStaffMessages", true); @@ -295,6 +298,10 @@ public class ConfigHandler { CustomMusic.dungeonbossVolume = initInt("music", "DungeonBossVolume", 50); CustomMusic.bloodroomVolume = initInt("music", "BloodRoomVolume", 50); CustomMusic.dungeonVolume = initInt("music", "DungeonVolume", 50); + CustomMusic.phase2Volume = initInt("music", "Phase2Volume", 50); + CustomMusic.phase3Volume = initInt("music", "Phase3Volume", 50); + CustomMusic.phase4Volume = initInt("music", "Phase4Volume", 50); + CustomMusic.phase5Volume = initInt("music", "Phase5Volume", 50); CustomMusic.hubVolume = initInt("music", "HubVolume", 50); CustomMusic.islandVolume = initInt("music", "IslandVolume", 50); CustomMusic.dungeonHubVolume = initInt("music", "DungeonHubVolume", 50); @@ -320,71 +327,73 @@ public class ConfigHandler { } // Wolf - WolfTracker.wolfSvens = initInt("wolf", "svens", 0); - WolfTracker.wolfTeeth = initInt("wolf", "teeth", 0); - WolfTracker.wolfWheels = initInt("wolf", "wheel", 0); - WolfTracker.wolfWheelsDrops = initInt("wolf", "wheelDrops", 0); - WolfTracker.wolfSpirits = initInt("wolf", "spirit", 0); - WolfTracker.wolfBooks = initInt("wolf", "book", 0); - WolfTracker.wolfEggs = initInt("wolf", "egg", 0); - WolfTracker.wolfCoutures = initInt("wolf", "couture", 0); - WolfTracker.wolfBaits = initInt("wolf", "bait", 0); - WolfTracker.wolfFluxes = initInt("wolf", "flux", 0); - WolfTracker.wolfTime = initDouble("wolf", "timeRNG", -1); - WolfTracker.wolfBosses = initInt("wolf", "bossRNG", -1); + WolfTracker.svens = initInt("wolf", "svens", 0); + WolfTracker.teeth = initInt("wolf", "teeth", 0); + WolfTracker.wheels = initInt("wolf", "wheel", 0); + WolfTracker.wheelsDrops = initInt("wolf", "wheelDrops", 0); + WolfTracker.spirits = initInt("wolf", "spirit", 0); + WolfTracker.books = initInt("wolf", "book", 0); + WolfTracker.furballs = initInt("wolf", "furball", 0); + WolfTracker.eggs = initInt("wolf", "egg", 0); + WolfTracker.coutures = initInt("wolf", "couture", 0); + WolfTracker.baits = initInt("wolf", "bait", 0); + WolfTracker.fluxes = initInt("wolf", "flux", 0); + WolfTracker.time = initDouble("wolf", "timeRNG", -1); + WolfTracker.bosses = initInt("wolf", "bossRNG", -1); // Spider - SpiderTracker.spiderTarantulas = initInt("spider", "tarantulas", 0); - SpiderTracker.spiderWebs = initInt("spider", "web", 0); - SpiderTracker.spiderTAP = initInt("spider", "tap", 0); - SpiderTracker.spiderTAPDrops = initInt("spider", "tapDrops", 0); - SpiderTracker.spiderBites = initInt("spider", "bite", 0); - SpiderTracker.spiderCatalysts = initInt("spider", "catalyst", 0); - SpiderTracker.spiderBooks = initInt("spider", "book", 0); - SpiderTracker.spiderSwatters = initInt("spider", "swatter", 0); - SpiderTracker.spiderTalismans = initInt("spider", "talisman", 0); - SpiderTracker.spiderMosquitos = initInt("spider", "mosquito", 0); - SpiderTracker.spiderTime = initDouble("spider", "timeRNG", -1); - SpiderTracker.spiderBosses = initInt("spider", "bossRNG", -1); + SpiderTracker.tarantulas = initInt("spider", "tarantulas", 0); + SpiderTracker.webs = initInt("spider", "web", 0); + SpiderTracker.TAP = initInt("spider", "tap", 0); + SpiderTracker.TAPDrops = initInt("spider", "tapDrops", 0); + SpiderTracker.bites = initInt("spider", "bite", 0); + SpiderTracker.catalysts = initInt("spider", "catalyst", 0); + SpiderTracker.books = initInt("spider", "book", 0); + SpiderTracker.swatters = initInt("spider", "swatter", 0); + SpiderTracker.talismans = initInt("spider", "talisman", 0); + SpiderTracker.mosquitos = initInt("spider", "mosquito", 0); + SpiderTracker.time = initDouble("spider", "timeRNG", -1); + SpiderTracker.bosses = initInt("spider", "bossRNG", -1); // Zombie - ZombieTracker.zombieRevs = initInt("zombie", "revs", 0); - ZombieTracker.zombieRevFlesh = initInt("zombie", "revFlesh", 0); - ZombieTracker.zombieRevViscera = initInt("zombie", "revViscera", 0); - ZombieTracker.zombieFoulFlesh = initInt("zombie", "foulFlesh", 0); - ZombieTracker.zombieFoulFleshDrops = initInt("zombie", "foulFleshDrops", 0); - ZombieTracker.zombiePestilences = initInt("zombie", "pestilence", 0); - ZombieTracker.zombieUndeadCatas = initInt("zombie", "undeadCatalyst", 0); - ZombieTracker.zombieBooks = initInt("zombie", "book", 0); - ZombieTracker.zombieBeheadeds = initInt("zombie", "beheaded", 0); - ZombieTracker.zombieRevCatas = initInt("zombie", "revCatalyst", 0); - ZombieTracker.zombieSnakes = initInt("zombie", "snake", 0); - ZombieTracker.zombieScythes = initInt("zombie", "scythe", 0); - ZombieTracker.zombieShards = initInt("zombie", "shard", 0); - ZombieTracker.zombieWardenHearts = initInt("zombie", "heart", 0); - ZombieTracker.zombieTime = initDouble("zombie", "timeRNG", -1); - ZombieTracker.zombieBosses = initInt("zombie", "bossRNG", -1); + ZombieTracker.revs = initInt("zombie", "revs", 0); + ZombieTracker.revFlesh = initInt("zombie", "revFlesh", 0); + ZombieTracker.revViscera = initInt("zombie", "revViscera", 0); + ZombieTracker.foulFlesh = initInt("zombie", "foulFlesh", 0); + ZombieTracker.foulFleshDrops = initInt("zombie", "foulFleshDrops", 0); + ZombieTracker.pestilences = initInt("zombie", "pestilence", 0); + ZombieTracker.undeadCatas = initInt("zombie", "undeadCatalyst", 0); + ZombieTracker.books = initInt("zombie", "book", 0); + ZombieTracker.beheadeds = initInt("zombie", "beheaded", 0); + ZombieTracker.revCatas = initInt("zombie", "revCatalyst", 0); + ZombieTracker.snakes = initInt("zombie", "snake", 0); + ZombieTracker.scythes = initInt("zombie", "scythe", 0); + ZombieTracker.shards = initInt("zombie", "shard", 0); + ZombieTracker.wardenHearts = initInt("zombie", "heart", 0); + ZombieTracker.time = initDouble("zombie", "timeRNG", -1); + ZombieTracker.bosses = initInt("zombie", "bossRNG", -1); // Enderman - EndermanTracker.endermanVoidglooms = initInt("enderman", "voidglooms", 0); - EndermanTracker.endermanNullSpheres = initInt("enderman", "nullSpheres", 0); - EndermanTracker.endermanTAP = initInt("enderman", "tap", 0); - EndermanTracker.endermanTAPDrops = initInt("enderman", "tapDrops", 0); - EndermanTracker.endermanEndersnakes = initInt("enderman", "endersnakes", 0); - EndermanTracker.endermanSummoningEyes = initInt("enderman", "summoningEyes", 0); - EndermanTracker.endermanManaBooks = initInt("enderman", "manaBooks", 0); - EndermanTracker.endermanTuners = initInt("enderman", "tuners", 0); - EndermanTracker.endermanAtoms = initInt("enderman", "atoms", 0); - EndermanTracker.endermanEspressoMachines = initInt("enderman", "espressoMachines", 0); - EndermanTracker.endermanSmartyBooks = initInt("enderman", "smartyBooks", 0); - EndermanTracker.endermanEndRunes = initInt("enderman", "endRunes", 0); - EndermanTracker.endermanChalices = initInt("enderman", "chalices", 0); - EndermanTracker.endermanDice = initInt("enderman", "dice", 0); - EndermanTracker.endermanArtifacts = initInt("enderman", "artifacts", 0); - EndermanTracker.endermanSkins = initInt("enderman", "skins", 0); - EndermanTracker.endermanMergers = initInt("enderman", "mergers", 0); - EndermanTracker.endermanCores = initInt("enderman", "cores", 0); - EndermanTracker.endermanEnchantRunes = initInt("enderman", "enchantRunes", 0); - EndermanTracker.endermanEnderBooks = initInt("enderman", "enderBooks", 0); - EndermanTracker.endermanTime = initDouble("enderman", "timeRNG", -1); - EndermanTracker.endermanBosses = initInt("enderman", "bossRNG", -1); + EndermanTracker.voidglooms = initInt("enderman", "voidglooms", 0); + EndermanTracker.nullSpheres = initInt("enderman", "nullSpheres", 0); + EndermanTracker.TAP = initInt("enderman", "tap", 0); + EndermanTracker.TAPDrops = initInt("enderman", "tapDrops", 0); + EndermanTracker.endersnakes = initInt("enderman", "endersnakes", 0); + EndermanTracker.summoningEyes = initInt("enderman", "summoningEyes", 0); + EndermanTracker.manaBooks = initInt("enderman", "manaBooks", 0); + EndermanTracker.tuners = initInt("enderman", "tuners", 0); + EndermanTracker.atoms = initInt("enderman", "atoms", 0); + EndermanTracker.hazmats = initInt("enderman", "hazmats", 0); + EndermanTracker.espressoMachines = initInt("enderman", "espressoMachines", 0); + EndermanTracker.smartyBooks = initInt("enderman", "smartyBooks", 0); + EndermanTracker.endRunes = initInt("enderman", "endRunes", 0); + EndermanTracker.chalices = initInt("enderman", "chalices", 0); + EndermanTracker.dice = initInt("enderman", "dice", 0); + EndermanTracker.artifacts = initInt("enderman", "artifacts", 0); + EndermanTracker.skins = initInt("enderman", "skins", 0); + EndermanTracker.mergers = initInt("enderman", "mergers", 0); + EndermanTracker.cores = initInt("enderman", "cores", 0); + EndermanTracker.enchantRunes = initInt("enderman", "enchantRunes", 0); + EndermanTracker.enderBooks = initInt("enderman", "enderBooks", 0); + EndermanTracker.time = initDouble("enderman", "timeRNG", -1); + EndermanTracker.bosses = initInt("enderman", "bossRNG", -1); // Blaze BlazeTracker.demonlords = initInt("blaze", "demonlords", 0); BlazeTracker.derelictAshes = initInt("blaze", "derelictAshes", 0); @@ -458,6 +467,7 @@ public class ConfigHandler { FishingTracker.lavaPigmen = initInt("fishing", "lavaPigman", 0); FishingTracker.zombieMiners = initInt("fishing", "zombieMiner", 0); // Lava Fishing + FishingTracker.plhlegblasts = initInt("fishing", "plhlegblast", 0); FishingTracker.magmaSlugs = initInt("fishing", "magmaSlug", 0); FishingTracker.moogmas = initInt("fishing", "moogma", 0); FishingTracker.lavaLeeches = initInt("fishing", "lavaLeech", 0); @@ -598,6 +608,7 @@ public class ConfigHandler { DankersSkyblockMod.firstLaunch = initBoolean("misc", "firstLaunch", true); EndOfFarmAlert.min = initDouble("misc", "farmMin", -78.5); EndOfFarmAlert.max = initDouble("misc", "farmMax", 79.5); + Utils.TITLE_SOUND = initString("misc", "titleSound", "random.orb"); // Locations ScaledResolution scaled = new ScaledResolution(Minecraft.getMinecraft()); @@ -630,6 +641,8 @@ public class ConfigHandler { MoveCommand.abilityCooldownsXY[1] = initInt("locations", "abilityCooldownsY", 150); MoveCommand.dungeonScoreXY[0] = initInt("locations", "dungeonScoreX", 150); MoveCommand.dungeonScoreXY[1] = initInt("locations", "dungeonScoreY", 150); + MoveCommand.firePillarXY[0] = initInt("locations", "firePillarX", 200); + MoveCommand.firePillarXY[1] = initInt("locations", "firePillarY", 200); // Scales ScaleCommand.coordsScale = initDouble("scales", "coordsScale", 1); @@ -646,6 +659,7 @@ public class ConfigHandler { ScaleCommand.giantHPScale = initDouble("scales", "giantHPScale", 1); ScaleCommand.abilityCooldownsScale = initDouble("scales", "abilityCooldownsScale", 1); ScaleCommand.dungeonScoreScale = initDouble("scales", "dungeonScoreScale", 1); + ScaleCommand.firePillarScale = initDouble("scales", "firePillarScale", 1); // Skills DankersSkyblockMod.farmingLevel = initInt("skills", "farming", -1); @@ -708,6 +722,7 @@ public class ConfigHandler { Gson gson = new Gson(); try { + // Alerts if (!(new File(Alerts.configFile).exists())) { FileWriter file = new FileWriter(Alerts.configFile); file.write(new JsonArray().toString()); @@ -715,6 +730,15 @@ public class ConfigHandler { } Alerts.Alert[] alerts = gson.fromJson(new FileReader(Alerts.configFile), Alerts.Alert[].class); if (alerts != null) Alerts.alerts = new ArrayList<>(Arrays.asList(alerts)); + + // Aliases + if (!(new File(ChatAliases.configFile).exists())) { + FileWriter file = new FileWriter(ChatAliases.configFile); + file.write(new JsonArray().toString()); + file.close(); + } + ChatAliases.Alias[] aliases = gson.fromJson(new FileReader(ChatAliases.configFile), ChatAliases.Alias[].class); + if (aliases != null) ChatAliases.aliases = new ArrayList<>(Arrays.asList(aliases)); } catch (IOException ex) { ex.printStackTrace(); } diff --git a/src/main/java/me/Danker/utils/Utils.java b/src/main/java/me/Danker/utils/Utils.java index 0fa2d0a..bc02d9e 100644 --- a/src/main/java/me/Danker/utils/Utils.java +++ b/src/main/java/me/Danker/utils/Utils.java @@ -22,7 +22,9 @@ import net.minecraft.scoreboard.ScoreObjective; import net.minecraft.util.*; import org.lwjgl.opengl.GL11; +import java.awt.*; import java.util.*; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -53,6 +55,7 @@ public class Utils { put('D', 500); put('M', 1000); }}; + public static String TITLE_SOUND; public static int getItems(String item) { Minecraft mc = Minecraft.getMinecraft(); @@ -100,7 +103,7 @@ public class Utils { } public static void createTitle(String text, int seconds) { - Minecraft.getMinecraft().thePlayer.playSound("random.orb", 1, (float) 0.5); + Minecraft.getMinecraft().thePlayer.playSound(TITLE_SOUND, 1, (float) 0.5); DankersSkyblockMod.titleTimer = seconds * 20; DankersSkyblockMod.showTitle = true; DankersSkyblockMod.titleText = text; @@ -506,6 +509,20 @@ public class Utils { GL11.glTranslated(0, 0, 1); Gui.drawRect(x, y, x + 16, y + 16, colour); GL11.glTranslated(0, 0, -1); + + public static void desktopNotification(String name, String title, String text, TrayIcon.MessageType messageType) { + try { + final SystemTray tray = SystemTray.getSystemTray(); + final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); + final TrayIcon trayIcon = new TrayIcon(image, name); + trayIcon.setImageAutoSize(true); + trayIcon.setToolTip(name); + tray.add(trayIcon); + trayIcon.displayMessage(title, text, messageType); + tray.remove(trayIcon); + } catch (Exception ex) { + ex.printStackTrace(); + } } public enum DungeonFloor { |