Skip to content

Commit

Permalink
fix: get boss type via active quest instead of last killed boss #15
Browse files Browse the repository at this point in the history
  • Loading branch information
Fix3dll committed Nov 30, 2023
1 parent 50cfe37 commit f13ab1b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -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
);
}
}
}
21 changes: 10 additions & 11 deletions src/main/java/codes/biscuit/skyblockaddons/utils/EnumUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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()) {
Expand Down

0 comments on commit f13ab1b

Please sign in to comment.