mirror of
https://github.com/jie65535/gc-opencommand-plugin.git
synced 2025-06-02 17:49:12 +08:00
Fix console multi-line commands
This commit is contained in:
parent
f8a4e6f205
commit
de765c575e
@ -22,6 +22,7 @@ import com.github.jie65535.opencommand.json.JsonResponse;
|
|||||||
import com.github.jie65535.opencommand.model.Client;
|
import com.github.jie65535.opencommand.model.Client;
|
||||||
import com.github.jie65535.opencommand.socket.SocketData;
|
import com.github.jie65535.opencommand.socket.SocketData;
|
||||||
import emu.grasscutter.command.CommandMap;
|
import emu.grasscutter.command.CommandMap;
|
||||||
|
import emu.grasscutter.game.player.Player;
|
||||||
import emu.grasscutter.server.http.Router;
|
import emu.grasscutter.server.http.Router;
|
||||||
import emu.grasscutter.utils.Crypto;
|
import emu.grasscutter.utils.Crypto;
|
||||||
import emu.grasscutter.utils.Utils;
|
import emu.grasscutter.utils.Utils;
|
||||||
@ -115,7 +116,7 @@ public final class OpenCommandHandler implements Router {
|
|||||||
plugin.getLogger().info(String.format("IP: %s run command in console > %s", context.ip(), req.data));
|
plugin.getLogger().info(String.format("IP: %s run command in console > %s", context.ip(), req.data));
|
||||||
var resultCollector = new StringBuilder();
|
var resultCollector = new StringBuilder();
|
||||||
EventListeners.setConsoleMessageHandler(resultCollector);
|
EventListeners.setConsoleMessageHandler(resultCollector);
|
||||||
CommandMap.getInstance().invoke(null, null, req.data.toString());
|
tryInvokeCommand(null, null, req.data.toString());
|
||||||
context.json(new JsonResponse(resultCollector.toString()));
|
context.json(new JsonResponse(resultCollector.toString()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().warn("Run command failed.", e);
|
plugin.getLogger().warn("Run command failed.", e);
|
||||||
@ -147,7 +148,6 @@ public final class OpenCommandHandler implements Router {
|
|||||||
// update token expire time
|
// update token expire time
|
||||||
client.tokenExpireTime = new Date(now.getTime() + config.tokenLastUseExpirationTime_H * 60L * 60L * 1000L);
|
client.tokenExpireTime = new Date(now.getTime() + config.tokenLastUseExpirationTime_H * 60L * 60L * 1000L);
|
||||||
var player = plugin.getServer().getPlayerByUid(client.playerId);
|
var player = plugin.getServer().getPlayerByUid(client.playerId);
|
||||||
var rawMessage = req.data.toString();
|
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
context.json(new JsonResponse(404, "Player not found"));
|
context.json(new JsonResponse(404, "Player not found"));
|
||||||
return;
|
return;
|
||||||
@ -158,14 +158,7 @@ public final class OpenCommandHandler implements Router {
|
|||||||
synchronized (handler) {
|
synchronized (handler) {
|
||||||
try {
|
try {
|
||||||
handler.setLength(0);
|
handler.setLength(0);
|
||||||
for (var command : rawMessage.split("\n[/!]|\\|")) {
|
tryInvokeCommand(player, player, req.data.toString());
|
||||||
command = command.trim();
|
|
||||||
if (command.isEmpty()) continue;
|
|
||||||
if (command.charAt(0) == '/' || command.charAt(0) == '!') {
|
|
||||||
command = command.substring(1);
|
|
||||||
}
|
|
||||||
CommandMap.getInstance().invoke(player, player, command);
|
|
||||||
}
|
|
||||||
context.json(new JsonResponse(handler.toString()));
|
context.json(new JsonResponse(handler.toString()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().warn("Run command failed.", e);
|
plugin.getLogger().warn("Run command failed.", e);
|
||||||
@ -181,6 +174,17 @@ public final class OpenCommandHandler implements Router {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void tryInvokeCommand(Player sender, Player target, String rawMessage) {
|
||||||
|
for (var command : rawMessage.split("\n[/!]|\\|")) {
|
||||||
|
command = command.trim();
|
||||||
|
if (command.isEmpty()) continue;
|
||||||
|
if (command.charAt(0) == '/' || command.charAt(0) == '!') {
|
||||||
|
command = command.substring(1);
|
||||||
|
}
|
||||||
|
CommandMap.getInstance().invoke(sender, target, command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void cleanupExpiredCodes() {
|
private static void cleanupExpiredCodes() {
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
codeExpireTime.int2ObjectEntrySet().removeIf(entry -> entry.getValue().before(now));
|
codeExpireTime.int2ObjectEntrySet().removeIf(entry -> entry.getValue().before(now));
|
||||||
|
Loading…
Reference in New Issue
Block a user