mirror of
https://github.com/jie65535/gc-opencommand-plugin.git
synced 2025-06-02 17:49:12 +08:00
Update version to v1.3.0
Support Listen Console Command Response
This commit is contained in:
parent
d9b09e48ce
commit
ff04a5f107
@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
group 'com.github.jie65535.opencommand'
|
||||
version 'dev-1.2.0'
|
||||
version 'dev-1.3.0'
|
||||
|
||||
sourceCompatibility = 17
|
||||
targetCompatibility = 17
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.github.jie65535.opencommand;
|
||||
|
||||
import emu.grasscutter.server.event.game.CommandResponseEvent;
|
||||
import emu.grasscutter.utils.MessageHandler;
|
||||
|
||||
public final class EventListeners {
|
||||
|
||||
private static MessageHandler consoleMessageHandler;
|
||||
public static void setConsoleMessageHandler(MessageHandler handler) {
|
||||
consoleMessageHandler = handler;
|
||||
}
|
||||
public static void onCommandResponse(CommandResponseEvent event) {
|
||||
if (consoleMessageHandler != null && event.getPlayer() == null) {
|
||||
consoleMessageHandler.setMessage(event.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
@ -20,6 +20,9 @@ package com.github.jie65535.opencommand;
|
||||
import com.github.jie65535.opencommand.json.JsonRequest;
|
||||
import com.github.jie65535.opencommand.json.JsonResponse;
|
||||
import emu.grasscutter.command.CommandMap;
|
||||
import emu.grasscutter.server.event.EventHandler;
|
||||
import emu.grasscutter.server.event.HandlerPriority;
|
||||
import emu.grasscutter.server.event.game.CommandResponseEvent;
|
||||
import emu.grasscutter.server.http.Router;
|
||||
import emu.grasscutter.utils.Crypto;
|
||||
import emu.grasscutter.utils.MessageHandler;
|
||||
@ -103,13 +106,19 @@ public final class OpenCommandHandler implements Router {
|
||||
response.json(new JsonResponse());
|
||||
return;
|
||||
} else if (req.action.equals("command")) {
|
||||
try {
|
||||
plugin.getLogger().info(String.format("IP: %s run command in console > %s", request.ip(), req.data));
|
||||
CommandMap.getInstance().invoke(null, null, req.data.toString());
|
||||
response.json(new JsonResponse());
|
||||
} catch (Exception e) {
|
||||
plugin.getLogger().warn("Run command failed.", e);
|
||||
response.json(new JsonResponse(500, "error", e.getLocalizedMessage()));
|
||||
//noinspection SynchronizationOnLocalVariableOrMethodParameter
|
||||
synchronized (plugin) {
|
||||
try {
|
||||
plugin.getLogger().info(String.format("IP: %s run command in console > %s", request.ip(), req.data));
|
||||
var resultCollector = new MessageHandler();
|
||||
EventListeners.setConsoleMessageHandler(resultCollector);
|
||||
CommandMap.getInstance().invoke(null, null, req.data.toString());
|
||||
response.json(new JsonResponse(resultCollector.getMessage()));
|
||||
} catch (Exception e) {
|
||||
plugin.getLogger().warn("Run command failed.", e);
|
||||
EventListeners.setConsoleMessageHandler(null);
|
||||
response.json(new JsonResponse(500, "error", e.getLocalizedMessage()));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -19,6 +19,9 @@ package com.github.jie65535.opencommand;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.plugin.Plugin;
|
||||
import emu.grasscutter.server.event.EventHandler;
|
||||
import emu.grasscutter.server.event.HandlerPriority;
|
||||
import emu.grasscutter.server.event.game.CommandResponseEvent;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
@ -40,6 +43,10 @@ public final class OpenCommandPlugin extends Plugin {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
new EventHandler<>(CommandResponseEvent.class)
|
||||
.priority(HandlerPriority.HIGH)
|
||||
.listener(EventListeners::onCommandResponse)
|
||||
.register();
|
||||
getHandle().addRouter(OpenCommandHandler.class);
|
||||
getLogger().info("[OpenCommand] Enabled");
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "opencommand-plugin",
|
||||
"description": "Open command interface for third-party clients",
|
||||
"version": "dev-1.2.0",
|
||||
"version": "dev-1.3.0",
|
||||
"mainClass": "com.github.jie65535.opencommand.OpenCommandPlugin",
|
||||
"authors": ["jie65535"]
|
||||
}
|
Loading…
Reference in New Issue
Block a user