diff --git a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java index af559e0f2b..fc509867ef 100644 --- a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java +++ b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java @@ -47,6 +47,8 @@ public enum VarPlayer NMZ_REWARD_POINTS(1060), + SLAYER_TARGETS_LEFT(261), + /** * 0 : not started * greater than 0 : in progress diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 6d375102c6..26e03fe19d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -49,6 +49,7 @@ import net.runelite.api.ItemID; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; import static net.runelite.api.Skill.SLAYER; +import net.runelite.api.VarPlayer; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ExperienceChanged; @@ -56,6 +57,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; +import net.runelite.api.events.VarbitChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; @@ -257,6 +259,17 @@ public class SlayerPlugin extends Plugin highlightedTargets.remove(npc); } + @Subscribe + public void onVarbitChanged(VarbitChanged event) + { + int slayerTargetsLeft = client.getVar(VarPlayer.SLAYER_TARGETS_LEFT); + if (slayerTargetsLeft > 0 && taskName != null) + { + setTask(taskName, slayerTargetsLeft); + } + } + + @Subscribe public void onGameTick(GameTick tick) {