From 2681d395fc6f227a5928e1a0c3c943f6d892ebcf Mon Sep 17 00:00:00 2001 From: melkypie Date: Fri, 10 Jan 2020 19:58:05 -0500 Subject: [PATCH] menu swapper: check home portal swap target The swap was attemting to run on anything with the "enter" option, which conflicted with the quick-enter swap below it. Co-authored-by: Adam --- .../MenuEntrySwapperPlugin.java | 2 +- .../MenuEntrySwapperPluginTest.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) 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 865bb441b9..0830e3697f 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 @@ -498,7 +498,7 @@ public class MenuEntrySwapperPlugin extends Plugin { swap("harpoon", option, target, index); } - else if (config.swapHomePortal() != HouseMode.ENTER && option.equals("enter")) + else if (config.swapHomePortal() != HouseMode.ENTER && option.equals("enter") && target.equals("portal")) { switch (config.swapHomePortal()) { diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java index 19b101c931..f6e2bbe021 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java @@ -263,4 +263,35 @@ public class MenuEntrySwapperPluginTest menu("Cast", "Varrock Teleport", MenuAction.WIDGET_SECOND_OPTION), }, argumentCaptor.getValue()); } + + @Test + public void testTobDoor() + { + when(config.swapQuick()).thenReturn(true); + when(config.swapHomePortal()).thenReturn(HouseMode.HOME); + + //Quick-enter, Enter + entries = new MenuEntry[]{ + menu("Cancel", "", MenuAction.CANCEL), + menu("Examine", "Formidable Passage", MenuAction.EXAMINE_OBJECT), + menu("Walk here", "", MenuAction.WALK), + + menu("Quick-Enter", "Formidable Passage", MenuAction.GAME_OBJECT_SECOND_OPTION), + menu("Enter", "Formidable Passage", MenuAction.GAME_OBJECT_FIRST_OPTION), + }; + + menuEntrySwapperPlugin.onClientTick(new ClientTick()); + + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(MenuEntry[].class); + verify(client).setMenuEntries(argumentCaptor.capture()); + + assertArrayEquals(new MenuEntry[]{ + menu("Cancel", "", MenuAction.CANCEL), + menu("Examine", "Formidable Passage", MenuAction.EXAMINE_OBJECT), + menu("Walk here", "", MenuAction.WALK), + + menu("Enter", "Formidable Passage", MenuAction.GAME_OBJECT_FIRST_OPTION), + menu("Quick-Enter", "Formidable Passage", MenuAction.GAME_OBJECT_SECOND_OPTION), + }, argumentCaptor.getValue()); + } } \ No newline at end of file