From 4b00dba6e0f3ed29508c3609b31414b89ee0bc8d Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Wed, 18 Sep 2019 16:39:29 +0200 Subject: [PATCH 1/9] Move mes comparables to seperate package --- .../java/net/runelite/client/menus/ComparableEntries.java | 2 +- .../plugins/menuentryswapper/MenuEntrySwapperPlugin.java | 3 +++ .../{ => comparables}/BankComparableEntry.java | 2 +- .../{ => comparables}/EquipmentComparableEntry.java | 2 +- .../{ => comparables}/InventoryComparableEntry.java | 2 +- .../runelite/client/plugins/runecraft/RunecraftPlugin.java | 4 ++-- 6 files changed, 9 insertions(+), 6 deletions(-) rename runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/{ => comparables}/BankComparableEntry.java (94%) rename runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/{ => comparables}/EquipmentComparableEntry.java (92%) rename runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/{ => comparables}/InventoryComparableEntry.java (94%) diff --git a/runelite-client/src/main/java/net/runelite/client/menus/ComparableEntries.java b/runelite-client/src/main/java/net/runelite/client/menus/ComparableEntries.java index 31409b4c27..3383191584 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/ComparableEntries.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/ComparableEntries.java @@ -1,7 +1,7 @@ package net.runelite.client.menus; import net.runelite.api.Client; -import net.runelite.client.plugins.menuentryswapper.BankComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.BankComparableEntry; public interface ComparableEntries { 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 71565cf263..a80525d9f8 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 @@ -82,6 +82,9 @@ import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginType; +import net.runelite.client.plugins.menuentryswapper.comparables.BankComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.EquipmentComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.InventoryComparableEntry; import net.runelite.client.plugins.menuentryswapper.util.BurningAmuletMode; import net.runelite.client.plugins.menuentryswapper.util.CharterOption; import net.runelite.client.plugins.menuentryswapper.util.CombatBraceletMode; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/BankComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java similarity index 94% rename from runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/BankComparableEntry.java rename to runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java index 19717c23be..5ba7a3786d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/BankComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java @@ -1,4 +1,4 @@ -package net.runelite.client.plugins.menuentryswapper; +package net.runelite.client.plugins.menuentryswapper.comparables; import lombok.EqualsAndHashCode; import net.runelite.api.MenuEntry; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/EquipmentComparableEntry.java similarity index 92% rename from runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java rename to runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/EquipmentComparableEntry.java index 93e66bf022..4b6d8b51df 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/EquipmentComparableEntry.java @@ -1,4 +1,4 @@ -package net.runelite.client.plugins.menuentryswapper; +package net.runelite.client.plugins.menuentryswapper.comparables; import lombok.EqualsAndHashCode; import net.runelite.api.MenuEntry; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/InventoryComparableEntry.java similarity index 94% rename from runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java rename to runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/InventoryComparableEntry.java index bbcb5e4646..c3e0935d46 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/InventoryComparableEntry.java @@ -1,4 +1,4 @@ -package net.runelite.client.plugins.menuentryswapper; +package net.runelite.client.plugins.menuentryswapper.comparables; import lombok.EqualsAndHashCode; import net.runelite.api.MenuEntry; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java index dd862577d6..e001582ac8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java @@ -59,8 +59,8 @@ import static net.runelite.client.menus.ComparableEntries.newBaseComparableEntry import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.plugins.menuentryswapper.BankComparableEntry; -import net.runelite.client.plugins.menuentryswapper.EquipmentComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.BankComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.EquipmentComparableEntry; import static net.runelite.client.plugins.runecraft.AbyssRifts.*; import net.runelite.client.ui.overlay.OverlayManager; From f928454f3ed4e54b298ecc611ca0b85f38705b86 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Wed, 18 Sep 2019 17:14:33 +0200 Subject: [PATCH 2/9] Clean up buy/sell menu entry swapper --- .../MenuEntrySwapperPlugin.java | 240 ++++++++++++------ .../comparables/ShopComparableEntry.java | 46 ++++ 2 files changed, 206 insertions(+), 80 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/ShopComparableEntry.java 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 a80525d9f8..d19fd1829a 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 @@ -85,6 +85,7 @@ import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.menuentryswapper.comparables.BankComparableEntry; import net.runelite.client.plugins.menuentryswapper.comparables.EquipmentComparableEntry; import net.runelite.client.plugins.menuentryswapper.comparables.InventoryComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.ShopComparableEntry; import net.runelite.client.plugins.menuentryswapper.util.BurningAmuletMode; import net.runelite.client.plugins.menuentryswapper.util.CharterOption; import net.runelite.client.plugins.menuentryswapper.util.CombatBraceletMode; @@ -174,6 +175,11 @@ public class MenuEntrySwapperPlugin extends Plugin private final Map customSwaps = new HashMap<>(); private final Map customShiftSwaps = new HashMap<>(); private final Map dePrioSwaps = new HashMap<>(); + + // 1, 5, 10, 50 + private final AbstractComparableEntry[][] buyEntries = new AbstractComparableEntry[4][]; + private final AbstractComparableEntry[][] sellEntries = new AbstractComparableEntry[4][]; + private List bankItemNames = new ArrayList<>(); private BurningAmuletMode getBurningAmuletMode; private CharterOption charterOption; @@ -201,15 +207,7 @@ public class MenuEntrySwapperPlugin extends Plugin private SlayerRingMode getSlayerRingMode; private String configCustomShiftSwaps; private String configCustomSwaps; - private String getBuyFiftyItems; - private String getBuyFiveItems; - private String getBuyOneItems; - private String getBuyTenItems; private String getRemovedObjects; - private String getSellFiftyItems; - private String getSellFiveItems; - private String getSellOneItems; - private String getSellTenItems; private String getWithdrawAllItems; private String getWithdrawFiveItems; private String getWithdrawOneItems; @@ -230,10 +228,6 @@ public class MenuEntrySwapperPlugin extends Plugin private boolean getSkillsNecklace; private boolean getSlayerRing; private boolean getSwapArdougneCape; - private boolean getSwapBuyFifty; - private boolean getSwapBuyFive; - private boolean getSwapBuyOne; - private boolean getSwapBuyTen; private boolean getSwapConstructionCape; private boolean getSwapCraftingCape; private boolean getSwapExplorersRing; @@ -241,10 +235,6 @@ public class MenuEntrySwapperPlugin extends Plugin private boolean getSwapPuro; private boolean getSwapSawmill; private boolean getSwapSawmillPlanks; - private boolean getSwapSellFifty; - private boolean getSwapSellFive; - private boolean getSwapSellOne; - private boolean getSwapSellTen; private boolean getSwapTanning; private boolean getWithdrawAll; private boolean getWithdrawFive; @@ -761,6 +751,8 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.addSwap(a, b); } + addBuySellEntries(); + if (this.getWithdrawOne) { Text.fromCSV(this.getWithdrawOneItems).forEach(item -> @@ -806,46 +798,6 @@ public class MenuEntrySwapperPlugin extends Plugin }); } - if (this.getSwapBuyOne) - { - Text.fromCSV(this.getBuyOneItems).forEach(item -> menuManager.addPriorityEntry("Buy 1", item).setPriority(100)); - } - - if (this.getSwapBuyFive) - { - Text.fromCSV(this.getBuyFiveItems).forEach(item -> menuManager.addPriorityEntry("Buy 5", item).setPriority(100)); - } - - if (this.getSwapBuyTen) - { - Text.fromCSV(this.getBuyTenItems).forEach(item -> menuManager.addPriorityEntry("Buy 10", item).setPriority(100)); - } - - if (this.getSwapBuyFifty) - { - Text.fromCSV(this.getBuyFiftyItems).forEach(item -> menuManager.addPriorityEntry("Buy 50", item).setPriority(100)); - } - - if (this.getSwapSellOne) - { - Text.fromCSV(this.getSellOneItems).forEach(item -> menuManager.addPriorityEntry("Sell 1", item).setPriority(100)); - } - - if (this.getSwapSellFive) - { - Text.fromCSV(this.getSellFiveItems).forEach(item -> menuManager.addPriorityEntry("Sell 5", item).setPriority(100)); - } - - if (this.getSwapSellTen) - { - Text.fromCSV(this.getSellTenItems).forEach(item -> menuManager.addPriorityEntry("Sell 10", item).setPriority(100)); - } - - if (this.getSwapSellFifty) - { - Text.fromCSV(this.getSellFiftyItems).forEach(item -> menuManager.addPriorityEntry("Sell 50", item).setPriority(100)); - } - if (this.getSwapTanning) { menuManager.addPriorityEntry("Tan All"); @@ -1253,6 +1205,9 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.removeSwap(e.getKey(), e.getValue()); dePrioIter.remove(); }); + + removeBuySellEntries(); + Text.fromCSV(this.getWithdrawOneItems).forEach(item -> { menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-1", item)); @@ -1278,14 +1233,7 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-All", item)); menuManager.removePriorityEntry(newBankComparableEntry("Deposit-All", item)); }); - Text.fromCSV(this.getBuyOneItems).forEach(item -> menuManager.removePriorityEntry("Buy 1", item)); - Text.fromCSV(this.getBuyFiveItems).forEach(item -> menuManager.removePriorityEntry("Buy 5", item)); - Text.fromCSV(this.getBuyTenItems).forEach(item -> menuManager.removePriorityEntry("Buy 10", item)); - Text.fromCSV(this.getBuyFiftyItems).forEach(item -> menuManager.removePriorityEntry("Buy 50", item)); - Text.fromCSV(this.getSellOneItems).forEach(item -> menuManager.removePriorityEntry("Sell 1", item)); - Text.fromCSV(this.getSellFiveItems).forEach(item -> menuManager.removePriorityEntry("Sell 5", item)); - Text.fromCSV(this.getSellTenItems).forEach(item -> menuManager.removePriorityEntry("Sell 10", item)); - Text.fromCSV(this.getSellFiftyItems).forEach(item -> menuManager.removePriorityEntry("Sell 50", item)); + menuManager.removePriorityEntry("Activate", "Box trap"); menuManager.removePriorityEntry("Assignment"); menuManager.removePriorityEntry("Bank"); @@ -1663,10 +1611,6 @@ public class MenuEntrySwapperPlugin extends Plugin this.constructionCapeMode = config.constructionCapeMode(); this.getBurningAmulet = config.getBurningAmulet(); this.getBurningAmuletMode = config.getBurningAmuletMode(); - this.getBuyFiftyItems = config.getBuyFiftyItems(); - this.getBuyFiveItems = config.getBuyFiveItems(); - this.getBuyOneItems = config.getBuyOneItems(); - this.getBuyTenItems = config.getBuyTenItems(); this.getCombatBracelet = config.getCombatBracelet(); this.getCombatBraceletMode = config.getCombatBraceletMode(); this.getConstructionMode = config.getConstructionMode(); @@ -1685,19 +1629,11 @@ public class MenuEntrySwapperPlugin extends Plugin this.getRemovedObjects = config.getRemovedObjects(); this.getRingofWealth = config.getRingofWealth(); this.getRingofWealthMode = config.getRingofWealthMode(); - this.getSellFiftyItems = config.getSellFiftyItems(); - this.getSellFiveItems = config.getSellFiveItems(); - this.getSellOneItems = config.getSellOneItems(); - this.getSellTenItems = config.getSellTenItems(); this.getSkillsNecklace = config.getSkillsNecklace(); this.getSkillsNecklaceMode = config.getSkillsNecklaceMode(); this.getSlayerRing = config.getSlayerRing(); this.getSlayerRingMode = config.getSlayerRingMode(); this.getSwapArdougneCape = config.getSwapArdougneCape(); - this.getSwapBuyFifty = config.getSwapBuyFifty(); - this.getSwapBuyFive = config.getSwapBuyFive(); - this.getSwapBuyOne = config.getSwapBuyOne(); - this.getSwapBuyTen = config.getSwapBuyTen(); this.getSwapConstructionCape = config.getSwapConstructionCape(); this.getSwapCraftingCape = config.getSwapCraftingCape(); this.getSwapExplorersRing = config.getSwapExplorersRing(); @@ -1705,10 +1641,6 @@ public class MenuEntrySwapperPlugin extends Plugin this.getSwapPuro = config.getSwapPuro(); this.getSwapSawmill = config.getSwapSawmill(); this.getSwapSawmillPlanks = config.getSwapSawmillPlanks(); - this.getSwapSellFifty = config.getSwapSellFifty(); - this.getSwapSellFive = config.getSwapSellFive(); - this.getSwapSellOne = config.getSwapSellOne(); - this.getSwapSellTen = config.getSwapSellTen(); this.getSwapTanning = config.getSwapTanning(); this.getWithdrawAll = config.getWithdrawAll(); this.getWithdrawAllItems = config.getWithdrawAllItems(); @@ -1785,6 +1717,154 @@ public class MenuEntrySwapperPlugin extends Plugin this.swapWildernessLever = config.swapWildernessLever(); this.swapHouseAd = config.swapHouseAd(); this.swapHouseAdMode = config.swapHouseAdMode(); + + updateBuySellEntries(); + } + + private void addBuySellEntries() + { + for (int i = 0; i < 4; i++) + { + if (buyEntries[i] != null) + { + for (AbstractComparableEntry entry : buyEntries[i]) + { + menuManager.addPriorityEntry(entry); + } + } + if (sellEntries[i] != null) + { + for (AbstractComparableEntry entry : sellEntries[i]) + { + menuManager.addPriorityEntry(entry); + } + } + } + } + + private void removeBuySellEntries() + { + for (int i = 0; i < 4; i++) + { + if (buyEntries[i] != null) + { + for (AbstractComparableEntry entry : buyEntries[i]) + { + menuManager.removePriorityEntry(entry); + } + } + if (sellEntries[i] != null) + { + for (AbstractComparableEntry entry : sellEntries[i]) + { + menuManager.removePriorityEntry(entry); + } + } + } + } + + /** + * Fills the buy/sell entry arrays + */ + private void updateBuySellEntries() + { + List tmp; + + if (config.getSwapBuyOne()) + { + tmp = Text.fromCSV(config.getBuyOneItems()); + buyEntries[0] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(buyEntries[0], tmp, true, 1); + } + else + { + buyEntries[0] = null; + } + + if (config.getSwapBuyFive()) + { + tmp = Text.fromCSV(config.getBuyFiveItems()); + buyEntries[1] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(buyEntries[1], tmp, true, 5); + } + else + { + buyEntries[1] = null; + } + + if (config.getSwapBuyTen()) + { + tmp = Text.fromCSV(config.getBuyTenItems()); + buyEntries[2] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(buyEntries[2], tmp, true, 10); + } + else + { + buyEntries[2] = null; + } + + if (config.getSwapBuyFifty()) + { + tmp = Text.fromCSV(config.getBuyFiftyItems()); + buyEntries[3] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(buyEntries[3], tmp, true, 50); + } + else + { + buyEntries[3] = null; + } + + if (config.getSwapSellOne()) + { + tmp = Text.fromCSV(config.getSellOneItems()); + sellEntries[0] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(sellEntries[0], tmp, false, 1); + } + else + { + sellEntries[0] = null; + } + + if (config.getSwapSellFive()) + { + tmp = Text.fromCSV(config.getSellFiveItems()); + sellEntries[1] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(sellEntries[1], tmp, false, 5); + } + else + { + sellEntries[1] = null; + } + + if (config.getSwapSellTen()) + { + tmp = Text.fromCSV(config.getSellTenItems()); + sellEntries[2] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(sellEntries[2], tmp, false, 10); + } + else + { + sellEntries[2] = null; + } + + if (config.getSwapSellFifty()) + { + tmp = Text.fromCSV(config.getSellFiftyItems()); + sellEntries[3] = new AbstractComparableEntry[tmp.size()]; + + ShopComparableEntry.populateArray(sellEntries[3], tmp, false, 50); + } + else + { + sellEntries[3] = null; + } } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/ShopComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/ShopComparableEntry.java new file mode 100644 index 0000000000..01ad0e9086 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/ShopComparableEntry.java @@ -0,0 +1,46 @@ +package net.runelite.client.plugins.menuentryswapper.comparables; + +import java.util.List; +import net.runelite.api.MenuEntry; +import net.runelite.api.util.Text; +import net.runelite.client.menus.AbstractComparableEntry; + +public class ShopComparableEntry extends AbstractComparableEntry +{ + private ShopComparableEntry(final boolean buy, final int amount, final String item) + { + assert amount == 1 || amount == 5 || amount == 10 || amount == 50 : "Only 1, 5, 10, or 50 are valid amounts"; + + this.setOption((buy ? "Buy " : "Sell ") + amount); + this.setTarget(Text.standardize(item)); + } + + @Override + public boolean matches(final MenuEntry entry) + { + return entry.getOption().equals(this.getOption()) && Text.standardize(entry.getTarget()).equals(this.getTarget()); + } + + @Override + public int getPriority() + { + return 100; + } + + @Override + public boolean equals(Object other) + { + return other instanceof ShopComparableEntry && super.equals(other); + } + + /** + * Fills the array with ShopComparableEntries, getting the items from the fed list + */ + public static void populateArray(final AbstractComparableEntry[] array, final List items, final boolean buy, final int amount) + { + for (int i = 0; i < array.length; i++) + { + array[i] = new ShopComparableEntry(buy, amount, items.get(i)); + } + } +} From 10b51778b7e6064b77914e523c6aef12fb6b2248 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Wed, 18 Sep 2019 17:22:58 +0200 Subject: [PATCH 3/9] Remove always true if statement and don't always update buy/sell swaps --- .../MenuEntrySwapperPlugin.java | 67 ++++++++++--------- 1 file changed, 36 insertions(+), 31 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 d19fd1829a..4c841f27fc 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 @@ -309,6 +309,9 @@ public class MenuEntrySwapperPlugin extends Plugin addSwaps(); loadConstructionItems(); loadCustomSwaps(config.customSwaps(), customSwaps); + updateBuySellEntries(); + addBuySellEntries(); + keyManager.registerKeyListener(ctrlHotkey); keyManager.registerKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) @@ -324,6 +327,8 @@ public class MenuEntrySwapperPlugin extends Plugin loadCustomSwaps("", customSwaps); // Removes all custom swaps removeSwaps(); + removeBuySellEntries(); + keyManager.unregisterKeyListener(ctrlHotkey); keyManager.unregisterKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) @@ -363,36 +368,42 @@ public class MenuEntrySwapperPlugin extends Plugin addSwaps(); loadConstructionItems(); - if (!CONFIG_GROUP.equals(event.getGroup())) + switch (event.getKey()) { - if (event.getKey().equals("customSwaps")) - { + case "customSwaps": loadCustomSwaps(this.configCustomSwaps, customSwaps); - } + return; + case "hideCastToB": + case "hideCastIgnoredToB": + if (this.hideCastToB) + { + setCastOptions(true); + } + else + { + resetCastOptions(); + } + return; + case "hideCastCoX": + case "hideCastIgnoredCoX": + if (this.hideCastCoX) + { + setCastOptions(true); + } + else + { + resetCastOptions(); + } + return; } - else if ((event.getKey().equals("hideCastToB") || event.getKey().equals("hideCastIgnoredToB"))) + if (event.getKey().startsWith("swapSell") || event.getKey().startsWith("swapBuy") || + (event.getKey().startsWith("sell") || event.getKey().startsWith("buy")) && event.getKey().endsWith("Items")) { - if (this.hideCastToB) - { - setCastOptions(true); - } - else - { - resetCastOptions(); - } - } - - else if ((event.getKey().equals("hideCastCoX") || event.getKey().equals("hideCastIgnoredCoX"))) - { - if (this.hideCastCoX) - { - setCastOptions(true); - } - else - { - resetCastOptions(); - } + removeBuySellEntries(); + updateBuySellEntries(); + addBuySellEntries(); + return; } } @@ -751,8 +762,6 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.addSwap(a, b); } - addBuySellEntries(); - if (this.getWithdrawOne) { Text.fromCSV(this.getWithdrawOneItems).forEach(item -> @@ -1206,8 +1215,6 @@ public class MenuEntrySwapperPlugin extends Plugin dePrioIter.remove(); }); - removeBuySellEntries(); - Text.fromCSV(this.getWithdrawOneItems).forEach(item -> { menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-1", item)); @@ -1717,8 +1724,6 @@ public class MenuEntrySwapperPlugin extends Plugin this.swapWildernessLever = config.swapWildernessLever(); this.swapHouseAd = config.swapHouseAd(); this.swapHouseAdMode = config.swapHouseAdMode(); - - updateBuySellEntries(); } private void addBuySellEntries() From 9a398b4b4988edbb949886fc2d9ad3aa6ab4125b Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Wed, 18 Sep 2019 18:26:31 +0200 Subject: [PATCH 4/9] Remove wildy level check --- .../plugins/menuentryswapper/MenuEntrySwapperPlugin.java | 6 ------ 1 file changed, 6 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 4c841f27fc..134a7cb520 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 @@ -433,12 +433,6 @@ public class MenuEntrySwapperPlugin extends Plugin return; } - // TODO: Remove this? This makes everything here only work in wildy lol - if (!(MiscUtils.getWildernessLevelFrom(client, localPlayer.getWorldLocation()) >= 0)) - { - return; - } - List menu_entries = new ArrayList<>(); for (MenuEntry entry : event.getMenuEntries()) From db03a245e300c88993502732048de6090e4db295 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Wed, 18 Sep 2019 20:34:44 +0200 Subject: [PATCH 5/9] Cleanup withdraw menu entry swaps --- .../main/java/net/runelite/api/Varbits.java | 4 +- .../MenuEntrySwapperConfig.java | 14 -- .../MenuEntrySwapperPlugin.java | 203 ++++++++++-------- .../comparables/BankComparableEntry.java | 13 +- .../comparables/WithdrawComparableEntry.java | 77 +++++++ 5 files changed, 199 insertions(+), 112 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java index 336c2e2307..7f68130c2a 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -686,7 +686,9 @@ public enum Varbits /** * 1 is true, 0 is false. */ - GAUNTLET_ENTERED(9178); + GAUNTLET_ENTERED(9178), + + WITHDRAW_X_AMOUNT(3960); /** * The raw varbit ID. diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java index 493c1daefb..7bb603614d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java @@ -152,20 +152,6 @@ public interface MenuEntrySwapperConfig extends Config return false; } - @ConfigItem( - keyName = "withdrawXAmount", - name = "Amount", - description = "", - position = 7, - group = "Banking", - hidden = true, - unhide = "withdrawX" - ) - default String getWithdrawXAmount() - { - return ""; - } - @ConfigItem( keyName = "withdrawXItems", name = "Items", 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 134a7cb520..79cdbfe736 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 @@ -58,6 +58,7 @@ import net.runelite.api.NPC; import net.runelite.api.Player; import net.runelite.api.Varbits; import static net.runelite.api.Varbits.BUILDING_MODE; +import static net.runelite.api.Varbits.WITHDRAW_X_AMOUNT; import net.runelite.api.WorldType; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ClientTick; @@ -86,6 +87,7 @@ import net.runelite.client.plugins.menuentryswapper.comparables.BankComparableEn import net.runelite.client.plugins.menuentryswapper.comparables.EquipmentComparableEntry; import net.runelite.client.plugins.menuentryswapper.comparables.InventoryComparableEntry; import net.runelite.client.plugins.menuentryswapper.comparables.ShopComparableEntry; +import net.runelite.client.plugins.menuentryswapper.comparables.WithdrawComparableEntry; import net.runelite.client.plugins.menuentryswapper.util.BurningAmuletMode; import net.runelite.client.plugins.menuentryswapper.util.CharterOption; import net.runelite.client.plugins.menuentryswapper.util.CombatBraceletMode; @@ -179,6 +181,8 @@ public class MenuEntrySwapperPlugin extends Plugin // 1, 5, 10, 50 private final AbstractComparableEntry[][] buyEntries = new AbstractComparableEntry[4][]; private final AbstractComparableEntry[][] sellEntries = new AbstractComparableEntry[4][]; + // 1, 5, 10, X, All + private final AbstractComparableEntry[][] withdrawEntries = new AbstractComparableEntry[5][]; private List bankItemNames = new ArrayList<>(); private BurningAmuletMode getBurningAmuletMode; @@ -208,12 +212,6 @@ public class MenuEntrySwapperPlugin extends Plugin private String configCustomShiftSwaps; private String configCustomSwaps; private String getRemovedObjects; - private String getWithdrawAllItems; - private String getWithdrawFiveItems; - private String getWithdrawOneItems; - private String getWithdrawTenItems; - private String getWithdrawXAmount; - private String getWithdrawXItems; private XericsTalismanMode getXericsTalismanMode; private boolean getBurningAmulet; private boolean getCombatBracelet; @@ -236,11 +234,6 @@ public class MenuEntrySwapperPlugin extends Plugin private boolean getSwapSawmill; private boolean getSwapSawmillPlanks; private boolean getSwapTanning; - private boolean getWithdrawAll; - private boolean getWithdrawFive; - private boolean getWithdrawOne; - private boolean getWithdrawTen; - private boolean getWithdrawX; private boolean getXericsTalisman; private boolean hideBait; private boolean hideCastCoX; @@ -309,9 +302,13 @@ public class MenuEntrySwapperPlugin extends Plugin addSwaps(); loadConstructionItems(); loadCustomSwaps(config.customSwaps(), customSwaps); + updateBuySellEntries(); addBuySellEntries(); + updateWithdrawEntries(); + addWithdrawEntries(); + keyManager.registerKeyListener(ctrlHotkey); keyManager.registerKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) @@ -328,6 +325,7 @@ public class MenuEntrySwapperPlugin extends Plugin loadCustomSwaps("", customSwaps); // Removes all custom swaps removeSwaps(); removeBuySellEntries(); + removeWithdrawEntries(); keyManager.unregisterKeyListener(ctrlHotkey); keyManager.unregisterKeyListener(hotkey); @@ -403,7 +401,12 @@ public class MenuEntrySwapperPlugin extends Plugin removeBuySellEntries(); updateBuySellEntries(); addBuySellEntries(); - return; + } + else if (event.getKey().startsWith("withdraw") || event.getKey().startsWith("deposit")) + { + removeWithdrawEntries(); + updateWithdrawEntries(); + addWithdrawEntries(); } } @@ -420,6 +423,7 @@ public class MenuEntrySwapperPlugin extends Plugin private void onVarbitChanged(VarbitChanged event) { buildingMode = client.getVar(BUILDING_MODE) == 1; + WithdrawComparableEntry.setX(client.getVar(WITHDRAW_X_AMOUNT)); setCastOptions(false); } @@ -756,51 +760,6 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.addSwap(a, b); } - if (this.getWithdrawOne) - { - Text.fromCSV(this.getWithdrawOneItems).forEach(item -> - { - menuManager.addPriorityEntry(newBankComparableEntry("Withdraw-1", item)).setPriority(10); - menuManager.addPriorityEntry(newBankComparableEntry("Deposit-1", item)).setPriority(10); - }); - } - - if (this.getWithdrawFive) - { - Text.fromCSV(this.getWithdrawFiveItems).forEach(item -> - { - menuManager.addPriorityEntry(newBankComparableEntry("Withdraw-5", item)).setPriority(10); - menuManager.addPriorityEntry(newBankComparableEntry("Deposit-5", item)).setPriority(10); - }); - } - - if (this.getWithdrawTen) - { - Text.fromCSV(this.getWithdrawTenItems).forEach(item -> - { - menuManager.addPriorityEntry(newBankComparableEntry("Withdraw-10", item)).setPriority(10); - menuManager.addPriorityEntry(newBankComparableEntry("Deposit-10", item)).setPriority(10); - }); - } - - if (this.getWithdrawX) - { - Text.fromCSV(this.getWithdrawXItems).forEach(item -> - { - menuManager.addPriorityEntry(newBankComparableEntry("Withdraw-" + this.getWithdrawXAmount, item)).setPriority(10); - menuManager.addPriorityEntry(newBankComparableEntry("Deposit-" + this.getWithdrawXAmount, item)).setPriority(10); - }); - } - - if (this.getWithdrawAll) - { - Text.fromCSV(this.getWithdrawAllItems).forEach(item -> - { - menuManager.addPriorityEntry(newBankComparableEntry("Withdraw-All", item)).setPriority(10); - menuManager.addPriorityEntry(newBankComparableEntry("Deposit-All", item)).setPriority(10); - }); - } - if (this.getSwapTanning) { menuManager.addPriorityEntry("Tan All"); @@ -1209,32 +1168,6 @@ public class MenuEntrySwapperPlugin extends Plugin dePrioIter.remove(); }); - Text.fromCSV(this.getWithdrawOneItems).forEach(item -> - { - menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-1", item)); - menuManager.removePriorityEntry(newBankComparableEntry("Deposit-1", item)); - }); - Text.fromCSV(this.getWithdrawFiveItems).forEach(item -> - { - menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-5", item)); - menuManager.removePriorityEntry(newBankComparableEntry("Deposit-5", item)); - }); - Text.fromCSV(this.getWithdrawTenItems).forEach(item -> - { - menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-10", item)); - menuManager.removePriorityEntry(newBankComparableEntry("Deposit-10", item)); - }); - Text.fromCSV(this.getWithdrawXItems).forEach(item -> - { - menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-" + this.getWithdrawXAmount, item)); - menuManager.removePriorityEntry(newBankComparableEntry("Deposit-" + this.getWithdrawXAmount, item)); - }); - Text.fromCSV(this.getWithdrawAllItems).forEach(item -> - { - menuManager.removePriorityEntry(newBankComparableEntry("Withdraw-All", item)); - menuManager.removePriorityEntry(newBankComparableEntry("Deposit-All", item)); - }); - menuManager.removePriorityEntry("Activate", "Box trap"); menuManager.removePriorityEntry("Assignment"); menuManager.removePriorityEntry("Bank"); @@ -1643,17 +1576,6 @@ public class MenuEntrySwapperPlugin extends Plugin this.getSwapSawmill = config.getSwapSawmill(); this.getSwapSawmillPlanks = config.getSwapSawmillPlanks(); this.getSwapTanning = config.getSwapTanning(); - this.getWithdrawAll = config.getWithdrawAll(); - this.getWithdrawAllItems = config.getWithdrawAllItems(); - this.getWithdrawFive = config.getWithdrawFive(); - this.getWithdrawFiveItems = config.getWithdrawFiveItems(); - this.getWithdrawOne = config.getWithdrawOne(); - this.getWithdrawOneItems = config.getWithdrawOneItems(); - this.getWithdrawTen = config.getWithdrawTen(); - this.getWithdrawTenItems = config.getWithdrawTenItems(); - this.getWithdrawX = config.getWithdrawX(); - this.getWithdrawXAmount = config.getWithdrawXAmount(); - this.getWithdrawXItems = config.getWithdrawXItems(); this.getXericsTalisman = config.getXericsTalisman(); this.getXericsTalismanMode = config.getXericsTalismanMode(); this.hideBait = config.hideBait(); @@ -1866,6 +1788,99 @@ public class MenuEntrySwapperPlugin extends Plugin } } + private void addWithdrawEntries() + { + for (int i = 0; i < 5; i++) + { + if (withdrawEntries[i] != null) + { + for (AbstractComparableEntry entry : withdrawEntries[i]) + { + menuManager.addPriorityEntry(entry); + } + } + } + } + + private void removeWithdrawEntries() + { + for (int i = 0; i < 5; i++) + { + if (withdrawEntries[i] != null) + { + for (AbstractComparableEntry entry : withdrawEntries[i]) + { + menuManager.removePriorityEntry(entry); + } + } + } + } + + private void updateWithdrawEntries() + { + List tmp; + + if (config.getWithdrawOne()) + { + tmp = Text.fromCSV(config.getWithdrawOneItems()); + withdrawEntries[0] = new AbstractComparableEntry[tmp.size()]; + + WithdrawComparableEntry.populateArray(withdrawEntries[0], tmp, WithdrawComparableEntry.Amount.ONE); + } + else + { + withdrawEntries[0] = null; + } + + if (config.getWithdrawFive()) + { + tmp = Text.fromCSV(config.getWithdrawFiveItems()); + withdrawEntries[1] = new AbstractComparableEntry[tmp.size()]; + + WithdrawComparableEntry.populateArray(withdrawEntries[1], tmp, WithdrawComparableEntry.Amount.FIVE); + } + else + { + withdrawEntries[1] = null; + } + + if (config.getWithdrawTen()) + { + tmp = Text.fromCSV(config.getWithdrawTenItems()); + withdrawEntries[2] = new AbstractComparableEntry[tmp.size()]; + + WithdrawComparableEntry.populateArray(withdrawEntries[2], tmp, WithdrawComparableEntry.Amount.TEN); + } + else + { + withdrawEntries[2] = null; + } + + if (config.getWithdrawX()) + { + tmp = Text.fromCSV(config.getWithdrawXItems()); + withdrawEntries[3] = new AbstractComparableEntry[tmp.size()]; + + WithdrawComparableEntry.populateArray(withdrawEntries[3], tmp, WithdrawComparableEntry.Amount.X); + } + else + { + withdrawEntries[3] = null; + } + + if (config.getWithdrawAll()) + { + tmp = Text.fromCSV(config.getWithdrawAllItems()); + withdrawEntries[4] = new AbstractComparableEntry[tmp.size()]; + + WithdrawComparableEntry.populateArray(withdrawEntries[4], tmp, WithdrawComparableEntry.Amount.ALL); + } + else + { + withdrawEntries[4] = null; + } + } + /** * Migrates old custom swaps config * This should be removed after a reasonable amount of time. diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java index 5ba7a3786d..b60029f87c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/BankComparableEntry.java @@ -20,9 +20,7 @@ public class BankComparableEntry extends AbstractComparableEntry public boolean matches(MenuEntry entry) { - final int groupId = WidgetInfo.TO_GROUP(entry.getParam1()); - - if (groupId != WidgetID.BANK_GROUP_ID && groupId != WidgetID.BANK_INVENTORY_GROUP_ID && groupId != WidgetID.GRAND_EXCHANGE_GROUP_ID) + if (isNotBankWidget(entry.getParam1())) { return false; } @@ -34,4 +32,13 @@ public class BankComparableEntry extends AbstractComparableEntry return StringUtils.containsIgnoreCase(entry.getOption(), this.getOption()) && Text.standardize(entry.getTarget()).contains(this.getTarget()); } + + static boolean isNotBankWidget(int widgetID) + { + final int groupId = WidgetInfo.TO_GROUP(widgetID); + + return groupId != WidgetID.BANK_GROUP_ID + && groupId != WidgetID.BANK_INVENTORY_GROUP_ID + && groupId != WidgetID.GRAND_EXCHANGE_GROUP_ID; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java new file mode 100644 index 0000000000..564e3d8fb0 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java @@ -0,0 +1,77 @@ +package net.runelite.client.plugins.menuentryswapper.comparables; + +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import net.runelite.api.MenuEntry; +import net.runelite.api.util.Text; +import net.runelite.client.menus.AbstractComparableEntry; + +@EqualsAndHashCode(callSuper = true) +public class WithdrawComparableEntry extends AbstractComparableEntry +{ + private static String x; + + private final Amount amount; + + private WithdrawComparableEntry(Amount amount, String item) + { + this.amount = amount; + this.setTarget(Text.standardize(item)); + } + + @Override + public boolean matches(MenuEntry entry) + { + if (BankComparableEntry.isNotBankWidget(entry.getParam1())) + { + return false; + } + + final String option = entry.getOption(); + + if (!option.startsWith("Withdraw") && !option.startsWith("Deposit")) + { + return false; + } + + if (amount == Amount.X && !option.endsWith(x) + || !option.endsWith(amount.suffix)) + { + return false; + } + + return Text.standardize(entry.getTarget()).contains(this.getTarget()); + } + + @Override + public int getPriority() + { + return 10; + } + + public static void setX(int amount) + { + x = String.valueOf(amount); + } + + public static void populateArray(AbstractComparableEntry[] array, List items, Amount amount) + { + for (int i = 0; i < array.length; i++) + { + array[i] = new WithdrawComparableEntry(amount, items.get(i)); + } + } + + @AllArgsConstructor + public enum Amount + { + ONE("1"), + FIVE("5"), + TEN("10"), + X(null), + ALL("All"); + + private String suffix; + } +} From 7701569b4f3305dbe2b7a547823261ceeea99fd4 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Thu, 19 Sep 2019 13:10:20 +0200 Subject: [PATCH 6/9] Fix npe --- .../comparables/WithdrawComparableEntry.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java index 564e3d8fb0..586cd2d59b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java @@ -35,8 +35,14 @@ public class WithdrawComparableEntry extends AbstractComparableEntry return false; } - if (amount == Amount.X && !option.endsWith(x) - || !option.endsWith(amount.suffix)) + if (amount == Amount.X) + { + if (!option.endsWith(x)) + { + return false; + } + } + else if (!option.endsWith(amount.suffix)) { return false; } From 2513925b2237846f9f82ffb4b619d81f33e0e709 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Thu, 19 Sep 2019 15:50:10 +0200 Subject: [PATCH 7/9] Allow color tags in comparable options (fixes tanning and sawmill) --- .../client/menus/BaseComparableEntry.java | 4 +- .../runelite/client/menus/MenuManager.java | 46 +++++++++---------- .../MenuEntrySwapperPlugin.java | 6 +-- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java index 737448bd8a..a5c6ea436b 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java @@ -42,7 +42,7 @@ public class BaseComparableEntry extends AbstractComparableEntry public BaseComparableEntry(String option, String target, int id, int type, boolean strictOption, boolean strictTarget) { - super.option = Text.standardize(option); + super.option = option.trim().toLowerCase(); super.target = Text.standardize(target); super.id = id; super.type = type; @@ -61,7 +61,7 @@ public class BaseComparableEntry extends AbstractComparableEntry if (strictTarget || !Strings.isNullOrEmpty(target)) { - String tgt = entry.getStandardizedTarget(); + String tgt = Text.standardize(entry.getTarget(), true); if (strictTarget && !tgt.equals(target) || !strictTarget && !tgt.contains(target)) { diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index 120de0a69d..3d953cc961 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -460,11 +460,7 @@ public class MenuManager } } - String target = event.getTarget(); - - // removes tags and level from player names for example: - // username (level-42) or username - String username = Text.removeTags(target).split("[(]")[0].trim(); + String username = Text.removeTags(event.getTarget(), true); PlayerMenuOptionClicked playerMenuOptionClicked = new PlayerMenuOptionClicked(); playerMenuOptionClicked.setMenuOption(event.getOption()); @@ -509,7 +505,7 @@ public class MenuManager */ public AbstractComparableEntry addPriorityEntry(String option, String target) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target); @@ -521,7 +517,7 @@ public class MenuManager public void removePriorityEntry(String option, String target) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target); @@ -536,7 +532,7 @@ public class MenuManager */ public AbstractComparableEntry addPriorityEntry(String option) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", false); @@ -547,7 +543,7 @@ public class MenuManager public AbstractComparableEntry addPriorityEntry(String option, boolean strictOption) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", -1, -1, false, strictOption); @@ -571,7 +567,7 @@ public class MenuManager public void removePriorityEntry(String option) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", false); @@ -580,7 +576,7 @@ public class MenuManager public void removePriorityEntry(String option, boolean strictOption) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", -1, -1, false, strictOption); @@ -606,10 +602,10 @@ public class MenuManager */ public void addSwap(String option, String target, String option2, String target2, boolean strictOption, boolean strictTarget) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); - option2 = Text.standardize(option2); + option2 = option2.trim().toLowerCase(); target2 = Text.standardize(target2); AbstractComparableEntry swapFrom = newBaseComparableEntry(option, target, -1, -1, strictOption, strictTarget); @@ -627,10 +623,10 @@ public class MenuManager public void removeSwap(String option, String target, String option2, String target2, boolean strictOption, boolean strictTarget) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); - option2 = Text.standardize(option2); + option2 = option2.trim().toLowerCase(); target2 = Text.standardize(target2); AbstractComparableEntry swapFrom = newBaseComparableEntry(option, target, -1, -1, strictOption, strictTarget); @@ -672,10 +668,10 @@ public class MenuManager */ public void addSwap(String option, String target, int id, int type, String option2, String target2, int id2, int type2) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); - option2 = Text.standardize(option2); + option2 = option2.trim().toLowerCase(); target2 = Text.standardize(target2); AbstractComparableEntry swapFrom = newBaseComparableEntry(option, target, id, type, false, false); @@ -692,10 +688,10 @@ public class MenuManager public void removeSwap(String option, String target, int id, int type, String option2, String target2, int id2, int type2) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); - option2 = Text.standardize(option2); + option2 = option2.trim().toLowerCase(); target2 = Text.standardize(target2); AbstractComparableEntry swapFrom = newBaseComparableEntry(option, target, id, type, false, false); @@ -724,7 +720,7 @@ public class MenuManager */ public void addHiddenEntry(String option, String target) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target); @@ -734,7 +730,7 @@ public class MenuManager public void removeHiddenEntry(String option, String target) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target); @@ -748,7 +744,7 @@ public class MenuManager */ public void addHiddenEntry(String option) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", false); @@ -757,7 +753,7 @@ public class MenuManager public void removeHiddenEntry(String option) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); AbstractComparableEntry entry = newBaseComparableEntry(option, "", false); @@ -769,7 +765,7 @@ public class MenuManager */ public void addHiddenEntry(String option, String target, boolean strictOption, boolean strictTarget) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target, -1, -1, strictOption, strictTarget); @@ -779,7 +775,7 @@ public class MenuManager public void removeHiddenEntry(String option, String target, boolean strictOption, boolean strictTarget) { - option = Text.standardize(option); + option = option.trim().toLowerCase(); target = Text.standardize(target); AbstractComparableEntry entry = newBaseComparableEntry(option, target, -1, -1, strictOption, strictTarget); 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 79cdbfe736..a8368c4290 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 @@ -529,7 +529,7 @@ public class MenuEntrySwapperPlugin extends Plugin final int eventId = event.getIdentifier(); final String option = event.getOption().toLowerCase(); - final String target = event.getMenuEntry().getStandardizedTarget(); + final String target = Text.standardize(event.getTarget(), true); final NPC hintArrowNpc = client.getHintArrowNpc(); if (this.getRemoveObjects && !this.getRemovedObjects.equals("")) @@ -762,7 +762,7 @@ public class MenuEntrySwapperPlugin extends Plugin if (this.getSwapTanning) { - menuManager.addPriorityEntry("Tan All"); + menuManager.addPriorityEntry("Tan All"); } if (this.getSwapSawmill) @@ -773,7 +773,7 @@ public class MenuEntrySwapperPlugin extends Plugin if (this.getSwapSawmillPlanks) { //Not much we can do for this one, Buy all is the only thing, there is no target. - menuManager.addPriorityEntry("Buy All").setPriority(10); + menuManager.addPriorityEntry("Buy All").setPriority(10); } if (this.getSwapArdougneCape) From 701f704b235c6acffb17ae8951980d41a8279e50 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Thu, 19 Sep 2019 17:16:55 +0200 Subject: [PATCH 8/9] Cache removed objects rather than parsing on every menu entry added --- .../MenuEntrySwapperPlugin.java | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 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 a8368c4290..db1d196c9d 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 @@ -128,7 +128,6 @@ import org.apache.commons.lang3.StringUtils; @PluginDependency(PvpToolsPlugin.class) public class MenuEntrySwapperPlugin extends Plugin { - private static final String CONFIG_GROUP = "shiftclick"; private static final String HOTKEY = "menuentryswapper hotkey"; private static final String CONTROL = "menuentryswapper control"; private static final String HOTKEY_CHECK = "menuentryswapper hotkey check"; @@ -184,6 +183,8 @@ public class MenuEntrySwapperPlugin extends Plugin // 1, 5, 10, X, All private final AbstractComparableEntry[][] withdrawEntries = new AbstractComparableEntry[5][]; + private String[] removedObjects; + private List bankItemNames = new ArrayList<>(); private BurningAmuletMode getBurningAmuletMode; private CharterOption charterOption; @@ -211,7 +212,6 @@ public class MenuEntrySwapperPlugin extends Plugin private SlayerRingMode getSlayerRingMode; private String configCustomShiftSwaps; private String configCustomSwaps; - private String getRemovedObjects; private XericsTalismanMode getXericsTalismanMode; private boolean getBurningAmulet; private boolean getCombatBracelet; @@ -221,7 +221,6 @@ public class MenuEntrySwapperPlugin extends Plugin private boolean getGamesNecklace; private boolean getGlory; private boolean getNecklaceofPassage; - private boolean getRemoveObjects; private boolean getRingofWealth; private boolean getSkillsNecklace; private boolean getSlayerRing; @@ -309,6 +308,8 @@ public class MenuEntrySwapperPlugin extends Plugin updateWithdrawEntries(); addWithdrawEntries(); + updateRemovedObjects(); + keyManager.registerKeyListener(ctrlHotkey); keyManager.registerKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) @@ -327,6 +328,8 @@ public class MenuEntrySwapperPlugin extends Plugin removeBuySellEntries(); removeWithdrawEntries(); + removedObjects = null; + keyManager.unregisterKeyListener(ctrlHotkey); keyManager.unregisterKeyListener(hotkey); if (client.getGameState() == GameState.LOGGED_IN) @@ -393,6 +396,10 @@ public class MenuEntrySwapperPlugin extends Plugin resetCastOptions(); } return; + case "removeObjects": + case "removedObjects": + updateRemovedObjects(); + return; } if (event.getKey().startsWith("swapSell") || event.getKey().startsWith("swapBuy") || @@ -412,7 +419,7 @@ public class MenuEntrySwapperPlugin extends Plugin private void onGameStateChanged(GameStateChanged event) { - if (client.getGameState() != GameState.LOGGED_IN) + if (event.getGameState() != GameState.LOGGED_IN) { return; } @@ -532,27 +539,16 @@ public class MenuEntrySwapperPlugin extends Plugin final String target = Text.standardize(event.getTarget(), true); final NPC hintArrowNpc = client.getHintArrowNpc(); - if (this.getRemoveObjects && !this.getRemovedObjects.equals("")) + if (removedObjects != null) { - // TODO: CACHE THIS - for (String removed : Text.fromCSV(this.getRemovedObjects)) + final boolean hasArrow = target.contains("->"); + final int targetLength = target.length(); + + for (final String object : removedObjects) { - removed = Text.standardize(removed); - if (target.equals(removed)) - { - 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)) - { - client.setMenuOptionCount(client.getMenuOptionCount() - 1); - return; - } - } - else if (target.length() >= removed.length() && StringUtils.startsWithIgnoreCase(target, removed)) + if (target.equals(object) + || hasArrow && target.endsWith(object) + || targetLength > object.length() && target.startsWith(object)) { client.setMenuOptionCount(client.getMenuOptionCount() - 1); return; @@ -1559,8 +1555,6 @@ public class MenuEntrySwapperPlugin extends Plugin this.getGloryMode = config.getGloryMode(); this.getNecklaceofPassage = config.getNecklaceofPassage(); this.getNecklaceofPassageMode = config.getNecklaceofPassageMode(); - this.getRemoveObjects = config.getRemoveObjects(); - this.getRemovedObjects = config.getRemovedObjects(); this.getRingofWealth = config.getRingofWealth(); this.getRingofWealthMode = config.getRingofWealthMode(); this.getSkillsNecklace = config.getSkillsNecklace(); @@ -1881,6 +1875,20 @@ public class MenuEntrySwapperPlugin extends Plugin } } + private void updateRemovedObjects() + { + if (config.getRemoveObjects()) + { + removedObjects = Text.fromCSV( + Text.removeTags(config.getRemovedObjects().toLowerCase()) + ).toArray(new String[0]); + } + else + { + removedObjects = null; + } + } + /** * Migrates old custom swaps config * This should be removed after a reasonable amount of time. From 1e6cf0f5c7d7a3b330111b4f0d9dc54439e9e6d5 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Thu, 19 Sep 2019 17:38:10 +0200 Subject: [PATCH 9/9] Clean up merge and remove standardizedtarget field as it's not really used --- runelite-api/src/main/java/net/runelite/api/MenuEntry.java | 5 ----- .../runelite/client/plugins/blackjack/BlackjackPlugin.java | 3 ++- .../plugins/menuentryswapper/MenuEntrySwapperPlugin.java | 6 ++---- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java index e22fb2721d..68a51ee1e9 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java @@ -28,7 +28,6 @@ import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; import lombok.Setter; -import net.runelite.api.util.Text; /** * A menu entry in a right-click menu. @@ -83,7 +82,6 @@ public class MenuEntry this.param0 = param0; this.param1 = param1; this.forceLeftClick = forceLeftClick; - this.standardizedTarget = Text.standardize(target, true); } public static MenuEntry copy(MenuEntry src) @@ -102,8 +100,5 @@ public class MenuEntry public void setTarget(String target) { this.target = target; - this.standardizedTarget = Text.standardize(target, true); } - - private String standardizedTarget; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java index 36d59a1bb2..a40f8a6c80 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java @@ -38,6 +38,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; +import net.runelite.api.util.Text; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.menus.AbstractComparableEntry; @@ -181,7 +182,7 @@ public class BlackjackPlugin extends Plugin public boolean matches(MenuEntry entry) { return - entry.getStandardizedTarget().equals(this.getTarget()) && + Text.removeTags(entry.getTarget(), true).equalsIgnoreCase(this.getTarget()) && entry.getOption().equalsIgnoreCase(this.getOption()); } } 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 db1d196c9d..3609602357 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 @@ -114,8 +114,6 @@ import net.runelite.client.plugins.pvptools.PvpToolsConfig; import net.runelite.client.plugins.pvptools.PvpToolsPlugin; import net.runelite.client.util.HotkeyListener; import static net.runelite.client.util.MenuUtil.swap; -import net.runelite.client.util.MiscUtils; -import org.apache.commons.lang3.StringUtils; @PluginDescriptor( name = "Menu Entry Swapper", @@ -1167,7 +1165,7 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.removePriorityEntry("Activate", "Box trap"); menuManager.removePriorityEntry("Assignment"); menuManager.removePriorityEntry("Bank"); - menuManager.removePriorityEntry("Buy All"); + menuManager.removePriorityEntry("Buy All"); menuManager.removePriorityEntry("Buy-plank"); menuManager.removePriorityEntry("Buy-plank", "Sawmill operator"); menuManager.removePriorityEntry("Charter"); @@ -1233,7 +1231,7 @@ public class MenuEntrySwapperPlugin extends Plugin menuManager.removePriorityEntry("Story"); menuManager.removePriorityEntry("Stun", "Hoop snake"); menuManager.removePriorityEntry("Take-boat"); - menuManager.removePriorityEntry("Tan All"); + menuManager.removePriorityEntry("Tan All"); menuManager.removePriorityEntry("Teleport menu", "Portal nexus"); menuManager.removePriorityEntry("Teleport", "Crafting cape"); menuManager.removePriorityEntry("Teleport", "Crafting cape(t)");