MixinNetHandlerPlayClient
基本信息
| 属性 | 值 |
|---|---|
| Mixin 目标 | net.minecraft.client.network.NetHandlerPlayClient |
| Phase | EARLY |
| 角色 | 客户端解码多方块变化包(S22PacketMultiBlockChange)用 short 读方块 ID + Metadata |
| 依赖 | llamalad7 mixinextras @Local |
注入点
| 注入 | 目标 | 改写 |
|---|---|---|
@Redirect |
handleMultiBlockChange 中 Block.getBlockById(int) |
改用 short short2(第二个 DataInputStream 读取的方块 ID)作为 ID:Block.getBlockById(short2) |
@ModifyArg index = 4 |
handleMultiBlockChange 中 WorldClient.func_147492_c(..., int meta) |
改用 datainputstream.readShort() & METADATA_MASK |
数据格式(与服务端 S22 一致)
| 字段 | vanilla | NEID |
|---|---|---|
| 方块 ID | int(4 字节) |
short(2 字节) |
| Metadata | byte(1 字节) |
short(2 字节) |
NEID 方块 ID 上限 32767(short 最高位保留给符号),Metadata 上限 65535。
相关条目
- MixinS22PacketMultiBlockChange - 服务端编码方
- Constants -
METADATA_MASK = 0xFFFF