Merge pull request #7426 from deathbeam/shutdown-plugins-on-close

Shutdown plugins on window close
This commit is contained in:
Tomas Slusny
2019-01-19 12:07:43 +00:00
committed by GitHub
2 changed files with 22 additions and 2 deletions

View File

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

View File

@@ -216,10 +216,16 @@ public class SwingUtil
if (result == JOptionPane.OK_OPTION) if (result == JOptionPane.OK_OPTION)
{ {
callback.run(); frame.dispose();
System.exit(0);
} }
} }
@Override
public void windowClosed(WindowEvent event)
{
callback.run();
System.exit(0);
}
}); });
} }