SPIGOT-7631: Fix deserialisation of BlockStateMeta

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot 2024-04-25 07:26:03 +10:00
parent b458583b23
commit d195996997

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);
}
}