SPIGOT-7376: Exception with getBlockData when hasBlockData is false

This commit is contained in:
md_5 2023-06-08 21:19:44 +10:00
parent 725545630d
commit f3b2b22103
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -45,6 +45,7 @@ import net.minecraft.nbt.NBTTagString;
import net.minecraft.network.chat.IChatBaseComponent; import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.world.entity.EnumItemSlot; import net.minecraft.world.entity.EnumItemSlot;
import net.minecraft.world.item.ItemBlock; import net.minecraft.world.item.ItemBlock;
import net.minecraft.world.level.block.state.IBlockData;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.apache.commons.lang3.EnumUtils; import org.apache.commons.lang3.EnumUtils;
import org.bukkit.Material; import org.bukkit.Material;
@ -916,7 +917,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override @Override
public BlockData getBlockData(Material material) { public BlockData getBlockData(Material material) {
return CraftBlockData.fromData(ItemBlock.getBlockState(CraftMagicNumbers.getBlock(material).defaultBlockState(), blockData)); IBlockData defaultData = CraftMagicNumbers.getBlock(material).defaultBlockState();
return CraftBlockData.fromData((hasBlockData()) ? ItemBlock.getBlockState(defaultData, blockData) : defaultData);
} }
@Override @Override