From 0ca0f728e1f13839f758b0ff6f9309b33869b1ee Mon Sep 17 00:00:00 2001 From: James <38226001+james-munson@users.noreply.github.com> Date: Sun, 28 Apr 2019 12:49:21 -0700 Subject: [PATCH] Npc indicators highlight name (#141) * Add config option to highlight NPC names in menu * Simplify color string logic --- .../npchighlight/NpcIndicatorsConfig.java | 11 ++++++ .../npchighlight/NpcIndicatorsPlugin.java | 34 ++++++++++++------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java index f5b7ac6757..1ef10c50d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java @@ -89,6 +89,17 @@ public interface NpcIndicatorsConfig extends Config @ConfigItem( position = 5, + keyName = "highlightMenuNames", + name = "Highlight menu names", + description = "Highlight NPC names in right click menu" + ) + default boolean highlightMenuNames() + { + return false; + } + + @ConfigItem( + position = 6, keyName = "showRespawnTimer", name = "Show respawn timer", description = "Show respawn timer of tagged NPCs") 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 7e84798d2a..c72855064d 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 @@ -66,6 +66,7 @@ import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; +import net.runelite.client.util.ColorUtil; import net.runelite.client.util.Text; import net.runelite.client.util.WildcardMatcher; @@ -248,20 +249,27 @@ public class NpcIndicatorsPlugin extends Plugin @Subscribe public void onMenuEntryAdded(MenuEntryAdded event) { - if (!hotKeyPressed || event.getType() != MenuAction.EXAMINE_NPC.getId()) - { - return; - } - MenuEntry[] menuEntries = client.getMenuEntries(); - menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1); - MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry(); - menuEntry.setOption(TAG); - menuEntry.setTarget(event.getTarget()); - menuEntry.setParam0(event.getActionParam0()); - menuEntry.setParam1(event.getActionParam1()); - menuEntry.setIdentifier(event.getIdentifier()); - menuEntry.setType(MenuAction.RUNELITE.getId()); + String target = event.getTarget(); + if (config.highlightMenuNames() && highlightedNpcs.stream().anyMatch(npc -> npc.getIndex() == event.getIdentifier())) + { + MenuEntry menuEntry = menuEntries[menuEntries.length - 1]; + // Strip out existing color tag + target.substring(target.indexOf('>') + 1); + target = ColorUtil.prependColorTag(target, config.getHighlightColor()); + menuEntry.setTarget(target); + } + if (hotKeyPressed && event.getType() == MenuAction.EXAMINE_NPC.getId()) + { + menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1); + MenuEntry tagEntry = menuEntries[menuEntries.length - 1] = new MenuEntry(); + tagEntry.setOption(TAG); + tagEntry.setTarget(target); + tagEntry.setParam0(event.getActionParam0()); + tagEntry.setParam1(event.getActionParam1()); + tagEntry.setIdentifier(event.getIdentifier()); + tagEntry.setType(MenuAction.RUNELITE.getId()); + } client.setMenuEntries(menuEntries); }