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 938582ea7f..5b915d4753 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 @@ -107,7 +107,7 @@ import net.runelite.client.util.HotkeyListener; import static net.runelite.client.util.MenuUtil.swap; import net.runelite.client.util.MiscUtils; import net.runelite.api.util.Text; -import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; @PluginDescriptor( name = "Menu Entry Swapper", @@ -159,7 +159,6 @@ public class MenuEntrySwapperPlugin extends Plugin */ @Inject private ConfigManager configManager; - private MenuEntry[] entries; private boolean buildingMode; private boolean inTobRaid = false; private boolean inCoxRaid = false; @@ -522,33 +521,34 @@ public class MenuEntrySwapperPlugin extends Plugin } final int eventId = event.getIdentifier(); - final String option = Text.standardize(event.getOption()); - final String target = Text.standardize(event.getTarget()); + final String option = event.getOption().toLowerCase(); + final String target = event.getMenuEntry().getStandardizedTarget(); final NPC hintArrowNpc = client.getHintArrowNpc(); - entries = client.getMenuEntries(); if (this.getRemoveObjects && !this.getRemovedObjects.equals("")) { + // TODO: CACHE THIS for (String removed : Text.fromCSV(this.getRemovedObjects)) { removed = Text.standardize(removed); - if (target.contains("(") && target.split(" \\(")[0].equals(removed)) + if (target.equals(removed)) { - delete(event.getIdentifier()); + client.setMenuOptionCount(client.getMenuOptionCount() - 1); + return; } else if (target.contains("->")) { String trimmed = target.split("->")[1].trim(); if (trimmed.length() >= removed.length() && trimmed.substring(0, removed.length()).equalsIgnoreCase(removed)) { - delete(event.getIdentifier()); - break; + client.setMenuOptionCount(client.getMenuOptionCount() - 1); + return; } } - else if (target.length() >= removed.length() && target.substring(0, removed.length()).equalsIgnoreCase(removed)) + else if (target.length() >= removed.length() && StringUtils.startsWithIgnoreCase(target, removed)) { - delete(event.getIdentifier()); - break; + client.setMenuOptionCount(client.getMenuOptionCount() - 1); + return; } } } @@ -1416,19 +1416,6 @@ public class MenuEntrySwapperPlugin extends Plugin } } - private void delete(int target) - { - for (int i = entries.length - 1; i >= 0; i--) - { - if (entries[i].getIdentifier() == target) - { - entries = ArrayUtils.remove(entries, i); - i--; - } - } - client.setMenuEntries(entries); - } - private boolean isPuroPuro() { Player player = client.getLocalPlayer();