PacketSyncBauble
基本信息
| 属性 | 值 |
|---|---|
| 路径 | baubles.common.network.PacketSyncBauble |
| 类型 | class |
| 接口 | IMessage, IMessageHandler<PacketSyncBauble, IMessage> |
| Discriminator | 2 |
| 方向 | S → C |
字段
| 字段 | 类型 | 说明 |
|---|---|---|
slot |
int(byte 编码) |
槽位索引 |
playerId |
int |
玩家实体 ID |
bauble |
ItemStack |
槽位当前物品(可为 null) |
编码
| 字段 | 字节数 |
|---|---|
slot |
1 byte |
playerId |
4 bytes(int) |
bauble |
变长(PacketBuffer.writeItemStackToBuffer) |
客户端处理
- 拿到
Baubles.proxy.getClientWorld() - 用
playerId查找玩家实体 - 调用
PlayerHandler.getPlayerBaubles(player).setInventorySlotContents(slot, bauble) - 注意:客户端处理时不触发
onEquipped/onUnequipped,因为InventoryBaubles.blockEvents由GuiPlayerExpanded.updateScreen在每帧设为false之前为true
触发源
InventoryBaubles.syncSlotToClients - 服务端每次槽位内容变化时调用