From 6ec2b17fead1b9771489a33898c88099f51cb48b Mon Sep 17 00:00:00 2001 From: Xujiayao Date: Wed, 18 Mar 2026 20:58:34 +0800 Subject: [PATCH] Enhance console command response handling and add localized no-response messages --- .../commands/impl/ConsoleCommand.java | 15 +++++++++++++-- core/src/main/resources/lang/en_us.yml | 5 +++++ core/src/main/resources/lang/zh_cn.yml | 4 ++++ .../minecraft/events/MinecraftEventHandler.java | 4 +--- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/xujiayao/discord_mc_chat/commands/impl/ConsoleCommand.java b/core/src/main/java/com/xujiayao/discord_mc_chat/commands/impl/ConsoleCommand.java index 80a2ce90..dcba811e 100644 --- a/core/src/main/java/com/xujiayao/discord_mc_chat/commands/impl/ConsoleCommand.java +++ b/core/src/main/java/com/xujiayao/discord_mc_chat/commands/impl/ConsoleCommand.java @@ -241,11 +241,22 @@ public class ConsoleCommand implements Command { try { ConsoleResponsePacket response = future.get(CONSOLE_TIMEOUT_SECONDS, TimeUnit.SECONDS); + String output = response.response; if (sender instanceof JdaCommandSender) { - DiscordManager.sendExecuteResultViaWebhook(serverName, response.response); + if (output.isBlank()) { + String command = "/execute at: " + serverName + " command: log latest.log"; + output = I18nManager.getDmccTranslation("commands.console.no_response", command); + } + + DiscordManager.sendExecuteResultViaWebhook(serverName, output); } else { - String[] lines = response.response.split("\n"); + if (output.isBlank()) { + String command = "/execute " + serverName + " log latest.log"; + output = I18nManager.getDmccTranslation("commands.console.no_response", command); + } + + String[] lines = output.split("\n"); for (String line : lines) { sender.reply(I18nManager.getDmccTranslation("commands.remote_result_prefix", serverName, line)); } diff --git a/core/src/main/resources/lang/en_us.yml b/core/src/main/resources/lang/en_us.yml index a1b34f0b..03008627 100644 --- a/core/src/main/resources/lang/en_us.yml +++ b/core/src/main/resources/lang/en_us.yml @@ -32,6 +32,11 @@ commands: no_online_clients: "No DMCC clients are online." dmcc_not_supported: "Executing DMCC commands through \"console\" command is not supported. Please use \"execute\" command." server_not_ready: "Minecraft Server is not ready yet." + no_response: | + No response received from DMCC Client. + + This can be normal for certain Minecraft commands. If you expected a response, please check the Minecraft server log by executing "{}" command. + help: description: "Show a list of available commands" help: "Help" diff --git a/core/src/main/resources/lang/zh_cn.yml b/core/src/main/resources/lang/zh_cn.yml index 3748f059..d45f7cb4 100644 --- a/core/src/main/resources/lang/zh_cn.yml +++ b/core/src/main/resources/lang/zh_cn.yml @@ -32,6 +32,10 @@ commands: no_online_clients: "没有在线的 DMCC 客户端。" dmcc_not_supported: "通过 \"console\" 命令执行 DMCC 命令不受支持。请使用 \"execute\" 命令。" server_not_ready: "Minecraft 服务器尚未准备就绪。" + no_response: | + DMCC 客户端没有返回任何响应。 + + 这对部分 Minecraft 命令属正常现象。如预期应有响应,请执行 "{}" 命令检查 Minecraft 服务器日志。 help: description: "显示可用命令列表" help: "帮助" diff --git a/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java b/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java index 8074e8c1..b662d86a 100644 --- a/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java +++ b/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java @@ -272,9 +272,7 @@ public class MinecraftEventHandler { } // Send any collected command output back to the sender - if (!rconConsoleSource.getCommandResponse().isEmpty()) { - event.sender().reply(rconConsoleSource.getCommandResponse()); - } + event.sender().reply(rconConsoleSource.getCommandResponse()); event.completionFuture().complete(null); }); }