From 3caf182b0bda87a27747efb01b8b18c9e0f44b5b Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 23 Apr 2018 19:38:09 -0400 Subject: [PATCH] npc mixin: transform npc in getName/getCombatLevel/getId --- .../npchighlight/NpcClickboxOverlay.java | 10 +---- .../npchighlight/NpcIndicatorsPlugin.java | 37 ++----------------- .../client/plugins/slayer/SlayerPlugin.java | 2 +- .../java/net/runelite/mixins/RSNPCMixin.java | 12 ++++++ 4 files changed, 19 insertions(+), 42 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcClickboxOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcClickboxOverlay.java index 06debec602..339b74f797 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcClickboxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcClickboxOverlay.java @@ -34,7 +34,6 @@ import java.util.Map; import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.NPC; -import net.runelite.api.NPCComposition; import net.runelite.api.Point; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; @@ -68,13 +67,8 @@ public class NpcClickboxOverlay extends Overlay for (NPC npc : plugin.getTaggedNpcs()) { - NPCComposition composition = plugin.getComposition(npc); - - if (composition == null || composition.getName() == null) - continue; - - String name = composition.getName().replace('\u00A0', ' '); - renderNpcOverlay(graphics, npc, name, config.getTagColor()); + String npcName = npc.getName(); + renderNpcOverlay(graphics, npc, npcName, config.getTagColor()); } return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index f779f50f81..68068cfc3e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -41,7 +41,6 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.Client; import net.runelite.api.NPC; -import net.runelite.api.NPCComposition; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.MenuOptionClicked; @@ -149,12 +148,8 @@ public class NpcIndicatorsPlugin extends Plugin } for (NPC npc : client.getNpcs()) { - if (npcTags.contains(npc.getIndex())) + if (npcTags.contains(npc.getIndex()) && npc.getName() != null) { - NPCComposition composition = getComposition(npc); - if (composition == null || composition.getName() == null) - continue; - taggedNpcs.add(npc); } } @@ -177,17 +172,13 @@ public class NpcIndicatorsPlugin extends Plugin for (NPC npc : client.getNpcs()) { - NPCComposition composition = getComposition(npc); - - if (npc == null || composition == null || composition.getName() == null) - continue; + String npcName = npc.getName(); for (String highlight : highlightedNpcs) { - String name = composition.getName().replace('\u00A0', ' '); - if (WildcardMatcher.matches(highlight, name)) + if (WildcardMatcher.matches(highlight, npcName)) { - npcMap.put(npc, name); + npcMap.put(npc, npcName); } } } @@ -195,26 +186,6 @@ public class NpcIndicatorsPlugin extends Plugin return npcMap; } - /** - * Get npc composition, account for imposters - * - * @param npc - * @return - */ - protected NPCComposition getComposition(NPC npc) - { - if (npc == null) - return null; - - NPCComposition composition = npc.getComposition(); - if (composition != null && composition.getConfigs() != null) - { - composition = composition.transform(); - } - - return composition; - } - void updateNpcMenuOptions(boolean pressed) { if (!config.isTagEnabled()) 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 99f5a82c8d..1e0f88d00d 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 @@ -438,7 +438,7 @@ public class SlayerPlugin extends Plugin if (composition == null || composition.getName() == null) continue; - String name = composition.getName().replace('\u00A0', ' '); + String name = npc.getName(); for (String highlight : highlightedNpcs) { if (name.toLowerCase().contains(highlight.toLowerCase()) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java index 649d4ef6dc..da6eeecef2 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java @@ -48,6 +48,10 @@ public abstract class RSNPCMixin implements RSNPC public int getId() { RSNPCComposition composition = getComposition(); + if (composition != null && composition.getConfigs() != null) + { + composition = composition.transform(); + } return composition == null ? -1 : composition.getId(); } @@ -56,6 +60,10 @@ public abstract class RSNPCMixin implements RSNPC public String getName() { RSNPCComposition composition = getComposition(); + if (composition != null && composition.getConfigs() != null) + { + composition = composition.transform(); + } return composition == null ? null : composition.getName().replace('\u00A0', ' '); } @@ -64,6 +72,10 @@ public abstract class RSNPCMixin implements RSNPC public int getCombatLevel() { RSNPCComposition composition = getComposition(); + if (composition != null && composition.getConfigs() != null) + { + composition = composition.transform(); + } return composition == null ? -1 : composition.getCombatLevel(); }