Stop plugins on shutdown

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-07-30 14:16:43 +02:00
parent 69a6092eb7
commit 718dd36386
2 changed files with 18 additions and 0 deletions

View File

@@ -296,6 +296,7 @@ public class RuneLite
public void shutdown()
{
pluginManager.stopCorePlugins();
clientSessionManager.shutdown();
discordService.close();
executorService.shutdown();

View File

@@ -214,6 +214,23 @@ public class PluginManager
}
}
public void stopCorePlugins()
{
List<Plugin> scannedPlugins = new ArrayList<>(plugins);
for (Plugin plugin : scannedPlugins)
{
try
{
stopPlugin(plugin);
plugins.remove(plugin);
}
catch (PluginInstantiationException ex)
{
log.warn("Unable to stop plugin {}. {}", plugin.getClass().getSimpleName(), ex);
}
}
}
List<Plugin> scanAndInstantiate(ClassLoader classLoader, String packageName) throws IOException
{
MutableGraph<Class<? extends Plugin>> graph = GraphBuilder