From 1f5ca21546fbc8b015e12fac620ebaa39cb66520 Mon Sep 17 00:00:00 2001 From: EliasLahham Date: Sun, 3 Apr 2022 14:35:41 -0400 Subject: [PATCH] menu entry swapper: add house teleport swap This used to use the shift-click teleport spells option, but now that there are 4 different teleport spells, a dedicated swap config is best. Co-authored-by: Adam --- .../MenuEntrySwapperConfig.java | 34 +++++++++++++++++-- .../MenuEntrySwapperPlugin.java | 12 ++++++- 2 files changed, 42 insertions(+), 4 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 a2876384c0..b88af6f997 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 @@ -24,6 +24,7 @@ */ package net.runelite.client.plugins.menuentryswapper; +import lombok.RequiredArgsConstructor; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; @@ -612,10 +613,38 @@ public interface MenuEntrySwapperConfig extends Config return true; } + @RequiredArgsConstructor + enum HouseTeleportMode + { + CAST("Cast"), + OUTSIDE("Outside"), + GROUP_CHOOSE("Group: Choose"), + GROUP_PREVIOUS("Group: Previous"); + + private final String name; + + @Override + public String toString() + { + return name; + } + } + + @ConfigItem( + keyName = "swapHouseTeleportSpell", + name = "House teleport", + description = "Swap house teleport spell to a different destination on shift", + section = uiSection + ) + default HouseTeleportMode swapHouseTeleportSpell() + { + return HouseTeleportMode.OUTSIDE; + } + @ConfigItem( keyName = "swapTeleportSpell", name = "Shift-click teleport spells", - description = "Swap teleport spells that have a second destination on shift", + description = "Swap teleport spells that have a second destination, except for teleport to house, on shift", section = uiSection ) default boolean swapTeleportSpell() @@ -659,8 +688,7 @@ public interface MenuEntrySwapperConfig extends Config @ConfigItem( keyName = "swapGEAbort", name = "GE Abort", - description = "Swap abort offer on Grand Exchange offers when shift-clicking" - , + description = "Swap abort offer on Grand Exchange offers when shift-clicking", section = uiSection ) default boolean swapGEAbort() 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 032773a05b..c91cb7068f 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 @@ -423,7 +423,11 @@ public class MenuEntrySwapperPlugin extends Plugin swapTeleport("varrock teleport", "grand exchange"); swapTeleport("camelot teleport", "seers'"); swapTeleport("watchtower teleport", "yanille"); - swapTeleport("teleport to house", "outside"); + + swapHouseTeleport("cast", () -> shiftModifier() && config.swapHouseTeleportSpell() == MenuEntrySwapperConfig.HouseTeleportMode.CAST); + swapHouseTeleport("outside", () -> shiftModifier() && config.swapHouseTeleportSpell() == MenuEntrySwapperConfig.HouseTeleportMode.OUTSIDE); + swapHouseTeleport("group: choose", () -> shiftModifier() && config.swapHouseTeleportSpell() == MenuEntrySwapperConfig.HouseTeleportMode.GROUP_CHOOSE); + swapHouseTeleport("group: previous", () -> shiftModifier() && config.swapHouseTeleportSpell() == MenuEntrySwapperConfig.HouseTeleportMode.GROUP_PREVIOUS); swap("eat", "guzzle", config::swapRockCake); @@ -459,6 +463,12 @@ public class MenuEntrySwapperPlugin extends Plugin swap(swappedOption, option, "cast", () -> shiftModifier() && config.swapTeleportSpell()); } + private void swapHouseTeleport(String swappedOption, Supplier enabled) + { + swap("cast", "teleport to house", swappedOption, enabled); + swap("outside", "teleport to house", swappedOption, enabled); + } + @Subscribe public void onConfigChanged(ConfigChanged event) {