aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/features/loot
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2022-04-20 22:52:26 -0400
committerbowser0000 <bowser0000@gmail.com>2022-04-20 22:52:26 -0400
commitf214832fb6f315d59d876267f71e9e9f0a6082fd (patch)
tree7e91ac59569230e587cb5060f42356241a07ea97 /src/main/java/me/Danker/features/loot
parent9b65362e8e85a8fc783fdb2a1c94f6df51f9450f (diff)
downloadSkyblockMod-f214832fb6f315d59d876267f71e9e9f0a6082fd.tar.gz
SkyblockMod-f214832fb6f315d59d876267f71e9e9f0a6082fd.tar.bz2
SkyblockMod-f214832fb6f315d59d876267f71e9e9f0a6082fd.zip
Add blaze slayer support + tracker
Diffstat (limited to 'src/main/java/me/Danker/features/loot')
-rw-r--r--src/main/java/me/Danker/features/loot/BlazeTracker.java184
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java122
-rw-r--r--src/main/java/me/Danker/features/loot/LootTracker.java6
3 files changed, 311 insertions, 1 deletions
diff --git a/src/main/java/me/Danker/features/loot/BlazeTracker.java b/src/main/java/me/Danker/features/loot/BlazeTracker.java
new file mode 100644
index 0000000..896f65f
--- /dev/null
+++ b/src/main/java/me/Danker/features/loot/BlazeTracker.java
@@ -0,0 +1,184 @@
+package me.Danker.features.loot;
+
+import me.Danker.commands.ToggleCommand;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.Utils;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StringUtils;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+
+public class BlazeTracker {
+
+ public static int demonlords;
+ public static int derelictAshes;
+ public static int lavatearRunes;
+ public static int splashPotions;
+ public static int magmaArrows;
+ public static int manaDisintegrators;
+ public static int scorchedBooks;
+ public static int kelvinInverters;
+ public static int blazeRodDistillates;
+ public static int glowstoneDistillates;
+ public static int magmaCreamDistillates;
+ public static int netherWartDistillates;
+ public static int gabagoolDistillates;
+ public static int scorchedPowerCrystals;
+ public static int fireAspectBooks;
+ public static int fieryBurstRunes;
+ public static int opalGems;
+ public static int archfiendDice;
+ public static int duplexBooks;
+ public static int highClassArchfiendDice;
+ public static int engineeringPlans;
+ public static int subzeroInverters;
+ public static double time;
+ public static int bosses;
+
+ public static int demonlordsSession = 0;
+ public static int derelictAshesSession = 0;
+ public static int lavatearRunesSession = 0;
+ public static int splashPotionsSession = 0;
+ public static int magmaArrowsSession = 0;
+ public static int manaDisintegratorsSession = 0;
+ public static int scorchedBooksSession = 0;
+ public static int kelvinInvertersSession = 0;
+ public static int blazeRodDistillatesSession = 0;
+ public static int glowstoneDistillatesSession = 0;
+ public static int magmaCreamDistillatesSession = 0;
+ public static int netherWartDistillatesSession = 0;
+ public static int gabagoolDistillatesSession = 0;
+ public static int scorchedPowerCrystalsSession = 0;
+ public static int fireAspectBooksSession = 0;
+ public static int fieryBurstRunesSession = 0;
+ public static int opalGemsSession = 0;
+ public static int archfiendDiceSession = 0;
+ public static int duplexBooksSession = 0;
+ public static int highClassArchfiendDiceSession = 0;
+ public static int engineeringPlansSession = 0;
+ public static int subzeroInvertersSession = 0;
+ public static double timeSession = 0;
+ public static int bossesSession = 0;
+
+ @SubscribeEvent
+ public void onChat(ClientChatReceivedEvent event) {
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+
+ if (!Utils.inSkyblock) return;
+ if (event.type == 2) return;
+ if (message.contains(":")) return;
+
+ boolean rng = false;
+
+ if (message.contains(" Blaze Slayer LVL ")) {
+ demonlords++;
+ demonlordsSession++;
+ if (bosses != -1) {
+ bosses++;
+ }
+ if (bossesSession != -1) {
+ bossesSession++;
+ }
+ ConfigHandler.writeIntConfig("blaze", "demonlords", demonlords);
+ ConfigHandler.writeIntConfig("blaze", "bossRNG", bosses);
+ } else if (message.contains("VERY RARE DROP! (") && message.contains(" Lavatears Rune I)")) {
+ lavatearRunes++;
+ lavatearRunesSession++;
+ ConfigHandler.writeIntConfig("blaze", "lavatearRunes", lavatearRunes);
+ } else if (message.contains("VERY RARE DROP! (Wisp's Ice-Flavored Water I Splash Potion)")) {
+ splashPotions++;
+ splashPotionsSession++;
+ ConfigHandler.writeIntConfig("blaze", "splashPotions", splashPotions);
+ } else if (message.contains("RARE DROP! (Bundle of Magma Arrows)")) {
+ magmaArrows++;
+ magmaArrowsSession++;
+ ConfigHandler.writeIntConfig("blaze", "magmaArrows", magmaArrows);
+ } else if (message.contains("VERY RARE DROP! (Mana Disintegrator)")) {
+ manaDisintegrators++;
+ manaDisintegratorsSession++;
+ ConfigHandler.writeIntConfig("blaze", "manaDisintegrators", manaDisintegrators);
+ } else if (message.contains("VERY RARE DROP! (Scorched Books)")) {
+ scorchedBooks++;
+ scorchedBooksSession++;
+ ConfigHandler.writeIntConfig("blaze", "scorchedBooks", scorchedBooks);
+ } else if (message.contains("VERY RARE DROP! (Kelvin Inverter)")) {
+ kelvinInverters++;
+ kelvinInvertersSession++;
+ ConfigHandler.writeIntConfig("blaze", "kelvinInverters", kelvinInverters);
+ } else if (message.contains("VERY RARE DROP! (Blaze Rod Distillate)")) {
+ blazeRodDistillates++;
+ blazeRodDistillatesSession++;
+ ConfigHandler.writeIntConfig("blaze", "blazeRodDistillates", blazeRodDistillates);
+ } else if (message.contains("VERY RARE DROP! (Glowstone Distillate)")) {
+ glowstoneDistillates++;
+ glowstoneDistillatesSession++;
+ ConfigHandler.writeIntConfig("blaze", "glowstoneDistillates", glowstoneDistillates);
+ } else if (message.contains("VERY RARE DROP! (Magma Cream Distillate)")) {
+ magmaCreamDistillates++;
+ magmaCreamDistillatesSession++;
+ ConfigHandler.writeIntConfig("blaze", "magmaCreamDistillates", magmaCreamDistillates);
+ } else if (message.contains("VERY RARE DROP! (Nether Wart Distillate)")) {
+ netherWartDistillates++;
+ netherWartDistillatesSession++;
+ ConfigHandler.writeIntConfig("blaze", "netherWartDistillates", netherWartDistillates);
+ } else if (message.contains("VERY RARE DROP! (Gabagool Distillate)")) {
+ gabagoolDistillates++;
+ gabagoolDistillatesSession++;
+ ConfigHandler.writeIntConfig("blaze", "gabagoolDistillates", gabagoolDistillates);
+ } else if (message.contains("VERY RARE DROP! (Scorched Power Crystal)")) {
+ scorchedPowerCrystals++;
+ scorchedPowerCrystalsSession++;
+ ConfigHandler.writeIntConfig("blaze", "scorchedPowerCrystals", scorchedPowerCrystals);
+ } else if (message.contains("VERY RARE DROP! (Fire Aspect III)")) {
+ fireAspectBooks++;
+ fireAspectBooksSession++;
+ ConfigHandler.writeIntConfig("blaze", "fireAspectBooks", fireAspectBooks);
+ } else if (message.contains("CRAZY RARE DROP! (") && message.contains(" Fiery Burst Rune I)")) {
+ rng = true;
+ fieryBurstRunes++;
+ fieryBurstRunesSession++;
+ 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++;
+ ConfigHandler.writeIntConfig("blaze", "opalGems", opalGems);
+ } else if (message.contains("VERY RARE DROP! (Archfiend Dice)")) {
+ archfiendDice++;
+ archfiendDiceSession++;
+ ConfigHandler.writeIntConfig("blaze", "archfiendDice", archfiendDice);
+ } else if (message.contains("VERY RARE DROP! (Duplex I)")) {
+ duplexBooks++;
+ duplexBooksSession++;
+ ConfigHandler.writeIntConfig("blaze", "duplexBooks", duplexBooks);
+ } else if (message.contains("CRAZY RARE DROP! (High Class Archfiend Dice)")) {
+ rng = true;
+ highClassArchfiendDice++;
+ highClassArchfiendDiceSession++;
+ ConfigHandler.writeIntConfig("blaze", "highClassArchfiendDice", highClassArchfiendDice);
+ if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "HIGH CLASS ARCHFIEND DICE!", 5);
+ } else if (message.contains("CRAZY RARE DROP! (Wilson's Engineering Plans)")) {
+ rng = true;
+ engineeringPlans++;
+ engineeringPlansSession++;
+ ConfigHandler.writeIntConfig("blaze", "engineeringPlans", engineeringPlans);
+ if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "ENGINEERING PLANS!", 5);
+ } else if (message.contains("CRAZY RARE DROP! (Subzero Inverter)")) {
+ rng = true;
+ subzeroInverters++;
+ subzeroInvertersSession++;
+ ConfigHandler.writeIntConfig("blaze", "subzeroInverters", subzeroInverters);
+ if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.GOLD + "SUBZERO INVERTER!", 5);
+ }
+
+ if (rng) {
+ time = System.currentTimeMillis() / 1000;
+ bosses = 0;
+ timeSession = System.currentTimeMillis() / 1000;
+ bossesSession = 0;
+ ConfigHandler.writeDoubleConfig("blaze", "timeRNG", time);
+ ConfigHandler.writeIntConfig("blaze", "bossRNG", 0);
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/features/loot/LootDisplay.java b/src/main/java/me/Danker/features/loot/LootDisplay.java
index aabdbd9..9d3f466 100644
--- a/src/main/java/me/Danker/features/loot/LootDisplay.java
+++ b/src/main/java/me/Danker/features/loot/LootDisplay.java
@@ -416,6 +416,128 @@ public class LootDisplay {
EnumChatFormatting.AQUA + timeBetween + "\n" +
EnumChatFormatting.AQUA + bossesBetween;
break;
+ case "blaze":
+ if (BlazeTracker.time == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = Utils.getTimeBetween(BlazeTracker.time, timeNow);
+ }
+ if (BlazeTracker.bosses == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(BlazeTracker.bosses);
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Demonlords Killed:\n" +
+ EnumChatFormatting.GRAY + "Derelict Ashes:\n" +
+ EnumChatFormatting.RED + "Lavatear Runes:\n" +
+ EnumChatFormatting.AQUA + "Splash Potions:\n" +
+ EnumChatFormatting.DARK_RED + "Magma Arrows:\n" +
+ EnumChatFormatting.DARK_AQUA + "Mana Disintegrators:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Scorched Books:\n" +
+ EnumChatFormatting.WHITE + "Kelvin Inverters:\n" +
+ EnumChatFormatting.BLUE + "Blaze Rod Distillates:\n" +
+ EnumChatFormatting.BLUE + "Glowstone Distillates:\n" +
+ EnumChatFormatting.BLUE + "Magma Cream Distillates:\n" +
+ EnumChatFormatting.BLUE + "Nether Wart Distillates:\n" +
+ EnumChatFormatting.BLUE + "Gabagool Distillates:\n" +
+ EnumChatFormatting.RED + "Scorched Power Crystals:\n" +
+ EnumChatFormatting.RED + "Fire Aspect Books:\n" +
+ EnumChatFormatting.GOLD + "Fiery Burst Runes:\n" +
+ EnumChatFormatting.WHITE + "Opal Gems:\n" +
+ EnumChatFormatting.RED + "Archfiend Dice:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Duplex Books:\n" +
+ EnumChatFormatting.GOLD + "High Class Archfiend Dice:\n" +
+ EnumChatFormatting.GOLD + "Engineering Plans:\n" +
+ EnumChatFormatting.GOLD + "Subzero Inverters:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(BlazeTracker.demonlords) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(BlazeTracker.derelictAshes) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.lavatearRunes) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(BlazeTracker.splashPotions) + "\n" +
+ EnumChatFormatting.DARK_RED + nf.format(BlazeTracker.magmaArrows) + "\n" +
+ EnumChatFormatting.DARK_AQUA + nf.format(BlazeTracker.manaDisintegrators) + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + nf.format(BlazeTracker.scorchedBooks) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(BlazeTracker.kelvinInverters) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.blazeRodDistillates) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.glowstoneDistillates) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.magmaCreamDistillates) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.netherWartDistillates) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.gabagoolDistillates) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.scorchedPowerCrystals) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.fireAspectBooks) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.fieryBurstRunes) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(BlazeTracker.opalGems) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.archfiendDice) + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + nf.format(BlazeTracker.duplexBooks) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.highClassArchfiendDice) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.engineeringPlans) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.subzeroInverters) + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ break;
+ case "blaze_session":
+ if (BlazeTracker.timeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = Utils.getTimeBetween(BlazeTracker.timeSession, timeNow);
+ }
+ if (BlazeTracker.bossesSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(BlazeTracker.bossesSession);
+ }
+
+ dropsText = EnumChatFormatting.GOLD + "Demonlords Killed:\n" +
+ EnumChatFormatting.GRAY + "Derelict Ashes:\n" +
+ EnumChatFormatting.RED + "Lavatear Runes:\n" +
+ EnumChatFormatting.AQUA + "Splash Potions:\n" +
+ EnumChatFormatting.DARK_RED + "Magma Arrows:\n" +
+ EnumChatFormatting.DARK_AQUA + "Mana Disintegrators:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Scorched Books:\n" +
+ EnumChatFormatting.WHITE + "Kelvin Inverters:\n" +
+ EnumChatFormatting.BLUE + "Blaze Rod Distillates:\n" +
+ EnumChatFormatting.BLUE + "Glowstone Distillates:\n" +
+ EnumChatFormatting.BLUE + "Magma Cream Distillates:\n" +
+ EnumChatFormatting.BLUE + "Nether Wart Distillates:\n" +
+ EnumChatFormatting.BLUE + "Gabagool Distillates:\n" +
+ EnumChatFormatting.RED + "Scorched Power Crystals:\n" +
+ EnumChatFormatting.RED + "Fire Aspect Books:\n" +
+ EnumChatFormatting.GOLD + "Fiery Burst Runes:\n" +
+ EnumChatFormatting.WHITE + "Opal Gems:\n" +
+ EnumChatFormatting.RED + "Archfiend Dice:\n" +
+ EnumChatFormatting.LIGHT_PURPLE + "Duplex Books:\n" +
+ EnumChatFormatting.GOLD + "High Class Archfiend Dice:\n" +
+ EnumChatFormatting.GOLD + "Engineering Plans:\n" +
+ EnumChatFormatting.GOLD + "Subzero Inverters:\n" +
+ EnumChatFormatting.AQUA + "Time Since RNG:\n" +
+ EnumChatFormatting.AQUA + "Bosses Since RNG:";
+ countText = EnumChatFormatting.GOLD + nf.format(BlazeTracker.demonlordsSession) + "\n" +
+ EnumChatFormatting.GRAY + nf.format(BlazeTracker.derelictAshesSession) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.lavatearRunesSession) + "\n" +
+ EnumChatFormatting.AQUA + nf.format(BlazeTracker.splashPotionsSession) + "\n" +
+ EnumChatFormatting.DARK_RED + nf.format(BlazeTracker.magmaArrowsSession) + "\n" +
+ EnumChatFormatting.DARK_AQUA + nf.format(BlazeTracker.manaDisintegratorsSession) + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + nf.format(BlazeTracker.scorchedBooksSession) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(BlazeTracker.kelvinInvertersSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.blazeRodDistillatesSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.glowstoneDistillatesSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.magmaCreamDistillatesSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.netherWartDistillatesSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(BlazeTracker.gabagoolDistillatesSession) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.scorchedPowerCrystalsSession) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.fireAspectBooksSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.fieryBurstRunesSession) + "\n" +
+ EnumChatFormatting.WHITE + nf.format(BlazeTracker.opalGemsSession) + "\n" +
+ EnumChatFormatting.RED + nf.format(BlazeTracker.archfiendDiceSession) + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + nf.format(BlazeTracker.duplexBooksSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.highClassArchfiendDiceSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.engineeringPlansSession) + "\n" +
+ EnumChatFormatting.GOLD + nf.format(BlazeTracker.subzeroInvertersSession) + "\n" +
+ EnumChatFormatting.AQUA + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + bossesBetween;
+ break;
case "fishing":
if (FishingTracker.empTime == -1) {
timeBetween = "Never";
diff --git a/src/main/java/me/Danker/features/loot/LootTracker.java b/src/main/java/me/Danker/features/loot/LootTracker.java
index 4e5974c..27f0779 100644
--- a/src/main/java/me/Danker/features/loot/LootTracker.java
+++ b/src/main/java/me/Danker/features/loot/LootTracker.java
@@ -31,23 +31,27 @@ public class LootTracker {
int itemWebs = Utils.getItems("Tarantula Web");
int itemRev = Utils.getItems("Revenant Flesh");
int itemNullSphere = Utils.getItems("Null Sphere");
+ int itemDerelictAshe = Utils.getItems("Derelict Ashe");
// If no items, are detected, allow check again. Should fix items not being found
- if (itemTeeth + itemWebs + itemRev + itemNullSphere > 0) {
+ if (itemTeeth + itemWebs + itemRev + itemNullSphere + itemDerelictAshe > 0) {
itemsChecked = System.currentTimeMillis() / 1000;
WolfTracker.wolfTeeth += itemTeeth;
SpiderTracker.spiderWebs += itemWebs;
ZombieTracker.zombieRevFlesh += itemRev;
EndermanTracker.endermanNullSpheres += itemNullSphere;
+ BlazeTracker.derelictAshes += itemDerelictAshe;
WolfTracker.wolfTeethSession += itemTeeth;
SpiderTracker.spiderWebsSession += itemWebs;
ZombieTracker.zombieRevFleshSession += itemRev;
EndermanTracker.endermanNullSpheresSession += 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("blaze", "derelictAshe", BlazeTracker.derelictAshes);
}
}
}