Merge pull request #2500 from open-osrs/ext
externals: catch invalid plugintype exceptions
This commit is contained in:
@@ -119,6 +119,7 @@ public class ExternalPluginManager
|
|||||||
@Getter(AccessLevel.PUBLIC)
|
@Getter(AccessLevel.PUBLIC)
|
||||||
private UpdateManager updateManager;
|
private UpdateManager updateManager;
|
||||||
private Map<String, PluginInfo.PluginRelease> lastPluginRelease = new HashMap<>();
|
private Map<String, PluginInfo.PluginRelease> lastPluginRelease = new HashMap<>();
|
||||||
|
private Set<PluginType> pluginTypes = Set.of(PluginType.values());
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ExternalPluginManager(
|
public ExternalPluginManager(
|
||||||
@@ -638,17 +639,29 @@ public class ExternalPluginManager
|
|||||||
Class<? extends Plugin> clazz = plugin.getClass();
|
Class<? extends Plugin> clazz = plugin.getClass();
|
||||||
PluginDescriptor pluginDescriptor = clazz.getAnnotation(PluginDescriptor.class);
|
PluginDescriptor pluginDescriptor = clazz.getAnnotation(PluginDescriptor.class);
|
||||||
|
|
||||||
if (pluginDescriptor == null)
|
try
|
||||||
{
|
{
|
||||||
if (clazz.getSuperclass() == Plugin.class)
|
if (pluginDescriptor == null)
|
||||||
|
{
|
||||||
|
if (clazz.getSuperclass() == Plugin.class)
|
||||||
|
{
|
||||||
|
log.warn("Class {} is a plugin, but has no plugin descriptor", clazz);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (clazz.getSuperclass() != Plugin.class)
|
||||||
|
{
|
||||||
|
log.warn("Class {} has plugin descriptor, but is not a plugin", clazz);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (!pluginTypes.contains(pluginDescriptor.type()))
|
||||||
{
|
{
|
||||||
log.warn("Class {} is a plugin, but has no plugin descriptor", clazz);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (clazz.getSuperclass() != Plugin.class)
|
catch (EnumConstantNotPresentException e)
|
||||||
{
|
{
|
||||||
log.warn("Class {} has plugin descriptor, but is not a plugin", clazz);
|
log.warn("{} has an invalid plugin type of {}", clazz, e.getMessage());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user