From 27ddad537f737926d3b467319985b17ecb80b9c0 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sat, 8 Jun 2019 22:44:03 +0200 Subject: [PATCH] Only one ready event allowed --- .../java/buttondevteam/discordplugin/DiscordPlugin.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java index b5a0efc..ddfc13d 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java @@ -130,6 +130,7 @@ public class DiscordPlugin extends ButtonPlugin { .take(size) // Take only the first `size` GuildCreateEvent(s) to be received .collectList()) // Take all received GuildCreateEvents and make it a List .subscribe(this::handleReady); /* All guilds have been received, client is fully connected */ + //dc.getEventDispatcher().on(DisconnectEvent.class); dc.login().subscribe(); } catch (Exception e) { e.printStackTrace(); @@ -141,6 +142,10 @@ public class DiscordPlugin extends ButtonPlugin { private void handleReady(List event) { try { + if (mainServer != null) { //This is not the first ready event + getLogger().info("Ready event already handled"); + return; + } mainServer = mainServer().get().orElse(null); //Shouldn't change afterwards if (mainServer == null) { if (event.size() == 0) { @@ -265,6 +270,7 @@ public class DiscordPlugin extends ButtonPlugin { dc.updatePresence(Presence.idle(Activity.playing("Chromacraft"))).block(); //No longer using the same account for testing timings.printElapsed("Logging out..."); dc.logout().block(); + mainServer = null; //Allow ReadyEvent again //Configs are emptied so channels and servers are fetched again } catch (Exception e) { TBMCCoreAPI.SendException("An error occured while disabling DiscordPlugin!", e);