Interface BlockStateMeta

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

public interface BlockStateMeta extends ItemMeta
  • 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
    • clearBlockState

      void clearBlockState()
      Clears the block state currently attached to this item.
    • 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.
      API Note:
      As of 1.20.5 the block state carries a copy of the item's data deviations. As such, setting the block state via this method will reset secondary deviations of the item meta. This can manifest in the addition to an existing lore failing or a change of a previously added display name. It is hence recommended to first mutate the block state, set it back, and then mutate the item meta.