pluginmanager: allow Plugins to be instantized if they're a plugin regardless of superclass.

This commit is contained in:
Ganom
2020-04-29 10:45:18 -04:00
parent 4df96086b5
commit 5a5c1ab307
2 changed files with 10 additions and 8 deletions

View File

@@ -643,15 +643,17 @@ public class ExternalPluginManager
{ {
if (pluginDescriptor == null) 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); log.warn("Class {} is a plugin, but has no plugin descriptor",
continue; 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; continue;
} }
else if (!pluginTypes.contains(pluginDescriptor.type())) else if (!pluginTypes.contains(pluginDescriptor.type()))
@@ -1084,7 +1086,7 @@ public class ExternalPluginManager
String lastVersion = lastRelease.version; String lastVersion = lastRelease.version;
try try
{ {
RuneLiteSplashScreen.stage(.59, "Updating " + plugin.id + " to version " + lastVersion); RuneLiteSplashScreen.stage(.59, "Updating " + plugin.id + " to version " + lastVersion);
boolean updated = updateManager.updatePlugin(plugin.id, lastVersion); boolean updated = updateManager.updatePlugin(plugin.id, lastVersion);

View File

@@ -356,7 +356,7 @@ public class PluginManager
if (pluginDescriptor == null) 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", log.warn("Class {} is a plugin, but has no plugin descriptor",
clazz); clazz);
@@ -364,7 +364,7 @@ public class PluginManager
continue; continue;
} }
if (clazz.getSuperclass() != Plugin.class) if (!Plugin.class.isAssignableFrom(clazz))
{ {
log.warn("Class {} has plugin descriptor, but is not a plugin", log.warn("Class {} has plugin descriptor, but is not a plugin",
clazz); clazz);