gc-opencommand-plugin
中文 | English
一个为第三方客户端开放GC命令执行接口的插件
使用本插件的应用
服务端安装
- 在 Release 下载
jar
- 放入
plugins 文件夹即可
注意,如果出现以下错误:
请使用v1.2.1版本插件,因为该报错表示你的服务端是旧版!
控制台连接
- 首次启动时,会在
plugins 目录下生成一个 opencommand-plugin 目录,打开并编辑 config.json
- 设置
consoleToken 的值为你的连接秘钥,建议使用至少32字符的长随机字符串。
- 重新启动服务端即可生效配置
- 在客户端中选择控制台身份,并填写你的
consoleToken 即可以控制台身份运行指令
多服务器
主服务器 (Dispatch)
- 在
opencommand-plugin 目录下打开 config.json
- 修改
socketPort 值为一个未被使用的端口
- 设置
socketToken 多服务器通信密钥,建议使用至少32字符的长随机字符串。
- 重新启动服务端即可生效配置
子服务器 (Game)
- 在
opencommand-plugin 目录下打开 config.json
- 修改
socketHost 和 socketPort 值为主服务器的地址和端口
- 设置
socketToken 和主服务器相同的值
- 设置
socketDisplayName 值为你的服务器名称 (用途请见下方)
- 重新启动服务端即可生效配置
构建说明
- 克隆仓库
- 在目录下新建
lib 目录
- 将
grasscutter-1.1.x-dev.jar 放入 lib 目录
gradle build
玩家使用流程
- 在客户端中填写服务地址,确认是否支持
- 填写UID,发送验证码
- 将游戏内收到的4位整数验证码填入客户端校验
- 享受便利!
客户端请求流程
ping 确认是否支持 opencommand 插件
sendCode 向指定玩家发送验证码(1分钟内不允许重发),保存返回的 token
- 使用
token 和4位整数验证码发送 verify 校验
- 如果验证通过,可以使用该
token 执行 command 动作
config.json
API /opencommand/api
示例
Request 请求
Response 响应
Actions 动作
测试连接
Request
| 请求参数 |
请求数据 |
类型 |
| action |
ping |
String |
Response
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
null |
null |
获取在线玩家
Request
| 请求参数 |
请求数据 |
类型 |
| action |
online |
String |
Response
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
{"count": 0, playerList": []} |
JsonObject |
发送验证码
Request
| 请求参数 |
请求数据 |
类型 |
| action |
sendCode |
String |
| data |
uid |
Int |
Response
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
token |
String |
验证验证码
Request
| 请求参数 |
请求数据 |
类型 |
| action |
verify |
String |
| token |
token |
String |
| data |
code |
Int |
Response
成功
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
null |
null |
失败
| 返回参数 |
返回数据 |
类型 |
| retcode |
400 |
Int |
| message |
Verification failed |
String |
| data |
null |
null |
执行命令
Request
| 请求参数 |
请求数据 |
类型 |
| action |
command |
String |
| token |
token |
String |
| data |
command |
String |
Response
成功
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
Command return |
String |
执行控制台命令
获取运行模式
Request
| 请求参数 |
请求数据 |
类型 |
| action |
runmode |
String |
| token |
token |
String |
Response
成功
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
1 (多服务器) / 0 (单服务器) |
Int |
获取多服务器列表
Request
| 请求参数 |
请求数据 |
类型 |
| action |
server |
String |
| token |
token |
String |
Response
成功
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
{} |
JsonObject |
执行命令
Request
如果为单服务器则无需填写服务器 UUID
| 请求参数 |
请求数据 |
类型 |
| action |
command |
String |
| token |
token |
String |
| server |
UUID |
String |
| data |
command |
String |
Response
成功
| 返回参数 |
返回数据 |
类型 |
| retcode |
200 |
Int |
| message |
Success |
String |
| data |
Command return |
String |