# Uses of Interface
org.bukkit.block.data.BlockData

Packages that use BlockData
Package
Description
com.destroystokyo.paper
com.destroystokyo.paper.event.block
io.papermc.paper.block
org.bukkit
The root package of the Bukkit API, contains generalized API classes.
org.bukkit.block
Classes used to manipulate the voxels in a `world`, including special states.
org.bukkit.block.data
Generalized BlockData classes.
org.bukkit.block.data.type
Specific BlockData classes relevant to only a given block or set of blocks.
org.bukkit.entity
Interfaces for non-voxel objects that can exist in a `world`, including all players, monsters, projectiles, etc.
org.bukkit.event.block
`Events` relating to when a `block` is changed or interacts with the `world`.
org.bukkit.event.entity
`Events` relating to `entities`, excluding some directly referencing some more specific entity types.
org.bukkit.generator
Classes to facilitate `world` generation implementation.
org.bukkit.inventory.meta
The interfaces used when manipulating extra data can can be stored inside `item stacks`.

## Uses of BlockData in com.destroystokyo.paper

Methods in com.destroystokyo.paper with parameters of type BlockData
Modifier and Type
Method
Description
`boolean`
MaterialSetTag.`isTagged(@NotNull BlockData block)`

## Uses of BlockData in com.destroystokyo.paper.event.block

Methods in com.destroystokyo.paper.event.block that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
BlockDestroyEvent.`getNewState()`
Methods in com.destroystokyo.paper.event.block with parameters of type BlockData
Modifier and Type
Method
Description
`static @NotNull AnvilDamagedEvent.DamageState`
AnvilDamagedEvent.DamageState.`getState(@Nullable BlockData blockData)`
Get damaged state by block data
Constructors in com.destroystokyo.paper.event.block with parameters of type BlockData
Modifier
Constructor
Description
``
`AnvilDamagedEvent(@NotNull InventoryView inventory, @NotNull BlockData blockData)`
``
`BlockDestroyEvent(@NotNull Block block, @NotNull BlockData newState, boolean willDrop)`

## Uses of BlockData in io.papermc.paper.block

Methods in io.papermc.paper.block that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
MovingPiston.`getMovingBlock()`
Gets the block that is being pushed

## Uses of BlockData in org.bukkit

Methods in org.bukkit that return BlockData
Modifier and Type
Method
Description
`static @NotNull BlockData`
Bukkit.`createBlockData(@NotNull String data)`
Creates a new `BlockData` instance with material and properties parsed from provided data.
`static @NotNull BlockData`
Bukkit.`createBlockData(@NotNull Material material)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`static @NotNull BlockData`
Bukkit.`createBlockData(@NotNull Material material, @Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`static @NotNull BlockData`
Bukkit.`createBlockData(@Nullable Material material, @Nullable String data)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.
`@NotNull BlockData`
Material.`createBlockData()`
Creates a new `BlockData` instance for this Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Material.`createBlockData(@Nullable String data)`
Creates a new `BlockData` instance for this Material, with all properties initialized to unspecified defaults, except for those provided in data.
`@NotNull BlockData`
Material.`createBlockData(@Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for this Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Server.`createBlockData(@NotNull String data)`
Creates a new `BlockData` instance with material and properties parsed from provided data.
`@NotNull BlockData`
Server.`createBlockData(@NotNull Material material)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Server.`createBlockData(@NotNull Material material, @Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Server.`createBlockData(@Nullable Material material, @Nullable String data)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults, except for those provided in data.
`BlockData`
UnsafeValues.`fromLegacy(Material material, byte data)`
Deprecated.
`@NotNull BlockData`
BlockChangeDelegate.`getBlockData(int x, int y, int z)`
Get the block data at the location.
`@NotNull BlockData`
ChunkSnapshot.`getBlockData(int x, int y, int z)`
Get block data for block at corresponding coordinate in the chunk
`@NotNull BlockData`
RegionAccessor.`getBlockData(int x, int y, int z)`
Gets the `BlockData` at the given coordinates.
`@NotNull BlockData`
RegionAccessor.`getBlockData(@NotNull Location location)`
Gets the `BlockData` at the given `Location`.
Methods in org.bukkit with parameters of type BlockData
Modifier and Type
Method
Description
`boolean`
Chunk.`contains(@NotNull BlockData block)`
Tests if this chunk contains the specified block.
`boolean`
ChunkSnapshot.`contains(@NotNull BlockData block)`
Tests if this snapshot contains the specified block.
`boolean`
BlockChangeDelegate.`setBlockData(int x, int y, int z, @NotNull BlockData blockData)`
Set a block data at the specified coordinates.
`void`
RegionAccessor.`setBlockData(int x, int y, int z, @NotNull BlockData blockData)`
Sets the `BlockData` at the given coordinates.
`void`
RegionAccessor.`setBlockData(@NotNull Location location, @NotNull BlockData blockData)`
Sets the `BlockData` at the given `Location`.
`@NotNull FallingBlock`
World.`spawnFallingBlock(@NotNull Location location, @NotNull BlockData data)`
Spawn a `FallingBlock` entity at the given `Location` of the specified `Material`.
Method parameters in org.bukkit with type arguments of type BlockData
Modifier and Type
Method
Description
`static @NotNull BlockData`
Bukkit.`createBlockData(@NotNull Material material, @Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Material.`createBlockData(@Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for this Material, with all properties initialized to unspecified defaults.
`@NotNull BlockData`
Server.`createBlockData(@NotNull Material material, @Nullable Consumer<BlockData> consumer)`
Creates a new `BlockData` instance for the specified Material, with all properties initialized to unspecified defaults.

## Uses of BlockData in org.bukkit.block

Methods in org.bukkit.block that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
Block.`getBlockData()`
Gets the complete block data for this block
`@NotNull BlockData`
BlockState.`getBlockData()`
Gets the data for this block state.
Methods in org.bukkit.block with parameters of type BlockData
Modifier and Type
Method
Description
`boolean`
Block.`canPlace(@NotNull BlockData data)`
Checks if this block is a valid placement location for the specified block data.
`void`
Block.`setBlockData(@NotNull BlockData data)`
Sets the complete data for this block
`void`
Block.`setBlockData(@NotNull BlockData data, boolean applyPhysics)`
Sets the complete data for this block
Note that applyPhysics = false is not in general safe.
`void`
BlockState.`setBlockData(@NotNull BlockData data)`
Sets the data for this block state.

## Uses of BlockData in org.bukkit.block.data

Subinterfaces of BlockData in org.bukkit.block.data
Modifier and Type
Interface
Description
`interface`
`Ageable`
'age' represents the different growth stages that a crop-like block can go through.
`interface`
`AnaloguePowerable`
'power' represents the redstone power level currently being emitted or transmitted via this block.
`interface`
`Attachable`
'attached' denotes whether a tripwire hook or string forms a complete tripwire circuit and is ready to trigger.
`interface`
`Bisected`
'half' denotes which half of a two block tall material this block is.
`interface`
`Directional`
'facing' represents the face towards which the block is pointing.
`interface`
`FaceAttachable`
'face' represents the face to which a lever or button is stuck.
`interface`
`Hangable`
'hanging' denotes whether the lantern is hanging from a block.
`interface`
`Levelled`
'level' represents the amount of fluid contained within this block, either by itself or inside a cauldron.
`interface`
`Lightable`
'lit' denotes whether this block (either a redstone torch or furnace) is currently lit - that is not burned out.
`interface`
`MultipleFacing`
This class encompasses the 'north', 'east', 'south', 'west', 'up', 'down' boolean flags which are used to set which faces of the block textures are displayed on.
`interface`
`Openable`
'open' denotes whether this block is currently opened.
`interface`
`Orientable`
'axis' represents the axis along whilst this block is oriented.
`interface`
`Powerable`
'powered' indicates whether this block is in the powered state or not, i.e.
`interface`
`Rail`
'shape' represents the current layout of a minecart rail.
`interface`
`Rotatable`
'rotation' represents the current rotation of this block.
`interface`
`Snowable`
'snowy' denotes whether this block has a snow covered side and top texture (normally because the block above is snow).
`interface`
`Waterlogged`
'waterlogged' denotes whether this block has fluid in it.
Methods in org.bukkit.block.data that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
BlockData.`clone()`
Returns a copy of this BlockData.
`@NotNull BlockData`
BlockData.`merge(@NotNull BlockData data)`
Merges all explicitly set states from the given data with this BlockData.
Methods in org.bukkit.block.data with parameters of type BlockData
Modifier and Type
Method
Description
`boolean`
BlockData.`matches(@Nullable BlockData data)`
Checks if the specified BlockData matches this block data.
`@NotNull BlockData`
BlockData.`merge(@NotNull BlockData data)`
Merges all explicitly set states from the given data with this BlockData.

## Uses of BlockData in org.bukkit.block.data.type

Subinterfaces of BlockData in org.bukkit.block.data.type
Modifier and Type
Interface
Description
`interface`
`AmethystCluster`
`interface`
`Bamboo`
'leaves' represents the size of the leaves on this bamboo block.
`interface`
`Barrel`
`interface`
`Bed`
Similar to `Bisected`, 'part' denotes which half of the bed this block corresponds to.
`interface`
`Beehive`
'honey_level' represents the amount of honey stored in the hive.
`interface`
`Bell`
'attachment' denotes how the bell is attached to its block.
`interface`
`BigDripleaf`
'tilt' indicates how far the leaf is tilted.
`interface`
`BrewingStand`
Interface to the 'has_bottle_0', 'has_bottle_1', 'has_bottle_2' flags on a brewing stand which indicate which bottles are rendered on the outside.
`interface`
`BubbleColumn`
'drag' indicates whether a force will be applied on entities moving through this block.
`interface`
`Cake`
'bites' represents the amount of bites which have been taken from this slice of cake.
`interface`
`Campfire`
'signal_fire' denotes whether the fire is extra smokey due to having a hay bale placed beneath it.
`interface`
`Candle`
'candles' represents the number of candles which are present.
`interface`
`CaveVines`
`interface`
`CaveVinesPlant`
'berries' indicates whether the block has berries.
`interface`
`Chain`
`interface`
`Chest`
'type' represents which part of a double chest this block is, or if it is a single chest.
`interface`
`ChiseledBookshelf`
Interface to the 'slot_0_occupied', 'slow_1_occupied' ...
`interface`
`Cocoa`
`interface`
`CommandBlock`
'conditional' denotes whether this command block is conditional or not, i.e.
`interface`
`Comparator`
'mode' indicates what mode this comparator will operate in.
`interface`
`CoralWallFan`
`interface`
`DaylightDetector`
'inverted' denotes whether this daylight detector is in the inverted mode, i.e.
`interface`
`Dispenser`
Similar to `Powerable`, 'triggered' indicates whether or not the dispenser is currently activated.
`interface`
`Door`
'hinge' indicates which hinge this door is attached to and will rotate around when opened.
`interface`
`Dripleaf`
`interface`
`EnderChest`
`interface`
`EndPortalFrame`
'eye' denotes whether this end portal frame has been activated by having an eye of ender placed in it.
`interface`
`Farmland`
The 'moisture' level of farmland indicates how close it is to a water source (if any).
`interface`
`Fence`
`interface`
`Fire`
md_5's mixtape.
`interface`
`Furnace`
`interface`
`Gate`
'in_wall" indicates if the fence gate is attached to a wall, and if true the texture is lowered by a small amount to blend in better.
`interface`
`GlassPane`
`interface`
`GlowLichen`
`interface`
`Grindstone`
`interface`
`HangingSign`
`interface`
`Hopper`
Similar to `Powerable`, 'enabled' indicates whether or not the hopper is currently activated.
`interface`
`Jigsaw`
'orientation' is the direction the block is facing.
`interface`
`Jukebox`
'has_record' is a quick flag to check whether this jukebox has a record inside it.
`interface`
`Ladder`
`interface`
`Lantern`
`interface`
`Leaves`
'persistent' indicates whether or not leaves will be checked by the server to see if they are subject to decay or not.
`interface`
`Lectern`
'has_book' is a quick flag to check whether this lectern has a book inside it.
`interface`
`Light`
`interface`
`LightningRod`
`interface`
`MangrovePropagule`
`interface`
`NoteBlock`
'instrument' is the type of sound made when this note block is activated.
`interface`
`Observer`
`interface`
`Piston`
'extended' denotes whether the piston head is currently extended or not.
`interface`
`PistonHead`
'short' denotes this piston head is shorter than the usual amount because it is currently retracting.
`interface`
`PointedDripstone`
'thickness' represents the dripstone thickness.
`interface`
`RedstoneRail`
A type of minecart rail which interacts with redstone in one way or another.
`interface`
`RedstoneWallTorch`
`interface`
`RedstoneWire`
'north', 'east', 'south', 'west' represent the types of connections this redstone wire has to adjacent blocks.
`interface`
`Repeater`
'delay' is the propagation delay of a repeater, i.e.
`interface`
`RespawnAnchor`
'charges' represents the amount of times the anchor may still be used.
`interface`
`Sapling`
'stage' represents the growth stage of a sapling.
`interface`
`Scaffolding`
'bottom' indicates whether the scaffolding is floating or not.
`interface`
`SculkCatalyst`
'bloom' indicates whether the sculk catalyst is actively spreading the sculk or not.
`interface`
`SculkSensor`
'sculk_sensor_phase' indicates the current operational phase of the sensor.
`interface`
`SculkShrieker`
'can_summon' indicates whether the sculk shrieker can summon the warden.
`interface`
`SculkVein`
`interface`
`SeaPickle`
'pickles' indicates the number of pickles in this block.
`interface`
`Sign`
`interface`
`Slab`
'type' represents what state the slab is in - either top, bottom, or a double slab occupying the full block.
`interface`
`SmallDripleaf`
`interface`
`Snow`
'layers' represents the amount of layers of snow which are present in this block.
`interface`
`Stairs`
'shape' represents the texture and bounding box shape of these stairs.
`interface`
`StructureBlock`
'mode' represents the different modes in which this structure block may operate.
`interface`
`Switch`
`interface`
`TechnicalPiston`
'type' represents the type of piston which this (technical) block corresponds to.
`interface`
`TNT`
'unstable' indicates whether this TNT will explode on punching.
`interface`
`TrapDoor`
`interface`
`Tripwire`
'disarmed' denotes that the tripwire was broken with shears and will not subsequently produce a current when destroyed.
`interface`
`TripwireHook`
`interface`
`TurtleEgg`
'hatch' is the number of turtles which may hatch from these eggs.
`interface`
`Wall`
This class encompasses the 'north', 'east', 'south', 'west', height flags which are used to set the height of a wall.
`interface`
`WallHangingSign`
`interface`
`WallSign`

## Uses of BlockData in org.bukkit.entity

Methods in org.bukkit.entity that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
FallingBlock.`getBlockData()`
Get the data for the falling block
`@Nullable BlockData`
Enderman.`getCarriedBlock()`
Gets the data of the block that the Enderman is carrying.
`@NotNull BlockData`
Minecart.`getDisplayBlockData()`
Gets the display block for this minecart.
Methods in org.bukkit.entity with parameters of type BlockData
Modifier and Type
Method
Description
`void`
Player.`sendBlockChange(@NotNull Location loc, @NotNull BlockData block)`
Send a block change.
`void`
Enderman.`setCarriedBlock(@Nullable BlockData blockData)`
Sets the data of the block that the Enderman is carrying.
`void`
Minecart.`setDisplayBlockData(@Nullable BlockData blockData)`
Sets the display block for this minecart.
Method parameters in org.bukkit.entity with type arguments of type BlockData
Modifier and Type
Method
Description
`default void`
Player.`sendMultiBlockChange(Map<Location,BlockData> blockChanges)`
Send multiple block changes.
`void`
Player.`sendMultiBlockChange(Map<Location,BlockData> blockChanges, boolean suppressLightUpdates)`
Send multiple block changes.

## Uses of BlockData in org.bukkit.event.block

Fields in org.bukkit.event.block declared as BlockData
Modifier and Type
Field
Description
`protected BlockData`
BlockCanBuildEvent.`blockData`
Methods in org.bukkit.event.block that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
BlockCanBuildEvent.`getBlockData()`
Gets the BlockData that we are trying to place.
`@NotNull BlockData`
BlockPhysicsEvent.`getChangedBlockData()`
Gets the BlockData of the block that changed, causing this event.
`@NotNull BlockData`
FluidLevelChangeEvent.`getNewData()`
Gets the new data of the changed block.
Methods in org.bukkit.event.block with parameters of type BlockData
Modifier and Type
Method
Description
`void`
FluidLevelChangeEvent.`setNewData(@NotNull BlockData newData)`
Sets the new data of the changed block.
Constructors in org.bukkit.event.block with parameters of type BlockData
Modifier
Constructor
Description
``
`BlockCanBuildEvent(@NotNull Block block, @NotNull BlockData type, boolean canBuild)`
Deprecated.
``
`BlockCanBuildEvent(@NotNull Block block, @Nullable Player player, @NotNull BlockData type, boolean canBuild)`
``
`BlockPhysicsEvent(@NotNull Block block, @NotNull BlockData changed)`
``
`BlockPhysicsEvent(@NotNull Block block, @NotNull BlockData changed, @NotNull Block sourceBlock)`
``
`BlockPhysicsEvent(Block block, BlockData changed, int sourceX, int sourceY, int sourceZ)`
Deprecated.
``
`FluidLevelChangeEvent(@NotNull Block theBlock, @NotNull BlockData newData)`

## Uses of BlockData in org.bukkit.event.entity

Methods in org.bukkit.event.entity that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
EntityChangeBlockEvent.`getBlockData()`
Gets the data for the block that would be changed into
Constructors in org.bukkit.event.entity with parameters of type BlockData
Modifier
Constructor
Description
``
`EntityChangeBlockEvent(@NotNull Entity what, @NotNull Block block, @NotNull BlockData to)`

## Uses of BlockData in org.bukkit.generator

Methods in org.bukkit.generator that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
ChunkGenerator.ChunkData.`getBlockData(int x, int y, int z)`
Get the type and data of the block at x, y, z.
`default @NotNull BlockData`
LimitedRegion.`getBlockData(@NotNull Vector vector)`
Gets the `BlockData` of the block at the provided coordinates.
Methods in org.bukkit.generator with parameters of type BlockData
Modifier and Type
Method
Description
`void`
ChunkGenerator.ChunkData.`setBlock(int x, int y, int z, @NotNull BlockData blockData)`
Set the block at x,y,z in the chunk data to material.
`default void`
LimitedRegion.`setBlockData(@NotNull Vector vector, @NotNull BlockData data)`
Sets the block at a vector location to the provided `BlockData`.
`void`
ChunkGenerator.ChunkData.`setRegion(int xMin, int yMin, int zMin, int xMax, int yMax, int zMax, @NotNull BlockData blockData)`
Set a region of this chunk from xMin, yMin, zMin (inclusive) to xMax, yMax, zMax (exclusive) to material.

## Uses of BlockData in org.bukkit.inventory.meta

Methods in org.bukkit.inventory.meta that return BlockData
Modifier and Type
Method
Description
`@NotNull BlockData`
BlockDataMeta.`getBlockData(@NotNull Material material)`
Returns the currently attached block data for this item or creates a new one if one doesn't exist.
Methods in org.bukkit.inventory.meta with parameters of type BlockData
Modifier and Type
Method
Description
`void`
BlockDataMeta.`setBlockData(@NotNull BlockData blockData)`
Attaches a copy of the passed block data to the item.