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;
private CraftBlockEntityState<?> blockEntityTag;
private NBTTagCompound internalTag;
CraftMetaBlockState(CraftMetaItem meta, Material material) {
super(meta);
@ -222,7 +223,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
} else {
material = Material.AIR;
}
blockEntityTag = getBlockState(material, null);
blockEntityTag = getBlockState(material, internalTag);
internalTag = null;
}
@Override
@ -243,7 +245,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
super.deserializeInternal(tag, context);
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);
}
}