From e9e9775ace250884c72a13b0b5d2a472bb515f43 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Mon, 26 Sep 2022 21:06:18 -0500 Subject: [PATCH 1/2] fix annoying bug with input QOL --- plugin-playground/src/main/kotlin/BasicInputQOL/plugin.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-playground/src/main/kotlin/BasicInputQOL/plugin.kt b/plugin-playground/src/main/kotlin/BasicInputQOL/plugin.kt index 526a126..dbb80bb 100644 --- a/plugin-playground/src/main/kotlin/BasicInputQOL/plugin.kt +++ b/plugin-playground/src/main/kotlin/BasicInputQOL/plugin.kt @@ -90,7 +90,7 @@ class plugin : Plugin() { override fun mouseClicked(e: MouseEvent?) { e ?: return - val width = API.GetWindowDimensions().width; +/* val width = API.GetWindowDimensions().width; val compassBordersX = intArrayOf(width - 165, width - 125) val compassBordersY = intArrayOf(0, 45) @@ -101,7 +101,7 @@ class plugin : Plugin() { { API.SetCameraPitch(defaultCameraPYZ.first) API.SetCameraYaw(defaultCameraPYZ.second) - } + }*/ } override fun mousePressed(e: MouseEvent?) { From 50d43b0a2f644823358eedc3b8b8e0991bee0b39 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Fri, 2 Dec 2022 07:47:29 -0600 Subject: [PATCH 2/2] Made plugins reload when display mode changes --- .../src/main/java/plugin/PluginRepository.java | 17 +++++++++++++++++ client/src/main/java/plugin/api/API.java | 6 ++++++ client/src/main/java/rt4/DisplayMode.java | 2 ++ 3 files changed, 25 insertions(+) diff --git a/client/src/main/java/plugin/PluginRepository.java b/client/src/main/java/plugin/PluginRepository.java index 3a5293f..9017906 100644 --- a/client/src/main/java/plugin/PluginRepository.java +++ b/client/src/main/java/plugin/PluginRepository.java @@ -5,6 +5,10 @@ import plugin.api.MiniMenuEntry; import plugin.api.MiniMenuType; import rt4.*; +import java.awt.event.KeyAdapter; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseListener; +import java.awt.event.MouseWheelListener; import java.io.*; import java.net.URL; import java.net.URLClassLoader; @@ -29,6 +33,19 @@ public class PluginRepository { public static int lastMiniMenu; public static void reloadPlugins() { + for (KeyAdapter k : API.registeredKeyListeners) { + GameShell.canvas.removeKeyListener(k); + } + for (MouseAdapter m : API.registeredMouseListeners) { + GameShell.canvas.removeMouseListener(m); + GameShell.canvas.removeMouseMotionListener(m); + } + for (MouseWheelListener mw : API.registeredWheelListeners) { + GameShell.canvas.removeMouseWheelListener(mw); + } + API.registeredWheelListeners.clear(); + API.registeredMouseListeners.clear(); + API.registeredKeyListeners.clear(); loadedPlugins.clear(); Init(); } diff --git a/client/src/main/java/plugin/api/API.java b/client/src/main/java/plugin/api/API.java index 3b1cebd..58c414e 100644 --- a/client/src/main/java/plugin/api/API.java +++ b/client/src/main/java/plugin/api/API.java @@ -18,6 +18,9 @@ import static rt4.MathUtils.clamp; public class API { public static Runnable[] miniMenuCustomActions = new Runnable[10]; public static int customMiniMenuIndex = 0; + public static ArrayList registeredKeyListeners = new ArrayList<>(); + public static ArrayList registeredMouseListeners = new ArrayList<>(); + public static ArrayList registeredWheelListeners = new ArrayList<>(); public static void DrawText(FontType fontType, FontColor color, TextModifier mod, String text, int screenX, int screenY) { JagString js = JagString.of(text); @@ -127,14 +130,17 @@ public class API { public static void AddMouseListener(MouseAdapter m) { GameShell.canvas.addMouseListener(m); GameShell.canvas.addMouseMotionListener(m); + registeredMouseListeners.add(m); } public static void AddMouseWheelListener(MouseWheelListener mw) { GameShell.canvas.addMouseWheelListener(mw); + registeredWheelListeners.add(mw); } public static void AddKeyboardListener(KeyAdapter k) { GameShell.canvas.addKeyListener(k); + registeredKeyListeners.add(k); } public static void SetCameraYaw(double targetYaw) { diff --git a/client/src/main/java/rt4/DisplayMode.java b/client/src/main/java/rt4/DisplayMode.java index 06cfcb9..19f72fd 100644 --- a/client/src/main/java/rt4/DisplayMode.java +++ b/client/src/main/java/rt4/DisplayMode.java @@ -4,6 +4,7 @@ import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; +import plugin.PluginRepository; import java.awt.*; @@ -235,6 +236,7 @@ public final class DisplayMode { InterfaceList.aBooleanArray100[local466] = true; } GameShell.fullRedraw = true; + PluginRepository.reloadPlugins(); } @OriginalMember(owner = "client!ab", name = "c", descriptor = "(B)[Lclient!od;")