Do not swap entries on NPCs with hint arrows (#6437)

before: https://i.imgur.com/kvXHHWd.png
after: https://i.imgur.com/anFnVkt.png
This commit is contained in:
15987632
2018-11-14 08:40:27 -05:00
committed by Tomas Slusny
parent 5be24539d1
commit 8ca777398f

View File

@@ -25,8 +25,10 @@
*/ */
package net.runelite.client.plugins.menuentryswapper; package net.runelite.client.plugins.menuentryswapper;
import com.google.common.collect.ImmutableSet;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -35,6 +37,7 @@ import net.runelite.api.GameState;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.NPC;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.MenuEntryAdded; 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.events.WidgetMenuOptionClicked;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.game.ItemVariationMapping;
import net.runelite.client.input.KeyManager; import net.runelite.client.input.KeyManager;
import net.runelite.client.menus.MenuManager; 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, private static final WidgetMenuOption RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB); MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB);
private static final Set<MenuAction> 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 @Inject
private Client client; private Client client;
@@ -100,9 +110,6 @@ public class MenuEntrySwapperPlugin extends Plugin
@Inject @Inject
private ConfigManager configManager; private ConfigManager configManager;
@Inject
private ItemManager itemManager;
@Inject @Inject
private KeyManager keyManager; private KeyManager keyManager;
@@ -328,9 +335,17 @@ public class MenuEntrySwapperPlugin extends Plugin
return; return;
} }
int itemId = event.getIdentifier(); final int eventId = event.getIdentifier();
String option = Text.removeTags(event.getOption()).toLowerCase(); final String option = Text.removeTags(event.getOption()).toLowerCase();
String target = Text.removeTags(event.getTarget()).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")) if (option.equals("talk-to"))
{ {
@@ -493,7 +508,7 @@ public class MenuEntrySwapperPlugin extends Plugin
} }
else if (config.shiftClickCustomization() && shiftModifier && !option.equals("use")) else if (config.shiftClickCustomization() && shiftModifier && !option.equals("use"))
{ {
Integer customOption = getSwapConfig(itemId); Integer customOption = getSwapConfig(eventId);
if (customOption != null && customOption == -1) if (customOption != null && customOption == -1)
{ {