From 1e1273d1726a58812c6e7c1cde70ff6d88f7eb46 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 25 Jun 2020 20:51:14 -0400 Subject: [PATCH] menu swapper: fix toggling customizable shift-click option This was not actually enabling/disabling shift click on config toggle, nor was it respecting the config option when overwriting the shift click indexes --- .../MenuEntrySwapperConfig.java | 4 ++- .../MenuEntrySwapperPlugin.java | 26 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) 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 e3d50db7f4..6ca722c229 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 @@ -29,9 +29,11 @@ import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigSection; -@ConfigGroup("menuentryswapper") +@ConfigGroup(MenuEntrySwapperConfig.GROUP) public interface MenuEntrySwapperConfig extends Config { + String GROUP = "menuentryswapper"; + @ConfigSection( name = "Item Swaps", description = "All options that swap item menu entries", 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 92b56babb9..27ec421c69 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,7 +85,7 @@ public class MenuEntrySwapperPlugin extends Plugin private static final String RESET = "Reset"; private static final String MENU_TARGET = "Shift-click"; - private static final String CONFIG_GROUP = "shiftclick"; + private static final String SHIFTCLICK_CONFIG_GROUP = "shiftclick"; private static final String ITEM_KEY_PREFIX = "item_"; private static final WidgetMenuOption FIXED_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE, @@ -389,12 +389,7 @@ public class MenuEntrySwapperPlugin extends Plugin @Subscribe public void onConfigChanged(ConfigChanged event) { - if (!CONFIG_GROUP.equals(event.getGroup())) - { - return; - } - - if (event.getKey().equals("shiftClickCustomization")) + if (event.getGroup().equals(MenuEntrySwapperConfig.GROUP) && event.getKey().equals("shiftClickCustomization")) { if (config.shiftClickCustomization()) { @@ -405,7 +400,7 @@ public class MenuEntrySwapperPlugin extends Plugin disableCustomization(); } } - else if (event.getKey().startsWith(ITEM_KEY_PREFIX)) + else if (event.getGroup().equals(SHIFTCLICK_CONFIG_GROUP) && event.getKey().startsWith(ITEM_KEY_PREFIX)) { clientThread.invoke(this::resetItemCompositionCache); } @@ -420,7 +415,7 @@ public class MenuEntrySwapperPlugin extends Plugin private Integer getSwapConfig(int itemId) { itemId = ItemVariationMapping.map(itemId); - String config = configManager.getConfiguration(CONFIG_GROUP, ITEM_KEY_PREFIX + itemId); + String config = configManager.getConfiguration(SHIFTCLICK_CONFIG_GROUP, ITEM_KEY_PREFIX + itemId); if (config == null || config.isEmpty()) { return null; @@ -432,19 +427,20 @@ public class MenuEntrySwapperPlugin extends Plugin private void setSwapConfig(int itemId, int index) { itemId = ItemVariationMapping.map(itemId); - configManager.setConfiguration(CONFIG_GROUP, ITEM_KEY_PREFIX + itemId, index); + configManager.setConfiguration(SHIFTCLICK_CONFIG_GROUP, ITEM_KEY_PREFIX + itemId, index); } private void unsetSwapConfig(int itemId) { itemId = ItemVariationMapping.map(itemId); - configManager.unsetConfiguration(CONFIG_GROUP, ITEM_KEY_PREFIX + itemId); + configManager.unsetConfiguration(SHIFTCLICK_CONFIG_GROUP, ITEM_KEY_PREFIX + itemId); } private void enableCustomization() { keyManager.registerKeyListener(inputListener); refreshShiftClickCustomizationMenus(); + // set shift click action index on the item compositions clientThread.invoke(this::resetItemCompositionCache); } @@ -453,6 +449,7 @@ public class MenuEntrySwapperPlugin extends Plugin keyManager.unregisterKeyListener(inputListener); removeShiftClickCustomizationMenus(); configuringShiftClick = false; + // flush item compositions to reset the shift click action index clientThread.invoke(this::resetItemCompositionCache); } @@ -707,6 +704,13 @@ public class MenuEntrySwapperPlugin extends Plugin @Subscribe public void onPostItemComposition(PostItemComposition event) { + if (!config.shiftClickCustomization()) + { + // since shift-click is done by the client we have to check if our shift click customization is on + // prior to altering the item shift click action index. + return; + } + ItemComposition itemComposition = event.getItemComposition(); Integer option = getSwapConfig(itemComposition.getId());