Npc indicators highlight name (#141)
* Add config option to highlight NPC names in menu * Simplify color string logic
This commit is contained in:
@@ -89,6 +89,17 @@ public interface NpcIndicatorsConfig extends Config
|
|||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
position = 5,
|
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",
|
keyName = "showRespawnTimer",
|
||||||
name = "Show respawn timer",
|
name = "Show respawn timer",
|
||||||
description = "Show respawn timer of tagged NPCs")
|
description = "Show respawn timer of tagged NPCs")
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ import net.runelite.client.input.KeyManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.client.util.Text;
|
||||||
import net.runelite.client.util.WildcardMatcher;
|
import net.runelite.client.util.WildcardMatcher;
|
||||||
|
|
||||||
@@ -248,20 +249,27 @@ public class NpcIndicatorsPlugin extends Plugin
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||||
{
|
{
|
||||||
if (!hotKeyPressed || event.getType() != MenuAction.EXAMINE_NPC.getId())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||||
menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1);
|
String target = event.getTarget();
|
||||||
MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry();
|
if (config.highlightMenuNames() && highlightedNpcs.stream().anyMatch(npc -> npc.getIndex() == event.getIdentifier()))
|
||||||
menuEntry.setOption(TAG);
|
{
|
||||||
menuEntry.setTarget(event.getTarget());
|
MenuEntry menuEntry = menuEntries[menuEntries.length - 1];
|
||||||
menuEntry.setParam0(event.getActionParam0());
|
// Strip out existing color tag
|
||||||
menuEntry.setParam1(event.getActionParam1());
|
target.substring(target.indexOf('>') + 1);
|
||||||
menuEntry.setIdentifier(event.getIdentifier());
|
target = ColorUtil.prependColorTag(target, config.getHighlightColor());
|
||||||
menuEntry.setType(MenuAction.RUNELITE.getId());
|
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);
|
client.setMenuEntries(menuEntries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user