网络与存档数据
[!INFO] 注册真源:
network/(2 个包)、savedata/(2 个类)
网络消息(2 个)
MobsInfo.java 的静态块中用 SimpleNetworkWrapper NETWORK(通道名 mobsinfo)注册,均为服务端 → 客户端:
| 序号 | 消息类 | 方向 |
|---|---|---|
| 0 | network/LoadConfigPacket |
Side.CLIENT |
| 1 | network/SaveDataPacket |
Side.CLIENT |
NETWORK.registerMessage(new LoadConfigPacket.Handler(), LoadConfigPacket.class, 0, Side.CLIENT);
NETWORK.registerMessage(new SaveDataPacket.Handler(), SaveDataPacket.class, 1, Side.CLIENT);
- LoadConfigPacket —— 服务端把配置(生物黑名单、隐藏模式等)下发客户端,保证两端一致
- SaveDataPacket —— 服务端下发玩家维度的解析结果缓存
[!NOTE] 消息方向是接收端语义:第二个参数为
Handler类(服务端侧处理器),第三个参数为消息类,Side.CLIENT表示该包发往客户端。代码中没有Side.SERVER注册,说明 Mobs Info 的玩家侧交互(/mobsinfo customdrops等)走原版指令通道而非自定义包。
存档数据
savedata/PlayerDataManager.java 继承 WorldSavedData,存档名固定为 mobsinfo_playerdata:
Instance = (PlayerDataManager) world.mapStorage.loadData(PlayerDataManager.class, playerDataName);
PlayerData.java 保存按玩家区分的生物信息缓存(如已解析的掉落、黑名单覆盖),避免多人服务器上重复计算。