From eba4f92e45b1e2d0e144e358a547b9592857428a Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Wed, 25 Dec 2024 08:08:01 +0700 Subject: [PATCH] feat: stop/restart reason --- build-number.txt | 2 +- src/main/java/me/chayapak1/chomens_bot/Main.java | 14 +++++++++++--- .../chomens_bot/commands/RestartCommand.java | 8 ++++---- .../chomens_bot/commands/StopCommand.java | 8 ++++---- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/build-number.txt b/build-number.txt index 1f5e025c..254aba48 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -1295 \ No newline at end of file +1297 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/Main.java b/src/main/java/me/chayapak1/chomens_bot/Main.java index 90ef8c42..62a2f43f 100644 --- a/src/main/java/me/chayapak1/chomens_bot/Main.java +++ b/src/main/java/me/chayapak1/chomens_bot/Main.java @@ -139,11 +139,19 @@ public class Main { } // most of these are stolen from HBot - public static void stop (int exitCode) { + public static void stop (int exitCode) { stop(exitCode, null, null); } + public static void stop (int exitCode, String reason) { stop(exitCode, reason, null); } + public static void stop (int exitCode, String reason, String type) { if (stopping) return; stopping = true; + final String stoppingMessage = String.format( + "%s (%s)", + type != null ? type : "Stopping..", + reason != null ? reason : "No reason given" + ); + executor.shutdown(); executorService.shutdown(); @@ -171,7 +179,7 @@ public class Main { if (discordEnabled) { final String channelId = bot.discord.servers.get(bot.host + ":" + bot.port); - final MessageCreateAction messageAction = bot.discord.sendMessageInstantly("Stopping..", channelId, false); + final MessageCreateAction messageAction = bot.discord.sendMessageInstantly(stoppingMessage, channelId, false); final int finalBotIndex = botIndex; messageAction.queue( @@ -180,7 +188,7 @@ public class Main { ); } - if (ircEnabled) bot.irc.quit("Stopping.."); + if (ircEnabled) bot.irc.quit(stoppingMessage); bot.stop(); } catch (Exception ignored) {} diff --git a/src/main/java/me/chayapak1/chomens_bot/commands/RestartCommand.java b/src/main/java/me/chayapak1/chomens_bot/commands/RestartCommand.java index adbfc52e..d0365bd7 100644 --- a/src/main/java/me/chayapak1/chomens_bot/commands/RestartCommand.java +++ b/src/main/java/me/chayapak1/chomens_bot/commands/RestartCommand.java @@ -14,7 +14,7 @@ public class RestartCommand extends Command { super( "restart", "Gracefully restarts the bot", - new String[] { "" }, + new String[] { "[reason]" }, new String[] {}, TrustLevel.OWNER, false @@ -23,11 +23,11 @@ public class RestartCommand extends Command { @Override public Component execute(CommandContext context) throws CommandException { - context.checkOverloadArgs(0); - final Bot bot = context.bot; - Main.stop(1); + final String reason = context.getString(true, false); + + Main.stop(1, reason.isEmpty() ? null : reason, "Restarting.."); return Component.text("Restarting").color(ColorUtilities.getColorByString(bot.config.colorPalette.defaultColor)); } diff --git a/src/main/java/me/chayapak1/chomens_bot/commands/StopCommand.java b/src/main/java/me/chayapak1/chomens_bot/commands/StopCommand.java index 0c17a349..603d715c 100644 --- a/src/main/java/me/chayapak1/chomens_bot/commands/StopCommand.java +++ b/src/main/java/me/chayapak1/chomens_bot/commands/StopCommand.java @@ -14,7 +14,7 @@ public class StopCommand extends Command { super( "stop", "Gracefully stops the bot", - new String[] { "" }, + new String[] { "[reason]" }, new String[] {}, TrustLevel.OWNER, false @@ -23,11 +23,11 @@ public class StopCommand extends Command { @Override public Component execute(CommandContext context) throws CommandException { - context.checkOverloadArgs(0); - final Bot bot = context.bot; - Main.stop(0); + final String reason = context.getString(true, false); + + Main.stop(0, reason.isEmpty() ? null : reason); return Component.text("Stopping").color(ColorUtilities.getColorByString(bot.config.colorPalette.defaultColor)); }