test_class.declarator: client
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	Client client;
test_class.type: Client
test_class.var_name: client
test_class.declarator: configManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ConfigManager configManager;
test_class.type: ConfigManager
test_class.var_name: configManager
test_class.declarator: itemManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ItemManager itemManager;
test_class.type: ItemManager
test_class.var_name: itemManager
test_class.declarator: config
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	MenuEntrySwapperConfig config;
test_class.type: MenuEntrySwapperConfig
test_class.var_name: config
test_class.declarator: menuEntrySwapperPlugin
test_class.modifier: @Inject
test_class.original_string: @Inject
  	MenuEntrySwapperPlugin menuEntrySwapperPlugin;
test_class.type: MenuEntrySwapperPlugin
test_class.var_name: menuEntrySwapperPlugin
test_class.declarator: entries
test_class.modifier: private
test_class.original_string: private MenuEntry[] entries;
test_class.type: MenuEntry[]
test_class.var_name: entries
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java
test_class.identifier: MenuEntrySwapperPluginTest
test_case.body: @Test
  	public void testSlayerMaster()
  	{
  		lenient().when(config.swapTrade()).thenReturn(true);
  		when(config.swapAssignment()).thenReturn(true);
  
  		entries = new MenuEntry[]{
  			menu("Cancel", "", MenuAction.CANCEL),
  			menu("Rewards", "Duradel", MenuAction.NPC_FIFTH_OPTION),
  			menu("Trade", "Duradel", MenuAction.NPC_FOURTH_OPTION),
  			menu("Assignment", "Duradel", MenuAction.NPC_THIRD_OPTION),
  			menu("Talk-to", "Duradel", MenuAction.NPC_FIRST_OPTION),
  		};
  		menuEntrySwapperPlugin.onClientTick(new ClientTick());
  
  		ArgumentCaptor<MenuEntry[]> argumentCaptor = ArgumentCaptor.forClass(MenuEntry[].class);
  		verify(client).setMenuEntries(argumentCaptor.capture());
  
  		// check the assignment swap is hit first instead of trade
  		assertArrayEquals(new MenuEntry[]{
  			menu("Cancel", "", MenuAction.CANCEL),
  			menu("Rewards", "Duradel", MenuAction.NPC_FIFTH_OPTION),
  			menu("Trade", "Duradel", MenuAction.NPC_FOURTH_OPTION),
  			menu("Talk-to", "Duradel", MenuAction.NPC_FIRST_OPTION),
  			menu("Assignment", "Duradel", MenuAction.NPC_THIRD_OPTION),
  		}, argumentCaptor.getValue());
  	}
test_case.class_method_signature: MenuEntrySwapperPluginTest.testSlayerMaster()
test_case.full_signature: @Test public void testSlayerMaster()
test_case.identifier: testSlayerMaster
test_case.invocations: thenReturn when lenient swapTrade thenReturn when swapAssignment menu menu menu menu menu onClientTick forClass setMenuEntries verify capture assertArrayEquals menu menu menu menu menu getValue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSlayerMaster()
focal_class.declarator: CONFIGURE = "Configure"
focal_class.modifier: private static final
focal_class.original_string: private static final String CONFIGURE = "Configure";
focal_class.type: String
focal_class.var_name: CONFIGURE
focal_class.declarator: SAVE = "Save"
focal_class.modifier: private static final
focal_class.original_string: private static final String SAVE = "Save";
focal_class.type: String
focal_class.var_name: SAVE
focal_class.declarator: RESET = "Reset"
focal_class.modifier: private static final
focal_class.original_string: private static final String RESET = "Reset";
focal_class.type: String
focal_class.var_name: RESET
focal_class.declarator: MENU_TARGET = "Shift-click"
focal_class.modifier: private static final
focal_class.original_string: private static final String MENU_TARGET = "Shift-click";
focal_class.type: String
focal_class.var_name: MENU_TARGET
focal_class.declarator: SHIFTCLICK_CONFIG_GROUP = "shiftclick"
focal_class.modifier: private static final
focal_class.original_string: private static final String SHIFTCLICK_CONFIG_GROUP = "shiftclick";
focal_class.type: String
focal_class.var_name: SHIFTCLICK_CONFIG_GROUP
focal_class.declarator: ITEM_KEY_PREFIX = "item_"
focal_class.modifier: private static final
focal_class.original_string: private static final String ITEM_KEY_PREFIX = "item_";
focal_class.type: String
focal_class.var_name: ITEM_KEY_PREFIX
focal_class.declarator: FIXED_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption FIXED_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: FIXED_INVENTORY_TAB_CONFIGURE
focal_class.declarator: FIXED_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption FIXED_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: FIXED_INVENTORY_TAB_SAVE
focal_class.declarator: RESIZABLE_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption RESIZABLE_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: RESIZABLE_INVENTORY_TAB_CONFIGURE
focal_class.declarator: RESIZABLE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption RESIZABLE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: RESIZABLE_INVENTORY_TAB_SAVE
focal_class.declarator: RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_CONFIGURE = new WidgetMenuOption(CONFIGURE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_CONFIGURE
focal_class.declarator: RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB)
focal_class.modifier: private static final
focal_class.original_string: private static final WidgetMenuOption RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_SAVE = new WidgetMenuOption(SAVE,
  		MENU_TARGET, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB);
focal_class.type: WidgetMenuOption
focal_class.var_name: RESIZABLE_BOTTOM_LINE_INVENTORY_TAB_SAVE
focal_class.declarator: NPC_MENU_TYPES = ImmutableSet.of(
  		MenuAction.NPC_FIRST_OPTION,
  		MenuAction.NPC_SECOND_OPTION,
  		MenuAction.NPC_THIRD_OPTION,
  		MenuAction.NPC_FOURTH_OPTION,
  		MenuAction.NPC_FIFTH_OPTION,
  		MenuAction.EXAMINE_NPC)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<MenuAction> NPC_MENU_TYPES = ImmutableSet.of(
  		MenuAction.NPC_FIRST_OPTION,
  		MenuAction.NPC_SECOND_OPTION,
  		MenuAction.NPC_THIRD_OPTION,
  		MenuAction.NPC_FOURTH_OPTION,
  		MenuAction.NPC_FIFTH_OPTION,
  		MenuAction.EXAMINE_NPC);
focal_class.type: Set<MenuAction>
focal_class.var_name: NPC_MENU_TYPES
focal_class.declarator: ESSENCE_MINE_NPCS = ImmutableSet.of(
  		"aubury",
  		"wizard sedridor",
  		"wizard distentor",
  		"wizard cromperty",
  		"brimstail"
  	)
focal_class.modifier: private static final
focal_class.original_string: private static final Set<String> ESSENCE_MINE_NPCS = ImmutableSet.of(
  		"aubury",
  		"wizard sedridor",
  		"wizard distentor",
  		"wizard cromperty",
  		"brimstail"
  	);
focal_class.type: Set<String>
focal_class.var_name: ESSENCE_MINE_NPCS
focal_class.declarator: client
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Client client;
focal_class.type: Client
focal_class.var_name: client
focal_class.declarator: clientThread
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientThread clientThread;
focal_class.type: ClientThread
focal_class.var_name: clientThread
focal_class.declarator: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private MenuEntrySwapperConfig config;
focal_class.type: MenuEntrySwapperConfig
focal_class.var_name: config
focal_class.declarator: configManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ConfigManager configManager;
focal_class.type: ConfigManager
focal_class.var_name: configManager
focal_class.declarator: keyManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private KeyManager keyManager;
focal_class.type: KeyManager
focal_class.var_name: keyManager
focal_class.declarator: menuManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private MenuManager menuManager;
focal_class.type: MenuManager
focal_class.var_name: menuManager
focal_class.declarator: itemManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ItemManager itemManager;
focal_class.type: ItemManager
focal_class.var_name: itemManager
focal_class.declarator: configuringShiftClick = false
focal_class.modifier: @Getter
  	private
focal_class.original_string: @Getter
  	private boolean configuringShiftClick = false;
focal_class.type: boolean
focal_class.var_name: configuringShiftClick
focal_class.declarator: swaps = LinkedHashMultimap.create()
focal_class.modifier: private final
focal_class.original_string: private final Multimap<String, Swap> swaps = LinkedHashMultimap.create();
focal_class.type: Multimap<String, Swap>
focal_class.var_name: swaps
focal_class.declarator: optionIndexes = ArrayListMultimap.create()
focal_class.modifier: private final
focal_class.original_string: private final ArrayListMultimap<String, Integer> optionIndexes = ArrayListMultimap.create();
focal_class.type: ArrayListMultimap<String, Integer>
focal_class.var_name: optionIndexes
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java
focal_class.identifier: MenuEntrySwapperPlugin
focal_class.class_method_signature: MenuEntrySwapperPlugin.provideConfig(ConfigManager configManager)
focal_class.full_signature: @Provides MenuEntrySwapperConfig provideConfig(ConfigManager configManager)
focal_class.identifier: provideConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: MenuEntrySwapperConfig
focal_class.signature: MenuEntrySwapperConfig provideConfig(ConfigManager configManager)
focal_class.class_method_signature: MenuEntrySwapperPlugin.startUp()
focal_class.full_signature: @Override public void startUp()
focal_class.identifier: startUp
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startUp()
focal_class.class_method_signature: MenuEntrySwapperPlugin.shutDown()
focal_class.full_signature: @Override public void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: MenuEntrySwapperPlugin.setupSwaps()
focal_class.full_signature: @VisibleForTesting void setupSwaps()
focal_class.identifier: setupSwaps
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void setupSwaps()
focal_class.class_method_signature: MenuEntrySwapperPlugin.swap(String option, String swappedOption, Supplier<Boolean> enabled)
focal_class.full_signature: private void swap(String option, String swappedOption, Supplier<Boolean> enabled)
focal_class.identifier: swap
focal_class.modifiers: private
focal_class.parameters: (String option, String swappedOption, Supplier<Boolean> enabled)
focal_class.return: void
focal_class.signature: void swap(String option, String swappedOption, Supplier<Boolean> enabled)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swap(String option, String target, String swappedOption, Supplier<Boolean> enabled)
focal_class.full_signature: private void swap(String option, String target, String swappedOption, Supplier<Boolean> enabled)
focal_class.identifier: swap
focal_class.modifiers: private
focal_class.parameters: (String option, String target, String swappedOption, Supplier<Boolean> enabled)
focal_class.return: void
focal_class.signature: void swap(String option, String target, String swappedOption, Supplier<Boolean> enabled)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swap(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.full_signature: private void swap(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.identifier: swap
focal_class.modifiers: private
focal_class.parameters: (String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.return: void
focal_class.signature: void swap(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swapContains(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.full_signature: private void swapContains(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.identifier: swapContains
focal_class.modifiers: private
focal_class.parameters: (String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.return: void
focal_class.signature: void swapContains(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swapTeleport(String option, String swappedOption)
focal_class.full_signature: private void swapTeleport(String option, String swappedOption)
focal_class.identifier: swapTeleport
focal_class.modifiers: private
focal_class.parameters: (String option, String swappedOption)
focal_class.return: void
focal_class.signature: void swapTeleport(String option, String swappedOption)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onConfigChanged(ConfigChanged event)
focal_class.full_signature: @Subscribe public void onConfigChanged(ConfigChanged event)
focal_class.identifier: onConfigChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ConfigChanged event)
focal_class.return: void
focal_class.signature: void onConfigChanged(ConfigChanged event)
focal_class.class_method_signature: MenuEntrySwapperPlugin.resetItemCompositionCache()
focal_class.full_signature: private void resetItemCompositionCache()
focal_class.identifier: resetItemCompositionCache
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void resetItemCompositionCache()
focal_class.class_method_signature: MenuEntrySwapperPlugin.getSwapConfig(int itemId)
focal_class.full_signature: private Integer getSwapConfig(int itemId)
focal_class.identifier: getSwapConfig
focal_class.modifiers: private
focal_class.parameters: (int itemId)
focal_class.return: Integer
focal_class.signature: Integer getSwapConfig(int itemId)
focal_class.class_method_signature: MenuEntrySwapperPlugin.setSwapConfig(int itemId, int index)
focal_class.full_signature: private void setSwapConfig(int itemId, int index)
focal_class.identifier: setSwapConfig
focal_class.modifiers: private
focal_class.parameters: (int itemId, int index)
focal_class.return: void
focal_class.signature: void setSwapConfig(int itemId, int index)
focal_class.class_method_signature: MenuEntrySwapperPlugin.unsetSwapConfig(int itemId)
focal_class.full_signature: private void unsetSwapConfig(int itemId)
focal_class.identifier: unsetSwapConfig
focal_class.modifiers: private
focal_class.parameters: (int itemId)
focal_class.return: void
focal_class.signature: void unsetSwapConfig(int itemId)
focal_class.class_method_signature: MenuEntrySwapperPlugin.enableCustomization()
focal_class.full_signature: private void enableCustomization()
focal_class.identifier: enableCustomization
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void enableCustomization()
focal_class.class_method_signature: MenuEntrySwapperPlugin.disableCustomization()
focal_class.full_signature: private void disableCustomization()
focal_class.identifier: disableCustomization
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void disableCustomization()
focal_class.class_method_signature: MenuEntrySwapperPlugin.onWidgetMenuOptionClicked(WidgetMenuOptionClicked event)
focal_class.full_signature: @Subscribe public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event)
focal_class.identifier: onWidgetMenuOptionClicked
focal_class.modifiers: @Subscribe public
focal_class.parameters: (WidgetMenuOptionClicked event)
focal_class.return: void
focal_class.signature: void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onMenuOpened(MenuOpened event)
focal_class.full_signature: @Subscribe public void onMenuOpened(MenuOpened event)
focal_class.identifier: onMenuOpened
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuOpened event)
focal_class.return: void
focal_class.signature: void onMenuOpened(MenuOpened event)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
focal_class.full_signature: @Subscribe public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
focal_class.identifier: onMenuEntryAdded
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuEntryAdded menuEntryAdded)
focal_class.return: void
focal_class.signature: void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
focal_class.class_method_signature: MenuEntrySwapperPlugin.bankModeSwap(int entryTypeId, int entryIdentifier)
focal_class.full_signature: private void bankModeSwap(int entryTypeId, int entryIdentifier)
focal_class.identifier: bankModeSwap
focal_class.modifiers: private
focal_class.parameters: (int entryTypeId, int entryIdentifier)
focal_class.return: void
focal_class.signature: void bankModeSwap(int entryTypeId, int entryIdentifier)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onMenuOptionClicked(MenuOptionClicked event)
focal_class.full_signature: @Subscribe public void onMenuOptionClicked(MenuOptionClicked event)
focal_class.identifier: onMenuOptionClicked
focal_class.modifiers: @Subscribe public
focal_class.parameters: (MenuOptionClicked event)
focal_class.return: void
focal_class.signature: void onMenuOptionClicked(MenuOptionClicked event)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swapMenuEntry(int index, MenuEntry menuEntry)
focal_class.full_signature: private void swapMenuEntry(int index, MenuEntry menuEntry)
focal_class.identifier: swapMenuEntry
focal_class.modifiers: private
focal_class.parameters: (int index, MenuEntry menuEntry)
focal_class.return: void
focal_class.signature: void swapMenuEntry(int index, MenuEntry menuEntry)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onClientTick(ClientTick clientTick)
focal_class.full_signature: @Subscribe public void onClientTick(ClientTick clientTick)
focal_class.identifier: onClientTick
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ClientTick clientTick)
focal_class.return: void
focal_class.signature: void onClientTick(ClientTick clientTick)
focal_class.class_method_signature: MenuEntrySwapperPlugin.onPostItemComposition(PostItemComposition event)
focal_class.full_signature: @Subscribe public void onPostItemComposition(PostItemComposition event)
focal_class.identifier: onPostItemComposition
focal_class.modifiers: @Subscribe public
focal_class.parameters: (PostItemComposition event)
focal_class.return: void
focal_class.signature: void onPostItemComposition(PostItemComposition event)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swap(String option, String target, int index, boolean strict)
focal_class.full_signature: private boolean swap(String option, String target, int index, boolean strict)
focal_class.identifier: swap
focal_class.modifiers: private
focal_class.parameters: (String option, String target, int index, boolean strict)
focal_class.return: boolean
focal_class.signature: boolean swap(String option, String target, int index, boolean strict)
focal_class.class_method_signature: MenuEntrySwapperPlugin.findIndex(MenuEntry[] entries, int limit, String option, String target, boolean strict)
focal_class.full_signature: private int findIndex(MenuEntry[] entries, int limit, String option, String target, boolean strict)
focal_class.identifier: findIndex
focal_class.modifiers: private
focal_class.parameters: (MenuEntry[] entries, int limit, String option, String target, boolean strict)
focal_class.return: int
focal_class.signature: int findIndex(MenuEntry[] entries, int limit, String option, String target, boolean strict)
focal_class.class_method_signature: MenuEntrySwapperPlugin.swap(ArrayListMultimap<String, Integer> optionIndexes, MenuEntry[] entries, int index1, int index2)
focal_class.full_signature: private void swap(ArrayListMultimap<String, Integer> optionIndexes, MenuEntry[] entries, int index1, int index2)
focal_class.identifier: swap
focal_class.modifiers: private
focal_class.parameters: (ArrayListMultimap<String, Integer> optionIndexes, MenuEntry[] entries, int index1, int index2)
focal_class.return: void
focal_class.signature: void swap(ArrayListMultimap<String, Integer> optionIndexes, MenuEntry[] entries, int index1, int index2)
focal_class.class_method_signature: MenuEntrySwapperPlugin.sortedInsert(List<T> list, T value)
focal_class.full_signature: private static void sortedInsert(List<T> list, T value)
focal_class.identifier: sortedInsert
focal_class.modifiers: private static
focal_class.parameters: (List<T> list, T value)
focal_class.return: void
focal_class.signature: void sortedInsert(List<T> list, T value)
focal_class.class_method_signature: MenuEntrySwapperPlugin.removeShiftClickCustomizationMenus()
focal_class.full_signature: private void removeShiftClickCustomizationMenus()
focal_class.identifier: removeShiftClickCustomizationMenus
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void removeShiftClickCustomizationMenus()
focal_class.class_method_signature: MenuEntrySwapperPlugin.refreshShiftClickCustomizationMenus()
focal_class.full_signature: private void refreshShiftClickCustomizationMenus()
focal_class.identifier: refreshShiftClickCustomizationMenus
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void refreshShiftClickCustomizationMenus()
focal_class.class_method_signature: MenuEntrySwapperPlugin.shiftModifier()
focal_class.full_signature: private boolean shiftModifier()
focal_class.identifier: shiftModifier
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean shiftModifier()
focal_class.superclass: extends Plugin
focal_method.body: @Subscribe
  	public void onClientTick(ClientTick clientTick)
  	{
  		// The menu is not rebuilt when it is open, so don't swap or else it will
  		// repeatedly swap entries
  		if (client.getGameState() != GameState.LOGGED_IN || client.isMenuOpen())
  		{
  			return;
  		}
  
  		MenuEntry[] menuEntries = client.getMenuEntries();
  
  		// Build option map for quick lookup in findIndex
  		int idx = 0;
  		optionIndexes.clear();
  		for (MenuEntry entry : menuEntries)
  		{
  			String option = Text.removeTags(entry.getOption()).toLowerCase();
  			optionIndexes.put(option, idx++);
  		}
  
  		// Perform swaps
  		idx = 0;
  		for (MenuEntry entry : menuEntries)
  		{
  			swapMenuEntry(idx++, entry);
  		}
  	}
focal_method.class_method_signature: MenuEntrySwapperPlugin.onClientTick(ClientTick clientTick)
focal_method.full_signature: @Subscribe public void onClientTick(ClientTick clientTick)
focal_method.identifier: onClientTick
focal_method.invocations: getGameState isMenuOpen getMenuEntries clear toLowerCase removeTags getOption put swapMenuEntry
focal_method.modifiers: @Subscribe public
focal_method.parameters: (ClientTick clientTick)
focal_method.return: void
focal_method.signature: void onClientTick(ClientTick clientTick)