From 7090f66b98b6588ee918522f2f208ae50e9c9f38 Mon Sep 17 00:00:00 2001 From: chsami Date: Sun, 5 Oct 2025 12:58:59 +0200 Subject: [PATCH 1/3] fix: avoid crashing when incompatible plugin is loaded --- runelite-client/pom.xml | 2 +- .../microbot/externalplugins/MicrobotPluginClassLoader.java | 4 +++- .../microbot/externalplugins/MicrobotPluginManager.java | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index e776bd10d79..59a28a818fd 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -41,7 +41,7 @@ nogit false false - 2.0.18.1 + 2.0.19 nogit diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java index a1251cd56c4..732cca33713 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java @@ -18,10 +18,12 @@ public class MicrobotPluginClassLoader extends URLClassLoader implements Reflect @Setter private MethodHandles.Lookup lookup; - private final ClassLoader parent; + private final File jarFile; + private final ClassLoader parent; public MicrobotPluginClassLoader(File jarFile, ClassLoader parent) throws IOException { super(new URL[]{jarFile.toURI().toURL()}, null); + this.jarFile = jarFile; this.parent = parent; ReflectUtil.installLookupHelper(this); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java index 354bf9bb0e0..b0d04472812 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java @@ -316,6 +316,8 @@ private void loadSideLoadPlugin(String internalName) { plugins.add(clazz); } catch (ClassNotFoundException e) { log.trace("Class not found during sideloading: {}", classInfo.getName(), e); + } catch(Exception e) { + log.error("Incompatible plugin found: " + internalName); } } loadPlugins(plugins, null); @@ -831,6 +833,8 @@ private void refresh() { pluginClasses.add(clazz); } catch (ClassNotFoundException e) { log.trace("Class not found during plugin loading: {}", classInfo.getName(), e); + } catch(Exception e) { + log.error("Incompatible plugin found: " + pluginName); } } From 249f105dc9630c6a1c151161e4977812cb827f2e Mon Sep 17 00:00:00 2001 From: chsami Date: Sun, 5 Oct 2025 13:03:18 +0200 Subject: [PATCH 2/3] fix: avoid crashing when incompatible plugin is loaded --- .../microbot/externalplugins/MicrobotPluginManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java index b0d04472812..7104311fc18 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginManager.java @@ -316,7 +316,7 @@ private void loadSideLoadPlugin(String internalName) { plugins.add(clazz); } catch (ClassNotFoundException e) { log.trace("Class not found during sideloading: {}", classInfo.getName(), e); - } catch(Exception e) { + } catch(Throwable t) { log.error("Incompatible plugin found: " + internalName); } } @@ -833,7 +833,7 @@ private void refresh() { pluginClasses.add(clazz); } catch (ClassNotFoundException e) { log.trace("Class not found during plugin loading: {}", classInfo.getName(), e); - } catch(Exception e) { + } catch(Throwable t) { log.error("Incompatible plugin found: " + pluginName); } } From 3e1a098b68d01aa7f2ba06388d034b86840b3290 Mon Sep 17 00:00:00 2001 From: chsami Date: Sun, 5 Oct 2025 13:07:03 +0200 Subject: [PATCH 3/3] chore: cleanup --- .../microbot/externalplugins/MicrobotPluginClassLoader.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java index 732cca33713..b06224ef424 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/externalplugins/MicrobotPluginClassLoader.java @@ -18,12 +18,10 @@ public class MicrobotPluginClassLoader extends URLClassLoader implements Reflect @Setter private MethodHandles.Lookup lookup; - private final File jarFile; private final ClassLoader parent; public MicrobotPluginClassLoader(File jarFile, ClassLoader parent) throws IOException { super(new URL[]{jarFile.toURI().toURL()}, null); - this.jarFile = jarFile; this.parent = parent; ReflectUtil.installLookupHelper(this); }