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 06190a9a93..d8e0d6cad1 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -55,6 +55,8 @@ import net.runelite.client.game.ItemManager; import net.runelite.client.game.LootManager; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.menus.MenuManager; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginInstantiationException; import net.runelite.client.plugins.PluginManager; import net.runelite.client.rs.ClientUpdateCheckMode; import net.runelite.client.ui.ClientUI; @@ -293,6 +295,18 @@ public class RuneLite { clientSessionManager.shutdown(); discordService.close(); + + for (final Plugin plugin : pluginManager.getPlugins()) + { + try + { + pluginManager.stopPlugin(plugin); + } + catch (PluginInstantiationException e) + { + log.warn("Failed to gracefully close plugin", e); + } + } } @VisibleForTesting