From 5a5c1ab307a89c273b4e48a5ad673135d622f933 Mon Sep 17 00:00:00 2001 From: Ganom Date: Wed, 29 Apr 2020 10:45:18 -0400 Subject: [PATCH] pluginmanager: allow Plugins to be instantized if they're a plugin regardless of superclass. --- .../client/plugins/ExternalPluginManager.java | 14 ++++++++------ .../net/runelite/client/plugins/PluginManager.java | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java index 1e3d7bf99d..1fae6b9fe2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java @@ -643,15 +643,17 @@ public class ExternalPluginManager { if (pluginDescriptor == null) { - if (clazz.getSuperclass() == Plugin.class) + if (Plugin.class.isAssignableFrom(clazz)) { - log.warn("Class {} is a plugin, but has no plugin descriptor", clazz); - continue; + log.warn("Class {} is a plugin, but has no plugin descriptor", + clazz); } + continue; } - else if (clazz.getSuperclass() != Plugin.class) + else if (!Plugin.class.isAssignableFrom(clazz)) { - log.warn("Class {} has plugin descriptor, but is not a plugin", clazz); + log.warn("Class {} has plugin descriptor, but is not a plugin", + clazz); continue; } else if (!pluginTypes.contains(pluginDescriptor.type())) @@ -1084,7 +1086,7 @@ public class ExternalPluginManager String lastVersion = lastRelease.version; try { - + RuneLiteSplashScreen.stage(.59, "Updating " + plugin.id + " to version " + lastVersion); boolean updated = updateManager.updatePlugin(plugin.id, lastVersion); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 1f519fa4f4..82d9a2094d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -356,7 +356,7 @@ public class PluginManager if (pluginDescriptor == null) { - if (clazz.getSuperclass() == Plugin.class) + if (Plugin.class.isAssignableFrom(clazz) && clazz != Plugin.class) { log.warn("Class {} is a plugin, but has no plugin descriptor", clazz); @@ -364,7 +364,7 @@ public class PluginManager continue; } - if (clazz.getSuperclass() != Plugin.class) + if (!Plugin.class.isAssignableFrom(clazz)) { log.warn("Class {} has plugin descriptor, but is not a plugin", clazz);