-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJsmod2 v5架构.txt
More file actions
18 lines (14 loc) · 1.26 KB
/
Jsmod2 v5架构.txt
File metadata and controls
18 lines (14 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Jsmod2 Protocol v5架构中
1.摒弃了事件序列化,统一使用GetPacket获取事件信息和对象信息,事件请求只是传递ApiId
2.除了复杂对象外,枚举值对象和基本类型采用GetPacket获取,复杂对象在事件发送过程中已经确定了它的身份(apiId)
3.proxyHandler在事件触发时,只设置字段链(id的最终位置),UUID,映射对象
如,触发PlayerJoinEvent
new IdMapping()
.appendId(Lib.ID,Guid.NewGuid().ToString(),ev) //事件根ID设置,对应指定事件对象
.appendId(Lib.PLAYER_ID,Guid.NewGuid().ToString(),ev.Player) //玩家ID设置,对应指定玩家对象
.appendId(Lib.PLAYER_EVENT_SCPDATA_ID,Guid.NewGuid().ToString(),ev.Player.Scp079Data) //玩家的SCPDATA的ID设置 对应SCPDATA对象
JSmod2的PlayerEvent获取
e.getPlayer() 这个是复杂对象,所以直接获取,没有GetPacket传递
e.getPlayer().getName() 这个是基本类型,通过GetPacket获取,中间传输用到了ApiId
e.getPlayer().getScpData() 复杂对象,直接获取,没有GetPacket传递
如果是数组,比如Player[]这种,第一次获取时候通过GetPacket得到数组,第二次获取直接获得就行