网络与存档数据

[!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 保存按玩家区分的生物信息缓存(如已解析的掉落、黑名单覆盖),避免多人服务器上重复计算。

关联:配置项 · 指令