PacketSyncAllBauble

基本信息

属性 值
路径 baubles.common.network.PacketSyncAllBauble
类型 class
接口 IMessage, IMessageHandler<PacketSyncAllBauble, IMessage>
Discriminator 3
方向 S → C

字段

字段 类型 说明
playerId int(VarInt) 玩家实体 ID
inventory TIntObjectMap<ItemStack> 槽位索引 → 物品栈(仅包含非空槽位)

编码

字段 字节数
playerId VarInt(4 字节限)
inventory.size() VarInt(maxSlotIdBytes 字节限 = slotLimit=20 的 VarInt 字节数)
每条 inventory VarInt(槽位 id) + ByteBufUtils.writeItemStack(item)

客户端处理

  • 找到玩家后调用 PlayerHandler.clearPlayerBaubles(player) 清理旧缓存
  • 重新 getPlayerBaubles 获取目标玩家的 InventoryBaubles
  • 直接覆写 baubles.stackList[a] = b
  • 对每个非空物品,若 IBauble 实例,调用 onPlayerLoad(b, player) 让 bauble 自行恢复状态
  • 异常会被 Baubles.log.error 记录(不会让一个 bauble 失败中断其他)

触发源

相关条目