SPIGOT-7631: Fix deserialisation of BlockStateMeta

This commit is contained in:
md_5 2024-04-25 07:26:03 +10:00
parent 9c2c7be8d6
commit c66f3e4fdb
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -171,6 +171,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
final Material material; final Material material;
private CraftBlockEntityState<?> blockEntityTag; private CraftBlockEntityState<?> blockEntityTag;
private NBTTagCompound internalTag;
CraftMetaBlockState(CraftMetaItem meta, Material material) { CraftMetaBlockState(CraftMetaItem meta, Material material) {
super(meta); super(meta);
@ -222,7 +223,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
} else { } else {
material = Material.AIR; material = Material.AIR;
} }
blockEntityTag = getBlockState(material, null); blockEntityTag = getBlockState(material, internalTag);
internalTag = null;
} }
@Override @Override
@ -243,7 +245,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
super.deserializeInternal(tag, context); super.deserializeInternal(tag, context);
if (tag.contains(BLOCK_ENTITY_TAG.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND)) { if (tag.contains(BLOCK_ENTITY_TAG.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND)) {
blockEntityTag = getBlockState(material, tag.getCompound(BLOCK_ENTITY_TAG.NBT)); internalTag = tag.getCompound(BLOCK_ENTITY_TAG.NBT);
} }
} }