gc-opencommand-plugin
中文 | English
A plugin that opens the GC command execution interface for third-party clients
Since 1.7.0
, multiple commands can be separated by |
or newline, for example:
/a 1 | /a 2
/a 3
Invoking ping
the response data will contain the plugin version.
Applications using this plug-in
Server installation
- Download the
jar
in Release
- Put it in the
grasscutter/plugins
folder
- Restart
grasscutter
server
Player
- Fill in the service address in the Tool to check plugin status
- Fill in the UID and send the verification code
- Fill in the 4-digit integer verification code received in the game into the Tool verification
- Enjoy the convenience!
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. (automatically generated when empty is detected)
- 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
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
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
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
config.json
{
// console connection token (automatically generated when empty is detected)
"consoleToken": "",
// Verification code expiration time (seconds)
"codeExpirationTime_S": 60,
// Temporary token expiration time (seconds)
"tempTokenExpirationTime_S": 300,
// Authorization token last used expiration time (hours)
"tokenLastUseExpirationTime_H": 48,
// Multi-server communication port
"socketPort": 5746,
// Multi-server communication key
"socketToken": "",
// Multi-server Dispatch server address
"socketHost": "127.0.0.1",
// multi-server display name
"socketDisplayName": ""
}
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 |