diff --git a/src/main/java/codes/biscuit/skyblockaddons/features/slayertracker/SlayerTracker.java b/src/main/java/codes/biscuit/skyblockaddons/features/slayertracker/SlayerTracker.java index 731d0f296..d21c940ba 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/features/slayertracker/SlayerTracker.java +++ b/src/main/java/codes/biscuit/skyblockaddons/features/slayertracker/SlayerTracker.java @@ -3,6 +3,7 @@ import codes.biscuit.skyblockaddons.SkyblockAddons; import codes.biscuit.skyblockaddons.core.Feature; import codes.biscuit.skyblockaddons.utils.DevUtils; +import codes.biscuit.skyblockaddons.utils.EnumUtils; import codes.biscuit.skyblockaddons.utils.ItemUtils; import codes.biscuit.skyblockaddons.utils.skyblockdata.Rune; import lombok.Getter; @@ -129,10 +130,10 @@ public void setKillCount(SlayerBoss slayerBoss, int kills) { } // TODO dont count dropped items by player again - public void addToTrackerData(NBTTagCompound ea, int amount) { + public void addToTrackerData(NBTTagCompound ea, int amount, EnumUtils.SlayerQuest activeQuest) { SlayerTrackerData slayerTrackerData = main.getPersistentValuesManager().getPersistentValues().getSlayerTracker(); - for (SlayerDrop drop : slayerTrackerData.getLastKilledBoss().getDrops()) { + for (SlayerDrop drop : activeQuest.getBoss().getDrops()) { if (!drop.getSkyblockID().equals(ItemUtils.getSkyblockItemID(ea))) continue; // If this is a rune and it doesn't match, continue diff --git a/src/main/java/codes/biscuit/skyblockaddons/listeners/NetworkListener.java b/src/main/java/codes/biscuit/skyblockaddons/listeners/NetworkListener.java index f96a4e7e4..89bb991c4 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/listeners/NetworkListener.java +++ b/src/main/java/codes/biscuit/skyblockaddons/listeners/NetworkListener.java @@ -9,6 +9,7 @@ import codes.biscuit.skyblockaddons.handlers.PacketHandler; import codes.biscuit.skyblockaddons.misc.scheduler.ScheduledTask; import codes.biscuit.skyblockaddons.misc.scheduler.SkyblockRunnable; +import codes.biscuit.skyblockaddons.utils.EnumUtils; import codes.biscuit.skyblockaddons.utils.ItemUtils; import codes.biscuit.skyblockaddons.utils.LocationUtils; import codes.biscuit.skyblockaddons.utils.data.DataUtils; @@ -92,8 +93,9 @@ public void onPacketRecieved(PacketEvent.ReceiveEvent e) { // Java adoption of SkyHanni profit tracker if (packet instanceof S0DPacketCollectItem) { if (!SlayerTracker.getInstance().isTrackerEnabled()) return; - if (main.getUtils().getSlayerQuest() == null) return; - if (!LocationUtils.isSlayerLocation(main.getUtils().getSlayerQuest(), main.getUtils().getLocation())) return; + + EnumUtils.SlayerQuest activeQuest = main.getUtils().getSlayerQuest(); + if (activeQuest == null || !LocationUtils.isSlayerLocation(activeQuest, main.getUtils().getLocation())) return; int entityID = ((S0DPacketCollectItem) packet).getCollectedItemEntityID(); Entity entity = Minecraft.getMinecraft().theWorld.getEntityByID(entityID); @@ -105,7 +107,11 @@ public void onPacketRecieved(PacketEvent.ReceiveEvent e) { collectedCache.put(entityID, 0); ItemStack itemStack = entityItem.getEntityItem(); - SlayerTracker.getInstance().addToTrackerData(ItemUtils.getExtraAttributes(itemStack), itemStack.stackSize); + SlayerTracker.getInstance().addToTrackerData( + ItemUtils.getExtraAttributes(itemStack) + , itemStack.stackSize + , activeQuest + ); } } } \ No newline at end of file diff --git a/src/main/java/codes/biscuit/skyblockaddons/utils/EnumUtils.java b/src/main/java/codes/biscuit/skyblockaddons/utils/EnumUtils.java index 4e38f219d..d66a49cc8 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/utils/EnumUtils.java +++ b/src/main/java/codes/biscuit/skyblockaddons/utils/EnumUtils.java @@ -2,6 +2,8 @@ import codes.biscuit.skyblockaddons.core.Feature; import codes.biscuit.skyblockaddons.core.Translations; +import codes.biscuit.skyblockaddons.features.slayertracker.SlayerBoss; +import lombok.AllArgsConstructor; import lombok.Getter; import net.minecraft.util.ResourceLocation; @@ -413,20 +415,17 @@ public enum DiscordStatusEntry { } //TODO Fix for Hypixel localization - @Getter + @Getter @AllArgsConstructor public enum SlayerQuest { - REVENANT_HORROR("Revenant Horror"), - TARANTULA_BROODFATHER("Tarantula Broodfather"), - SVEN_PACKMASTER("Sven Packmaster"), - VOIDGLOOM_SERAPH("Voidgloom Seraph"), - INFERNO_DEMONLORD("Inferno Demonlord"), - RIFTSTALKER_BLOODFIEND("Riftstalker Bloodfiend"); + REVENANT_HORROR("Revenant Horror", SlayerBoss.REVENANT), + TARANTULA_BROODFATHER("Tarantula Broodfather", SlayerBoss.TARANTULA), + SVEN_PACKMASTER("Sven Packmaster", SlayerBoss.SVEN), + VOIDGLOOM_SERAPH("Voidgloom Seraph", SlayerBoss.VOIDGLOOM), + INFERNO_DEMONLORD("Inferno Demonlord", SlayerBoss.INFERNO), + RIFTSTALKER_BLOODFIEND("Riftstalker Bloodfiend", SlayerBoss.RIFTSTALKER); private final String scoreboardName; - - SlayerQuest(String scoreboardName) { - this.scoreboardName = scoreboardName; - } + private final SlayerBoss boss; public static SlayerQuest fromName(String scoreboardName) { for (SlayerQuest slayerQuest : SlayerQuest.values()) {