Package org.bukkit.inventory.meta

# Interface BlockStateMeta

All Superinterfaces:
  `Cloneable`, `ConfigurationSerializable`, `ItemMeta`, `PersistentDataHolder`

public interface BlockStateMeta extends ItemMeta

## Method Summary

Modifier and Type
Method
Description
`@NotNull BlockState`
`getBlockState()`
Returns the currently attached block state for this item or creates a new one if one doesn't exist.
`boolean`
`hasBlockState()`
Returns whether the item has a block state currently attached to it.
`void`
`setBlockState(@NotNull BlockState blockState)`
Attaches a copy of the passed block state to the item.

### Methods inherited from interface org.bukkit.configuration.serialization.ConfigurationSerializable

`serialize`

### Methods inherited from interface org.bukkit.inventory.meta.ItemMeta

`addAttributeModifier, addEnchant, addItemFlags, clone, displayName, displayName, getAsString, getAttributeModifiers, getAttributeModifiers, getAttributeModifiers, getCanDestroy, getCanPlaceOn, getCustomModelData, getCustomTagContainer, getDestroyableKeys, getDisplayName, getDisplayNameComponent, getEnchantLevel, getEnchants, getItemFlags, getLocalizedName, getLore, getLoreComponents, getPlaceableKeys, hasAttributeModifiers, hasConflictingEnchant, hasCustomModelData, hasDestroyableKeys, hasDisplayName, hasEnchant, hasEnchants, hasItemFlag, hasLocalizedName, hasLore, hasPlaceableKeys, isUnbreakable, lore, lore, removeAttributeModifier, removeAttributeModifier, removeAttributeModifier, removeEnchant, removeItemFlags, setAttributeModifiers, setCanDestroy, setCanPlaceOn, setCustomModelData, setDestroyableKeys, setDisplayName, setDisplayNameComponent, setLocalizedName, setLore, setLoreComponents, setPlaceableKeys, setUnbreakable, setVersion`

### Methods inherited from interface org.bukkit.persistence.PersistentDataHolder

`getPersistentDataContainer`

## Method Details

### hasBlockState

boolean hasBlockState()
Returns whether the item has a block state currently attached to it.

Returns:
  whether a block state is already attached

### getBlockState

@NotNull @NotNull BlockState getBlockState()
Returns the currently attached block state for this item or creates a new one if one doesn't exist. The state is a copy, it must be set back (or to another item) with `setBlockState(org.bukkit.block.BlockState)`

Returns:
  the attached state or a new state

### setBlockState

void setBlockState(@NotNull @NotNull BlockState blockState)
Attaches a copy of the passed block state to the item.

Parameters:
  `blockState` - the block state to attach to the block.
Throws:
  `IllegalArgumentException` - if the blockState is null or invalid for this item.