mirror of
https://github.com/jie65535/gc-opencommand-plugin.git
synced 2025-06-02 17:49:12 +08:00
Fix incomplete multiple lines reply issue (fix #28)
This commit is contained in:
parent
79564ff41c
commit
3f1ecfe8a6
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user