-
Notifications
You must be signed in to change notification settings - Fork 6
/
edotcs_plugin.proto
196 lines (175 loc) · 5.53 KB
/
edotcs_plugin.proto
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/*
Request : EDotCS 客户端向插件发起的请求
Reply : 插件回复EDotCS 是否执行成功
*/
syntax = "proto3";
package edotcs;
// go_package 使用 go mod 需要的路径即可,也可以是私有 gitlab package
option go_package = "edotcs_api/grpc";
// EDotCS 机器人退出了租赁服
message Robot_Exit_Request{
string Exit_Server_message =1; // 退出租赁服的原因
int64 id=2;
}
message Robot_Exit_Reply{
}
// EDotCS 用户中心命令(由用户中心向插件执行命令)
message User_Command_Request{
string cmd = 1;
int64 id=2;
}
message User_Command_Reply{
}
// EDotCS 玩家退出了服务器
message Player_Left_Request{
Player Player =1;
int64 id=2;
}
message Player_Left_Reply{
}
// EDotCS 玩家加入服务器(可能会出现插件黑名单提前踢出服务器的处理)
message Plyaer_Join_Request{
Player Player =1;
int64 id=2;
}
message Plyaer_Join_Reply{
}
// EDotCS 玩家消息处理
message Player_Message_Request{
Player player = 1;
string message = 2;
int64 id=3;
}
message Player_Message_Reply{
}
message Player{
string uuid =1;
string name =2;
}
// EDotCS Ban(player player) 在机器人所在的服务器里永久禁止此玩家进入(无法解封)
// 注:为了防止乱封禁,上传需要有效正确的玩家信息
message Ban_Request{
int64 id=1;
}
message Ban_Reply{
Player Player=1;
}
// EDotCS Log(lever int,message) 发送一条日志(在EDotCS客户端内显示)
message Log_Request{
int64 id=1;
}
message Log_Reply{
uint32 lever=1;
string message=2;
}
// EDotCS SendWSCmd(cmd string) 执行一条命令(通过WS)(不需要返回结果)
message SendWSCmd_Request{
int64 id=1;
}
message SendWSCmd_Reply{
string cmd=1;
}
// EDotCS SendCmd(cmd string) 执行一条命令(不需要返回结果)
message SendCmd_Request{
int64 id=1;
}
message SendCmd_Reply{
string cmd=1;
}
// EDotCS Say_To(player,message) 向玩家发送一条消息(不支持 @a)
message Say_To_Request{
int64 id=1;
}
message Say_To_Reply{
Player Player=1;
string message=2;
}
// EDotCS Menu_Set(name string ,synopsis string) return (is_true bool)
// 让插件有一个属于自己的菜单选项
// 注: 没有插件选项时,请返回 空字符串
message Menu_Set_Request{
int64 id=1;
// bool is_ture = 1;
// string message =2;
}
message Menu_Set_Reply{
string name = 1;
string synopsis = 2;
}
message Menu_Set_Return_Request{
bool is_ture=1;
string message =2;
int64 id=3;
}
message Menu_Set_Return_Reply{
}
// EDotCS License(Lisence) 获取插件需要的许可证
/*
许可证:
0: 无许可证要求
1: 标准许可证要求
2: 专业许可证要求
3: 旗舰许可证要求
4: 商业许可证要求
5: 代理许可证要求
6: EDotCS管理许可证要求
7: 总代理许可证要求
8: 用户中心总管理许可证要求
*/
message License_Request{
int64 id=1;
}
message License_Reply{
int32 license=1;
}
// 插件名初始化,EDotCS 客户端第一个执行的接口
message Plugin_Name_Request{
int64 id=1;
}
message Plugin_Name_Reply{
string name=1; // 插件名
string author=2; // 作者
}
// 心跳包,来保证插件可以正确识别edotcs是否在正常运行
message heartbeat_Request{
int64 id=1;
}
message heartbeat_Reply{
}
// 新建EDotCS客户端,
// 初始化事件
// 新启动的edotcs的id默认提交的是0,如果id不是0就是重连的了。
// 插件需要返回一个id告知edotcs
message EDotCS_Client_New_Request{
int64 id=1;
}
message EDotCS_Client_New_Reply{
int64 id=1;
}
// 在EDotCS 连接完成插件后,就会对插件进行初始化
// 这里的事件比较特殊,在返回后另执行一条命令来告知是否执行成功,通常通知类消息命名以 _Return 结尾
// Listen 系列接口: 是由 EDotCS 客户端向 插件发送的内容
service Initialize{
rpc EDotCS_Client_New(EDotCS_Client_New_Request) returns (EDotCS_Client_New_Reply){} //新建 EDotCS 客户端
rpc Menu_Set(Menu_Set_Request) returns (Menu_Set_Reply){} // EDotCS 菜单系统设置(每一个插件只能有一个菜单)
rpc Menu_Set_Return(Menu_Set_Return_Request) returns (Menu_Set_Return_Reply){} // 返回结果
rpc License(License_Request) returns (License_Reply){} // 许可证要求,此接口较为特殊,如果不达到要求就不会返回结果,而是直接关闭插件连接
rpc Plugin_Name(Plugin_Name_Request)returns(Plugin_Name_Reply){} // 插件名称初始化,这必须完成
}
service listen {
rpc Player_Message(Player_Message_Request) returns (Player_Message_Reply){}
rpc Player_Join(Plyaer_Join_Request) returns (Plyaer_Join_Reply){}
rpc Player_Left(Player_Left_Request) returns (Player_Left_Reply){}
rpc User_Command(User_Command_Request) returns (User_Command_Reply){}
rpc Robot_Exit_Server(Robot_Exit_Request) returns (Robot_Exit_Reply){} // EDotCS 机器人退出了租赁服
rpc heartbeat(heartbeat_Request)returns(heartbeat_Reply){}
}
// API 系列接口: 是由插件主动向EDotCS 客户端执行命令的接口
service Api{
rpc Say_To(Say_To_Request) returns (stream Say_To_Reply){} // 向xx 玩家发送消息
rpc SendCmd(SendCmd_Request) returns (stream SendCmd_Reply){} // 执行命令(不等待)
rpc SendWSCmd(SendWSCmd_Request) returns (stream SendWSCmd_Reply){}// 通过ws接口执行命令(不等待)
rpc Log(Log_Request) returns (stream Log_Reply){} // 向EDotCS 发送日志
rpc Ban(Ban_Request) returns (stream Ban_Reply){} // 以最高级别封禁玩家(数据会上传到edotcs用户中心)
// rpc
}