gc-opencommand-plugin
中文 | English
A plugin that opens the GC command execution interface for third-party clients
Applications using this plug-in
Server installation
- Download the
jar
in Release
- Put it in the
plugins
folder
Console connection
- When starting for the first time, a
opencommand-plugin
directory will be generated under the plugins
directory,
open and edit config.json
- Set the value of
consoleToken
to your connection key. It is recommended to use a long random string of at least 32
characters.
- Restart the server to take effect
- Select the console identity in the client, and fill in your
consoleToken
to run the command as the console identity
Multi server
Master server (Dispatch)
- Open
config.json
in the opencommand-plugin
directory
- Modify the
socketPort
value to an unused port
- Set
sockettoken
multi server communication key. It is recommended to use a long random string of at least 32 characters.
- Restart the server to make the configuration effective
Sub server (Game)
- Open
config.json
in the opencommand-plugin
directory
- Modify the
sockethost
and socketport
values to the address and port of the primary server
- Set the same value of
sockettoken
and the primary server
- Set the
socketDisplayName
value to your server name (See below for usage Jump)
- Restart the server to make the configuration effective
Build
git clone https://github.com/jie65535/gc-opencommand-plugin
cd gc-opencommand-plugin
mkdir lib
mv path/to/grasscutter-1.x.x-dev.jar ./lib
gradle build
Player
- Fill in the service address in the client to confirm whether it supports
- Fill in the UID and send the verification code
- Fill in the 4-digit integer verification code received in the game into the client verification
- Enjoy the convenience!
Client request
ping
to confirm whether the opencommand
plugin is supported
sendCode
sends a verification code to the specified player (re-send is not allowed within 1 minute), and save the
returned token
- Send
verify
check using token
and 4-digit integer verification code
- If the verification is passed, you can use the
token
to execute the command
action
config.json
{
"consoleToken": "",
"codeExpirationTime_S": 60,
"tempTokenExpirationTime_S": 300,
"tokenLastUseExpirationTime_H": 48,
"socketPort": 5746,
"socketToken": "",
"socketHost": "127.0.0.1"
}
API /opencommand/api
Example
https://127.0.0.1/opencommand/api
Request
public final class JsonRequest {
public String token = "";
public String action = "";
public Seting server = "";
public Object data = null;
}
Response
public final class JsonResponse {
public int retcode = 200;
public String message = "Success";
public Object data;
}
Actions
Test connect
Request
Request |
Request data |
type |
action |
ping |
String |
Response
Response |
Response data |
type |
retcode |
200 |
String |
message |
Success |
String |
data |
null |
null |
Get online players
Request
Request |
Request data |
type |
action |
online |
String |
Response
Response |
Response data |
type |
retcode |
200 |
String |
message |
Success |
String |
data |
{"count": 0, playerList": []} |
JsonObject |
Send code
Request
Request |
Request data |
type |
action |
sendCode |
String |
data |
uid |
Int |
Response
Response |
Response data |
type |
retcode |
200 |
String |
message |
Success |
String |
data |
token |
String |
Verify code
Request
Request |
Request data |
type |
action |
verify |
String |
token |
token |
String |
data |
code |
Int |
Response
Success
Response |
Response data |
type |
retcode |
200 |
String |
message |
Success |
String |
data |
null |
null |
Failed
Response |
Response data |
type |
retcode |
400 |
String |
message |
Verification failed |
String |
data |
null |
null |
Run command
Request
Request |
Request data |
type |
action |
command |
String |
token |
token |
String |
data |
command |
String |
Response
Success
Response |
Response data |
type |
retcode |
200 |
String |
message |
Success |
String |
data |
Command return |
String |
Run console command
Get run mode
Request
Request |
Request data |
Type |
action |
runmode |
String |
token |
token |
String |
Response
Success
Request |
Response data |
Type |
retcode |
200 |
Int |
message |
Success |
String |
data |
1 (Multi server) / 0 (Single server) |
Int |
Get mulit server list
Request
Request |
Request data |
Type |
action |
server |
String |
token |
token |
String |
Response
Success
Request |
Response data |
Type |
retcode |
200 |
Int |
message |
Success |
String |
data |
{} |
JsonObject |
{
"retcode": 200,
"message": "success",
"data": {
// Server UUID
"13d82d0d-c7d9-47dd-830c-76588006ef6e": "2.8.0 Server",
"e6b83224-a761-4023-be57-e054c5bb823a": "2.8.0 Dev server"
}
}
Run command
Request
If it is a single server, there is no need to fill in server UUID.
Request |
Request data |
Type |
action |
command |
String |
token |
token |
String |
server |
UUID |
String |
data |
command |
String |
Response
Success
Request |
Response data |
Type |
retcode |
200 |
Int |
message |
Success |
String |
data |
Command return |
String |