-
Notifications
You must be signed in to change notification settings - Fork 1
/
BDS启动器通讯协议.txt
82 lines (81 loc) · 3.11 KB
/
BDS启动器通讯协议.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
BDS启动器(伪websoket):
注意:必须使用HP-Socket的TCPPack客户端连接启动器
*----------------------------------------------------------*
协议类型:TCP
包格式(按字节看):
xx 00 00 00 aa aa ... 00 00 00 bb bb ... 00 00 00 cc cc ...
*----------------------------------------------------------*
包格式的说明:
xx是ID,表示该包的类型
aa、bb、cc表示的是包的数据内容
包的结尾无需加 00 00 00
包ID为ANSI文本,数据内容如果未说明也为ANSI文本
*----------------------------------------------------------*
例子:
调用开服API
路径为C:\bedrock-server-1.14.60.5\bedrock_server.exe
附加值为11
那么包内容为:
49 00 00 00 49 49 00 00 00 43 3A 5C 62 65 64 72 6F 63
6B 2D 73 65 72 76 65 72 2D 31 2E 31 34 2E 36 30 2E 35
5C 62 65 64 72 6F 63 6B 5F 73 65 72 76 65 72 2E 65 78
65
ANSI转储后就是:
1 . . . 1 1 . . . C : \ b e d r o c k - s e r v e r - 1 . 1 4 . 6 0
. 5 \ b e d r o c k _ s e r v e r . e x e
*----------------------------------------------------------*
关于附加值的说明:
因为操作是异步的,为了方便编写程序解析,引入附加值的
概念。发送请求时可以带上一个特定的附加值,启动器在处
理后发送返回值的时候会重新发送接收到的这个附加值,以
方便在接收后确定是在何处调用的。
附加值内容可以自定义,但是要注意的是,不能有连续的、
两个字节以上的00,不然会被当成分割符处理,导致程序不
解析数据。
某些指令没有回调,但是必须写附加值,可以填个{1}占位。
*----------------------------------------------------------*
发送信息的格式:
ID:1,开服,结构:ID+附加值+是否启用EQbase64插件[ANSIGBK的真或假]+BDS路径,有请求回调
ID:2,关服,结构:ID+附加值,有请求回调
ID:3,执行指令,结构:ID+附加值+指令内容,无请求回
调
ID:4,获取状态,结构:ID+附加值,有请求回调
ID:5,刷新高速函数任务状态,结构:ID+附加值,无请求
回调
ID:6,关闭启动器,结构:ID+附加值,无请求回调,如果
BDS正在运行,会先发送ID为5的被手动关服信息再关闭
ID:7,显示启动器,结构:ID+附加值,无请求回调
ID:8,隐藏启动器,结构:ID+附加值,无请求回调
*----------------------------------------------------------*
接收信息的格式:
ID:1,请求回调,具体信息如下:
1.开服、关服,结构:ID+附加值+ANSI_GBK编码的真或假
含义:开关服是否成功,关服必然返回真,并且关服会先发
送ID为5的被手动关服信息
2.获取状态,结构:ID+附加值+ANSI_GBK编码的真或假
含义:BDS在运行返回真,不在运行返回假
ID:2,输出流,结构:ID+输出流
按行发送输出流,不包含换行符。如果仅有ID,说明是空行
ID:3,运行日志,结构:ID+日志内容+是否转发到管理群
[ANSI_GBK编码的真或假]
注意:所有的BDS启动、关闭、崩溃均会发送运行日志并且向管理群报道
ID:4,崩溃,结构:ID+返回值
服务器关闭不一定发送本信息,需要ID4和ID5都做处理
ID:5,被手动关服,结构:ID
服务器关闭不一定发送本信息,需要ID4和ID5都做处理
ID:6,开服成功,结构:ID
服务器只要开启,一定会发送ID6
ID:7,热备份成功,结构:ID+文件名(例如“2022年7月3日10时36分23秒.zip”)
一旦检测到热备份指令,启动器将接管热备份事宜,将存档自动备份压缩到:存档备份\
与请求回调不同的是,如果是命令行控制的自启动,成功后
也会发送ID6,而ID1在这种情况下不会发送,另外只有成功
才会发送本信息,失败不会发送。当然,得自启动前连接上
启动器的tcp服务器才能收得到,否则是收不到这个包的。
*----------------------------------------------------------*
EQ面板内部附加值含义表:
1:手动点击启动服务器
2:备份p2关服
3:面板_开服
4:面板启动查询状态
5:回档关服
6:重启关服