From be5d8ae06f142364800e532c5164818dc66ba45d Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 2 Nov 2020 16:39:19 +0100 Subject: [PATCH] entity meta data: fix exception with opt block id --- .../minosoft/data/entities/meta/EntityMetaData.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/data/entities/meta/EntityMetaData.java b/src/main/java/de/bixilon/minosoft/data/entities/meta/EntityMetaData.java index 887b29e59..f8e2fc6b5 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/meta/EntityMetaData.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/meta/EntityMetaData.java @@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.entities.Poses; import de.bixilon.minosoft.data.entities.VillagerData; import de.bixilon.minosoft.data.inventory.Slot; import de.bixilon.minosoft.data.mappings.blocks.Block; +import de.bixilon.minosoft.data.mappings.blocks.Blocks; import de.bixilon.minosoft.data.mappings.particle.data.ParticleData; import de.bixilon.minosoft.data.text.ChatComponent; import de.bixilon.minosoft.data.world.BlockPosition; @@ -89,7 +90,13 @@ public class EntityMetaData { case BLOCK_ID -> buffer.getConnection().getMapping().getBlockById(buffer.readVarInt()); case OPT_VAR_INT -> buffer.readVarInt() - 1; case VILLAGER_DATA -> new VillagerData(VillagerData.VillagerTypes.byId(buffer.readVarInt()), VillagerData.VillagerProfessions.byId(buffer.readVarInt(), buffer.getVersionId()), VillagerData.VillagerLevels.byId(buffer.readVarInt())); - default -> throw new IllegalStateException("Unexpected value: " + type); + case OPT_BLOCK_ID -> { + int blockId = buffer.readVarInt(); + if (blockId == 0) { + yield Blocks.nullBlock; + } + yield buffer.getConnection().getMapping().getBlockById(blockId); + } }; }