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 2921c5ed2c..c221891fa0 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -470,6 +470,7 @@ public enum Varbits SUPERIOR_ENABLED(5362), FOSSIL_ISLAND_WYVERN_DISABLE(6251), + BANK_REARRANGE_MODE(3959), CURRENT_BANK_TAB(4150), WORLDHOPPER_FAVROITE_1(4597), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 2800f4657d..45d71fb94c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -690,12 +690,7 @@ public class TabInterface else if (parent.getId() == draggedOn.getId() && parent.getId() == draggedWidget.getId()) { // Reorder tag tabs - if (!Strings.isNullOrEmpty(draggedOn.getName())) - { - tabManager.move(draggedWidget.getName(), draggedOn.getName()); - tabManager.save(); - updateTabs(); - } + moveTagTab(draggedWidget, draggedOn); } } else if (draggedWidget.getItemId() > 0) @@ -725,6 +720,26 @@ public class TabInterface } } + private void moveTagTab(final Widget source, final Widget dest) + { + if (Strings.isNullOrEmpty(dest.getName())) + { + return; + } + + if (client.getVar(Varbits.BANK_REARRANGE_MODE) == 0) + { + tabManager.swap(source.getName(), dest.getName()); + } + else + { + tabManager.insert(source.getName(), dest.getName()); + } + + tabManager.save(); + updateTabs(); + } + private boolean isHidden() { Widget widget = client.getWidget(WidgetInfo.BANK_CONTAINER); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java index a3f2b06948..f3feed8511 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java @@ -95,7 +95,7 @@ class TabManager return tagTab; } - void move(String tagToMove, String tagDestination) + void swap(String tagToMove, String tagDestination) { tagToMove = Text.standardize(tagToMove); tagDestination = Text.standardize(tagDestination); @@ -106,6 +106,17 @@ class TabManager } } + void insert(String tagToMove, String tagDestination) + { + tagToMove = Text.standardize(tagToMove); + tagDestination = Text.standardize(tagDestination); + + if (contains(tagToMove) && contains(tagDestination)) + { + tabs.add(indexOf(tagDestination), tabs.remove(indexOf(tagToMove))); + } + } + void remove(String tag) { TagTab tagTab = find(tag);