From c669f6462bf9a9bca82befdeb6bc58915b9ed6c4 Mon Sep 17 00:00:00 2001 From: LlemonDuck Date: Fri, 10 Jun 2022 22:51:12 -0400 Subject: [PATCH] npcaggro: show for current slayer task option Co-authored-by: OSRS-Athan <67913155+osrs-athan@users.noreply.github.com> --- .../npcunaggroarea/NpcAggroAreaConfig.java | 11 +++++++++++ .../npcunaggroarea/NpcAggroAreaPlugin.java | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaConfig.java index 1532d075c8..7d895f27bc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaConfig.java @@ -128,4 +128,15 @@ public interface NpcAggroAreaConfig extends Config { return false; } + + @ConfigItem( + keyName = "showOnSlayerTask", + name = "Show on slayer task", + description = "Enable for current slayer task NPCs", + position = 9 + ) + default boolean showOnSlayerTask() + { + return false; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java index 359d306e7b..dc2aadd5be 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java @@ -57,7 +57,10 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.slayer.SlayerPlugin; +import net.runelite.client.plugins.slayer.SlayerPluginService; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.WildcardMatcher; @@ -68,6 +71,7 @@ import net.runelite.client.util.WildcardMatcher; tags = {"highlight", "lines", "unaggro", "aggro", "aggressive", "npcs", "area", "slayer"}, enabledByDefault = false ) +@PluginDependency(SlayerPlugin.class) public class NpcAggroAreaPlugin extends Plugin { /* @@ -114,6 +118,9 @@ public class NpcAggroAreaPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private SlayerPluginService slayerPluginService; + @Getter private final WorldPoint[] safeCenters = new WorldPoint[2]; @@ -270,6 +277,15 @@ public class NpcAggroAreaPlugin extends Plugin return false; } + if (config.showOnSlayerTask()) + { + List targets = slayerPluginService.getTargets(); + if (targets.contains(npc)) + { + return true; + } + } + for (String pattern : npcNamePatterns) { if (WildcardMatcher.matches(pattern, npcName)) @@ -381,6 +397,7 @@ public class NpcAggroAreaPlugin extends Plugin switch (key) { case "npcUnaggroAlwaysActive": + case "showOnSlayerTask": recheckActive(); break; case "npcUnaggroCollisionDetection":