diff --git a/build.gradle b/build.gradle index 0b5a631..684d86a 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ dependencies { runtime group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.2' // Discord Gateway API - compile group: 'com.github.austinv11', name: 'Discord4j', version: '2.4.9' + compile group: 'com.github.austinv11', name: 'Discord4j', version: '2.5.1' // Util compile group: 'net.jodah', name: 'failsafe', version: '0.8.3' diff --git a/src/main/java/net/pingex/dcf/core/CoreEventsHandler.java b/src/main/java/net/pingex/dcf/core/CoreEventsHandler.java index da931e2..bf64843 100644 --- a/src/main/java/net/pingex/dcf/core/CoreEventsHandler.java +++ b/src/main/java/net/pingex/dcf/core/CoreEventsHandler.java @@ -2,7 +2,7 @@ package net.pingex.dcf.core; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import sx.blah.discord.api.EventSubscriber; +import sx.blah.discord.api.events.EventSubscriber; import sx.blah.discord.handle.impl.events.*; /** @@ -44,8 +44,13 @@ public class CoreEventsHandler @EventSubscriber public void onDiscordDisconnected(DiscordDisconnectedEvent event) { - LOGGER.warn("Discord connection with user #{} lost ({}). Reconnecting", event.getClient().getOurUser().getID(), event.getReason()); - GatewayConnectionsManager.getInstance().reconnect(event.getClient()); + LOGGER.warn("Discord connection with user #{} lost ({}).", event.getClient().getOurUser().getID(), event.getReason()); + } + + @EventSubscriber + public void onDiscordReconnected(DiscordReconnectedEvent event) + { + LOGGER.info("Gateway connection reconnected (user #{}).", event.getClient().getOurUser().getID()); } @EventSubscriber @@ -69,7 +74,7 @@ public class CoreEventsHandler @EventSubscriber public void onGuildUnavailable(GuildUnavailableEvent event) { - LOGGER.warn("Guild #{} is unavailable.", event.getGuild().getID()); + LOGGER.warn("Guild #{} is unavailable.", event.getGuildID()); } @EventSubscriber diff --git a/src/main/java/net/pingex/dcf/core/GatewayConnectionsManager.java b/src/main/java/net/pingex/dcf/core/GatewayConnectionsManager.java index 9a1f0cc..adfebc4 100644 --- a/src/main/java/net/pingex/dcf/core/GatewayConnectionsManager.java +++ b/src/main/java/net/pingex/dcf/core/GatewayConnectionsManager.java @@ -63,7 +63,7 @@ public class GatewayConnectionsManager public void registerConnection(ClientBuilder builder) { LOGGER.info("Registering new connection"); - + builder.withReconnects(); // Makes the connections auto-reconnects on dropped connection. try { IDiscordClient builtConnection = builder.login(); diff --git a/src/main/java/net/pingex/dcf/util/DiscordInteractionsUtil.java b/src/main/java/net/pingex/dcf/util/DiscordInteractionsUtil.java index 8c52158..d561b09 100644 --- a/src/main/java/net/pingex/dcf/util/DiscordInteractionsUtil.java +++ b/src/main/java/net/pingex/dcf/util/DiscordInteractionsUtil.java @@ -7,8 +7,8 @@ import sx.blah.discord.api.IDiscordClient; import sx.blah.discord.handle.obj.IChannel; import sx.blah.discord.handle.obj.IMessage; import sx.blah.discord.util.DiscordException; -import sx.blah.discord.util.HTTP429Exception; import sx.blah.discord.util.MissingPermissionsException; +import sx.blah.discord.util.RateLimitException; import java.util.Optional; import java.util.concurrent.TimeUnit; @@ -36,7 +36,7 @@ public class DiscordInteractionsUtil * Retry policy for sending a message */ private static final RetryPolicy MESSAGE_RETRY_POLICY = new RetryPolicy() - .retryOn(HTTP429Exception.class, DiscordException.class) + .retryOn(RateLimitException.class, DiscordException.class) .withDelay(GW_RETRY_DELAY, TimeUnit.SECONDS) .withMaxRetries(MAX_GW_RETRIES) .abortOn(MissingPermissionsException.class); @@ -72,7 +72,7 @@ public class DiscordInteractionsUtil * Policy for a gateway disconnection */ private static final RetryPolicy GW_LOGOUT_POLICY = new RetryPolicy() - .retryOn(HTTP429Exception.class, DiscordException.class) + .retryOn(RateLimitException.class, DiscordException.class) .withDelay(GW_RETRY_DELAY, TimeUnit.SECONDS) .withMaxRetries(MAX_GW_RETRIES);