From 2e21f1e56abda36b788622356b7b4c5c3eb89741 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G1DDN84\\Denni" Date: Fri, 9 Mar 2018 07:53:40 +0100 Subject: [PATCH] restore menu entries after open/close widget --- .../net/runelite/mixins/RSClientMixin.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index fc813a5274..6ebf1db531 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -53,6 +53,7 @@ import net.runelite.api.Setting; import net.runelite.api.Skill; import net.runelite.api.SpritePixels; import net.runelite.api.Varbits; +import net.runelite.api.WidgetNode; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.GameStateChanged; @@ -61,9 +62,11 @@ import net.runelite.api.events.MapRegionChanged; import net.runelite.api.events.PlayerMenuOptionsChanged; import net.runelite.api.events.ResizeableChanged; import net.runelite.api.events.VarbitChanged; +import net.runelite.api.mixins.Copy; import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; +import net.runelite.api.mixins.Replace; import net.runelite.api.mixins.Shadow; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; @@ -477,6 +480,35 @@ public abstract class RSClientMixin implements RSClient } } + @Copy("closeWidget") + public static void rs$closeWidget(WidgetNode widget, boolean b) + { + throw new RuntimeException(); + } + + @Replace("closeWidget") + public static void rl$closeWidget(WidgetNode widget, boolean b) + { + MenuEntry[] entries = client.getMenuEntries(); + rs$closeWidget(widget, b); + client.setMenuEntries(entries); + } + + @Copy("openWidget") + public static WidgetNode rs$openWidget(int parentHash, int widgetId, int autoClose) + { + throw new RuntimeException(); + } + + @Replace("openWidget") + public static WidgetNode rl$openWidget(int parentHash, int widgetId, int autoClose) + { + MenuEntry[] entries = client.getMenuEntries(); + WidgetNode widgetNode = rs$openWidget(parentHash, widgetId, autoClose); + client.setMenuEntries(entries); + return widgetNode; + } + @FieldHook("skillExperiences") @Inject public static void experiencedChanged(int idx)