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:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user