From 61dbf354ffda1a4717cfc54bc44faf5f4970248e Mon Sep 17 00:00:00 2001 From: Final Child Date: Wed, 25 May 2016 16:25:56 +0900 Subject: [PATCH] Fix #163 (ServerBlockValuePacket) --- .../server/world/ServerBlockValuePacket.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/spacehq/mc/protocol/packet/ingame/server/world/ServerBlockValuePacket.java b/src/main/java/org/spacehq/mc/protocol/packet/ingame/server/world/ServerBlockValuePacket.java index 914d0fdd..7e1135f7 100644 --- a/src/main/java/org/spacehq/mc/protocol/packet/ingame/server/world/ServerBlockValuePacket.java +++ b/src/main/java/org/spacehq/mc/protocol/packet/ingame/server/world/ServerBlockValuePacket.java @@ -68,32 +68,25 @@ public class ServerBlockValuePacket implements Packet { public void read(NetInput in) throws IOException { this.position = NetUtil.readPosition(in); int type = in.readUnsignedByte(); - if(this.blockId == NOTE_BLOCK) { + int value = in.readUnsignedByte(); + this.blockId = in.readVarInt() & 0xFFF; + + if(this.blockId == NOTE_BLOCK) { this.type = MagicValues.key(NoteBlockValueType.class, type); + this.value = new NoteBlockValue(value); } else if(this.blockId == STICKY_PISTON || this.blockId == PISTON) { this.type = MagicValues.key(PistonValueType.class, type); + this.value = MagicValues.key(PistonValue.class, value); } else if(this.blockId == MOB_SPAWNER) { this.type = MagicValues.key(MobSpawnerValueType.class, type); + this.value = new MobSpawnerValue(); } else if(this.blockId == CHEST || this.blockId == ENDER_CHEST || this.blockId == TRAPPED_CHEST) { this.type = MagicValues.key(ChestValueType.class, type); + this.value = new ChestValue(value); } else { this.type = MagicValues.key(GenericBlockValueType.class, type); + this.value = new GenericBlockValue(value); } - - int value = in.readUnsignedByte(); - if(this.blockId == NOTE_BLOCK) { - this.value = new NoteBlockValue(value); - } else if(this.blockId == STICKY_PISTON || this.blockId == PISTON) { - this.value = MagicValues.key(PistonValue.class, value); - } else if(this.blockId == MOB_SPAWNER) { - this.value = new MobSpawnerValue(); - } else if(this.blockId == CHEST || this.blockId == ENDER_CHEST || this.blockId == TRAPPED_CHEST) { - this.value = new ChestValue(value); - } else { - this.value = new GenericBlockValue(value); - } - - this.blockId = in.readVarInt() & 4095; } @Override