From 313c4389a154d00214fb3b8cd623cce35a3b6440 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Sun, 8 Jun 2025 09:08:53 +0700 Subject: [PATCH] fix: EndCommand while cloop running deadlocks the executor causing the bot to not reconnect and bricks (absolute cinema) --- build-number.txt | 2 +- src/main/java/me/chayapak1/chomens_bot/Bot.java | 6 +++--- .../java/me/chayapak1/chomens_bot/commands/EndCommand.java | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/build-number.txt b/build-number.txt index 2a4d7e7f..257e3aa5 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -3439 \ No newline at end of file +3444 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/Bot.java b/src/main/java/me/chayapak1/chomens_bot/Bot.java index 7621841b..a59f1271 100644 --- a/src/main/java/me/chayapak1/chomens_bot/Bot.java +++ b/src/main/java/me/chayapak1/chomens_bot/Bot.java @@ -379,9 +379,9 @@ public class Bot extends SessionAdapter { final String stringMessage = ComponentUtilities.stringify(disconnectedEvent.getReason()); if ( - stringMessage.equals("Wait 5 seconds before connecting, thanks! :)") || - stringMessage.equals("You are logging in too fast, try again later.") || - stringMessage.equals("Connection throttled! Please wait before reconnecting.") + stringMessage.equals("Wait 5 seconds before connecting, thanks! :)") + || stringMessage.equals("You are logging in too fast, try again later.") + || stringMessage.equals("Connection throttled! Please wait before reconnecting.") ) reconnectDelay = 1000 * (5 + 2); // 2 seconds extra delay just in case executor.schedule(this::reconnect, reconnectDelay, TimeUnit.MILLISECONDS); diff --git a/src/main/java/me/chayapak1/chomens_bot/commands/EndCommand.java b/src/main/java/me/chayapak1/chomens_bot/commands/EndCommand.java index a0bea8ce..007745f1 100644 --- a/src/main/java/me/chayapak1/chomens_bot/commands/EndCommand.java +++ b/src/main/java/me/chayapak1/chomens_bot/commands/EndCommand.java @@ -24,7 +24,9 @@ public class EndCommand extends Command { final Bot bot = context.bot; - bot.session.disconnect(I18nUtilities.get("commands.end.disconnect_reason")); + bot.executorService.execute( + () -> bot.session.disconnect(I18nUtilities.get("commands.end.disconnect_reason")) + ); return null; }