diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index d2a72afedb..229eec62c8 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -296,6 +296,7 @@ public class RuneLite public void shutdown() { + pluginManager.stopCorePlugins(); clientSessionManager.shutdown(); discordService.close(); executorService.shutdown(); 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 5b0fc62e46..fd7cec8c81 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 @@ -214,6 +214,23 @@ public class PluginManager } } + public void stopCorePlugins() + { + List 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 scanAndInstantiate(ClassLoader classLoader, String packageName) throws IOException { MutableGraph> graph = GraphBuilder