From f50c657122e1b4158ce2f07a5534d05200e9b84c Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 12 Feb 2018 11:57:02 -0500 Subject: [PATCH] runelite-client: shut down discord service when closed It is preventing jvm termination otherwise for some reason --- .../src/main/java/net/runelite/client/RuneLite.java | 7 ++++++- .../src/main/java/net/runelite/client/ui/ClientUI.java | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) 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 342b70e8a1..ff86d850e2 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -131,7 +131,7 @@ public class RuneLite } // Load swing UI - SwingUtilities.invokeAndWait(() -> setGui(ClientUI.create(properties, client))); + SwingUtilities.invokeAndWait(() -> setGui(ClientUI.create(this, properties, client))); // Initialize Discord service discordService.init(); @@ -182,6 +182,11 @@ public class RuneLite eventBus.post(new ClientUILoaded()); } + public void shutdown() + { + discordService.close(); + } + public void setGui(ClientUI gui) { this.gui = gui; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index d618480fe2..4e356aa8d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -61,6 +61,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.ConfigChanged; +import net.runelite.client.RuneLite; import net.runelite.client.RuneLiteProperties; import org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel; import org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities; @@ -75,6 +76,7 @@ public class ClientUI extends JFrame @Getter private TrayIcon trayIcon; + private final RuneLite runelite; private final Applet client; private final RuneLiteProperties properties; private JPanel navContainer; @@ -100,7 +102,7 @@ public class ClientUI extends JFrame ICON = icon; } - public static ClientUI create(RuneLiteProperties properties, Applet client) + public static ClientUI create(RuneLite runelite, RuneLiteProperties properties, Applet client) { // Force heavy-weight popups/tooltips. // Prevents them from being obscured by the game applet. @@ -128,11 +130,12 @@ public class ClientUI extends JFrame // Use custom UI font setUIFont(new FontUIResource(FontManager.getRunescapeFont())); - return new ClientUI(properties, client); + return new ClientUI(runelite, properties, client); } - private ClientUI(RuneLiteProperties properties, Applet client) + private ClientUI(RuneLite runelite, RuneLiteProperties properties, Applet client) { + this.runelite = runelite; this.properties = properties; this.client = client; this.trayIcon = setupTrayIcon(); @@ -385,6 +388,7 @@ public class ClientUI extends JFrame if (result == JOptionPane.OK_OPTION) { + runelite.shutdown(); System.exit(0); } }