From 8ca777398ffa9796b1cd725e595e876bc68b48d0 Mon Sep 17 00:00:00 2001 From: 15987632 Date: Wed, 14 Nov 2018 08:40:27 -0500 Subject: [PATCH] Do not swap entries on NPCs with hint arrows (#6437) before: https://i.imgur.com/kvXHHWd.png after: https://i.imgur.com/anFnVkt.png --- .../MenuEntrySwapperPlugin.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 1130ae851b..f9a66fceaa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -25,8 +25,10 @@ */ package net.runelite.client.plugins.menuentryswapper; +import com.google.common.collect.ImmutableSet; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; +import java.util.Set; import javax.inject.Inject; import lombok.Getter; import lombok.Setter; @@ -35,6 +37,7 @@ import net.runelite.api.GameState; import net.runelite.api.ItemComposition; import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; +import net.runelite.api.NPC; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.MenuEntryAdded; @@ -44,7 +47,6 @@ import net.runelite.api.events.PostItemComposition; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.input.KeyManager; import net.runelite.client.menus.MenuManager; @@ -88,6 +90,14 @@ public class MenuEntrySwapperPlugin extends Plugin private static final WidgetMenuOption RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE, MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB); + private static final Set NPC_MENU_TYPES = ImmutableSet.of( + MenuAction.NPC_FIRST_OPTION, + MenuAction.NPC_SECOND_OPTION, + MenuAction.NPC_THIRD_OPTION, + MenuAction.NPC_FOURTH_OPTION, + MenuAction.NPC_FIFTH_OPTION, + MenuAction.EXAMINE_NPC); + @Inject private Client client; @@ -100,9 +110,6 @@ public class MenuEntrySwapperPlugin extends Plugin @Inject private ConfigManager configManager; - @Inject - private ItemManager itemManager; - @Inject private KeyManager keyManager; @@ -328,9 +335,17 @@ public class MenuEntrySwapperPlugin extends Plugin return; } - int itemId = event.getIdentifier(); - String option = Text.removeTags(event.getOption()).toLowerCase(); - String target = Text.removeTags(event.getTarget()).toLowerCase(); + final int eventId = event.getIdentifier(); + final String option = Text.removeTags(event.getOption()).toLowerCase(); + final String target = Text.removeTags(event.getTarget()).toLowerCase(); + final NPC hintArrowNpc = client.getHintArrowNpc(); + + if (hintArrowNpc != null + && hintArrowNpc.getIndex() == eventId + && NPC_MENU_TYPES.contains(MenuAction.of(event.getType()))) + { + return; + } if (option.equals("talk-to")) { @@ -493,7 +508,7 @@ public class MenuEntrySwapperPlugin extends Plugin } else if (config.shiftClickCustomization() && shiftModifier && !option.equals("use")) { - Integer customOption = getSwapConfig(itemId); + Integer customOption = getSwapConfig(eventId); if (customOption != null && customOption == -1) {