diff --git a/src/main/java/com/github/jie65535/opencommand/EventListeners.java b/src/main/java/com/github/jie65535/opencommand/EventListeners.java index dde6596..17eddb5 100644 --- a/src/main/java/com/github/jie65535/opencommand/EventListeners.java +++ b/src/main/java/com/github/jie65535/opencommand/EventListeners.java @@ -24,21 +24,24 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.server.event.game.ReceiveCommandFeedbackEvent; import emu.grasscutter.server.event.player.PlayerJoinEvent; import emu.grasscutter.server.event.player.PlayerQuitEvent; -import emu.grasscutter.utils.MessageHandler; import java.util.ArrayList; public final class EventListeners { - private static MessageHandler consoleMessageHandler; + private static StringBuilder consoleMessageHandler; - public static void setConsoleMessageHandler(MessageHandler handler) { + public static void setConsoleMessageHandler(StringBuilder handler) { consoleMessageHandler = handler; } public static void onCommandResponse(ReceiveCommandFeedbackEvent event) { if (consoleMessageHandler != null && event.getPlayer() == null) { - consoleMessageHandler.setMessage(event.getMessage()); + if (!consoleMessageHandler.isEmpty()) { + // New line + consoleMessageHandler.append(System.lineSeparator()); + } + consoleMessageHandler.append(event.getMessage()); } } diff --git a/src/main/java/com/github/jie65535/opencommand/OpenCommandHandler.java b/src/main/java/com/github/jie65535/opencommand/OpenCommandHandler.java index 71c6dd3..9afe541 100644 --- a/src/main/java/com/github/jie65535/opencommand/OpenCommandHandler.java +++ b/src/main/java/com/github/jie65535/opencommand/OpenCommandHandler.java @@ -114,10 +114,10 @@ public final class OpenCommandHandler implements Router { synchronized (plugin) { try { plugin.getLogger().info(String.format("IP: %s run command in console > %s", context.ip(), req.data)); - var resultCollector = new MessageHandler(); + var resultCollector = new StringBuilder(); EventListeners.setConsoleMessageHandler(resultCollector); CommandMap.getInstance().invoke(null, null, req.data.toString()); - context.json(new JsonResponse(resultCollector.getMessage())); + context.json(new JsonResponse(resultCollector.toString())); } catch (Exception e) { plugin.getLogger().warn("Run command failed.", e); EventListeners.setConsoleMessageHandler(null); diff --git a/src/main/java/com/github/jie65535/opencommand/socket/SocketClient.java b/src/main/java/com/github/jie65535/opencommand/socket/SocketClient.java index 2c92501..645a12b 100644 --- a/src/main/java/com/github/jie65535/opencommand/socket/SocketClient.java +++ b/src/main/java/com/github/jie65535/opencommand/socket/SocketClient.java @@ -192,10 +192,10 @@ public class SocketClient { //noinspection SynchronizationOnLocalVariableOrMethodParameter synchronized (plugin) { try { - var resultCollector = new MessageHandler(); + var resultCollector = new StringBuilder(); EventListeners.setConsoleMessageHandler(resultCollector); CommandMap.getInstance().invoke(null, null, consoleCommand.command); - sendPacket(new HttpPacket(resultCollector.getMessage()), packet.packetID); + sendPacket(new HttpPacket(resultCollector.toString()), packet.packetID); } catch (Exception e) { mLogger.warn("[OpenCommand] Run command failed.", e); EventListeners.setConsoleMessageHandler(null);