Merge pull request #3928 from Kamielvf/npcindicators-tag-fix

Fix NPC indicators to not consume tags clicks on non-NPCs
This commit is contained in:
Adam
2018-06-21 20:17:06 -04:00
committed by GitHub

View File

@@ -26,6 +26,7 @@
package net.runelite.client.plugins.npchighlight; package net.runelite.client.plugins.npchighlight;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.time.Instant; import java.time.Instant;
@@ -44,6 +45,7 @@ import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.GraphicID; import net.runelite.api.GraphicID;
import net.runelite.api.GraphicsObject; import net.runelite.api.GraphicsObject;
import net.runelite.api.MenuAction;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
@@ -71,6 +73,9 @@ public class NpcIndicatorsPlugin extends Plugin
// Option added to NPC menu // Option added to NPC menu
private static final String TAG = "Tag"; private static final String TAG = "Tag";
private static final List<MenuAction> NPC_MENU_ACTIONS = ImmutableList.of(MenuAction.NPC_FIRST_OPTION, MenuAction.NPC_SECOND_OPTION,
MenuAction.NPC_THIRD_OPTION, MenuAction.NPC_FOURTH_OPTION, MenuAction.NPC_FIFTH_OPTION);
// Regex for splitting the hidden items in the config. // Regex for splitting the hidden items in the config.
private static final Splitter COMMA_SPLITTER = Splitter.on(Pattern.compile("\\s*,\\s*")).trimResults(); private static final Splitter COMMA_SPLITTER = Splitter.on(Pattern.compile("\\s*,\\s*")).trimResults();
@@ -238,12 +243,15 @@ public class NpcIndicatorsPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onMenuObjectClicked(MenuOptionClicked click) public void onMenuOptionClicked(MenuOptionClicked click)
{ {
if (click.getMenuOption().equals(TAG)) if (!config.isTagEnabled())
{ {
click.consume(); return;
}
if (click.getMenuOption().equals(TAG) && NPC_MENU_ACTIONS.contains(click.getMenuAction()))
{
final int id = click.getId(); final int id = click.getId();
final boolean removed = npcTags.remove(id); final boolean removed = npcTags.remove(id);
final NPC[] cachedNPCs = client.getCachedNPCs(); final NPC[] cachedNPCs = client.getCachedNPCs();
@@ -262,6 +270,8 @@ public class NpcIndicatorsPlugin extends Plugin
npcTags.add(id); npcTags.add(id);
highlightedNpcs.add(npc); highlightedNpcs.add(npc);
} }
click.consume();
} }
} }
} }