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-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/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/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/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/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/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java
index bffece530f..209db98854 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
@@ -263,20 +263,6 @@ public interface MenuEntrySwapperConfig extends Config
return false;
}
- @ConfigItem(
- keyName = "withdrawXAmount",
- name = "Amount",
- description = "",
- position = 7,
- section = "bankingSection",
- 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 71565cf263..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
@@ -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;
@@ -82,6 +83,11 @@ 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.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;
@@ -108,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",
@@ -122,7 +126,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";
@@ -171,6 +174,15 @@ 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][];
+ // 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;
@@ -198,21 +210,6 @@ 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;
- private String getWithdrawTenItems;
- private String getWithdrawXAmount;
- private String getWithdrawXItems;
private XericsTalismanMode getXericsTalismanMode;
private boolean getBurningAmulet;
private boolean getCombatBracelet;
@@ -222,15 +219,10 @@ 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;
private boolean getSwapArdougneCape;
- private boolean getSwapBuyFifty;
- private boolean getSwapBuyFive;
- private boolean getSwapBuyOne;
- private boolean getSwapBuyTen;
private boolean getSwapConstructionCape;
private boolean getSwapCraftingCape;
private boolean getSwapExplorersRing;
@@ -238,16 +230,7 @@ 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;
- private boolean getWithdrawOne;
- private boolean getWithdrawTen;
- private boolean getWithdrawX;
private boolean getXericsTalisman;
private boolean hideBait;
private boolean hideCastCoX;
@@ -316,6 +299,15 @@ public class MenuEntrySwapperPlugin extends Plugin
addSwaps();
loadConstructionItems();
loadCustomSwaps(config.customSwaps(), customSwaps);
+
+ updateBuySellEntries();
+ addBuySellEntries();
+
+ updateWithdrawEntries();
+ addWithdrawEntries();
+
+ updateRemovedObjects();
+
keyManager.registerKeyListener(ctrlHotkey);
keyManager.registerKeyListener(hotkey);
if (client.getGameState() == GameState.LOGGED_IN)
@@ -331,6 +323,11 @@ public class MenuEntrySwapperPlugin extends Plugin
loadCustomSwaps("", customSwaps); // Removes all custom swaps
removeSwaps();
+ removeBuySellEntries();
+ removeWithdrawEntries();
+
+ removedObjects = null;
+
keyManager.unregisterKeyListener(ctrlHotkey);
keyManager.unregisterKeyListener(hotkey);
if (client.getGameState() == GameState.LOGGED_IN)
@@ -370,42 +367,57 @@ 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;
+ case "removeObjects":
+ case "removedObjects":
+ updateRemovedObjects();
+ 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();
- }
+ removeBuySellEntries();
+ updateBuySellEntries();
+ addBuySellEntries();
}
-
- else if ((event.getKey().equals("hideCastCoX") || event.getKey().equals("hideCastIgnoredCoX")))
+ else if (event.getKey().startsWith("withdraw") || event.getKey().startsWith("deposit"))
{
- if (this.hideCastCoX)
- {
- setCastOptions(true);
- }
- else
- {
- resetCastOptions();
- }
+ removeWithdrawEntries();
+ updateWithdrawEntries();
+ addWithdrawEntries();
}
}
private void onGameStateChanged(GameStateChanged event)
{
- if (client.getGameState() != GameState.LOGGED_IN)
+ if (event.getGameState() != GameState.LOGGED_IN)
{
return;
}
@@ -416,6 +428,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);
}
@@ -429,12 +442,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())
@@ -527,30 +534,19 @@ 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(""))
+ 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;
@@ -758,94 +754,9 @@ 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.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");
+ menuManager.addPriorityEntry("Tan All");
}
if (this.getSwapSawmill)
@@ -856,7 +767,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)
@@ -1250,43 +1161,11 @@ public class MenuEntrySwapperPlugin extends Plugin
menuManager.removeSwap(e.getKey(), e.getValue());
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));
- });
- 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");
- menuManager.removePriorityEntry("Buy All");
+ menuManager.removePriorityEntry("Buy All");
menuManager.removePriorityEntry("Buy-plank");
menuManager.removePriorityEntry("Buy-plank", "Sawmill operator");
menuManager.removePriorityEntry("Charter");
@@ -1352,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)");
@@ -1660,10 +1539,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();
@@ -1678,23 +1553,13 @@ 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.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();
@@ -1702,22 +1567,7 @@ 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();
- 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();
@@ -1784,6 +1634,259 @@ public class MenuEntrySwapperPlugin extends Plugin
this.swapHouseAdMode = config.swapHouseAdMode();
}
+ 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;
+ }
+ }
+
+ 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;
+ }
+ }
+
+ 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.
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 72%
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..b60029f87c 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;
@@ -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/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/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));
+ }
+ }
+}
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..586cd2d59b
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/comparables/WithdrawComparableEntry.java
@@ -0,0 +1,83 @@
+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)
+ {
+ if (!option.endsWith(x))
+ {
+ return false;
+ }
+ }
+ else if (!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;
+ }
+}
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;