diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index db8ab0f106..18dedd0c20 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -65,6 +65,19 @@ public class DiscordPlugin extends Plugin return configManager.getConfig(DiscordConfig.class); } + @Override + protected void startUp() throws Exception + { + updateGameStatus(client.getGameState(), true); + } + + @Override + protected void shutDown() throws Exception + { + discordService.clearPresence(); + discordState.reset(); + } + @Subscribe public void onGameStateChanged(GameStateChanged event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java index 630b2c4097..a6365bed66 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java @@ -41,6 +41,16 @@ public class DiscordState private DiscordPresence lastPresence; private boolean needsFlush; + void reset() + { + lastQueue.clear(); + lastEvent = null; + startOfAction = null; + lastAction = null; + lastPresence = null; + needsFlush = false; + } + void flushEvent(DiscordService discordService) { if (lastPresence != null && needsFlush)