Interface BlockData
- All Superinterfaces:
Cloneable
- All Known Subinterfaces:
Ageable
,AmethystCluster
,AnaloguePowerable
,Attachable
,Bamboo
,Barrel
,Bed
,Beehive
,Bell
,BigDripleaf
,Bisected
,BrewingStand
,BubbleColumn
,Cake
,Campfire
,Candle
,CaveVines
,CaveVinesPlant
,Chain
,Chest
,ChiseledBookshelf
,Cocoa
,CommandBlock
,Comparator
,CoralWallFan
,DaylightDetector
,Directional
,Dispenser
,Door
,Dripleaf
,EnderChest
,EndPortalFrame
,FaceAttachable
,Farmland
,Fence
,Fire
,Furnace
,Gate
,GlassPane
,GlowLichen
,Grindstone
,Hangable
,HangingSign
,Hopper
,Jigsaw
,Jukebox
,Ladder
,Lantern
,Leaves
,Lectern
,Levelled
,Light
,Lightable
,LightningRod
,MangrovePropagule
,MultipleFacing
,NoteBlock
,Observer
,Openable
,Orientable
,Piston
,PistonHead
,PointedDripstone
,Powerable
,Rail
,RedstoneRail
,RedstoneWallTorch
,RedstoneWire
,Repeater
,RespawnAnchor
,Rotatable
,Sapling
,Scaffolding
,SculkCatalyst
,SculkSensor
,SculkShrieker
,SculkVein
,SeaPickle
,Sign
,Slab
,SmallDripleaf
,Snow
,Snowable
,Stairs
,StructureBlock
,Switch
,TechnicalPiston
,TNT
,TrapDoor
,Tripwire
,TripwireHook
,TurtleEgg
,Wall
,WallHangingSign
,WallSign
,Waterlogged
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Returns a copy of this BlockData.Gets a string, which when passed into a method such asServer.createBlockData(java.lang.String)
will unambiguously recreate this instance.getAsString
(boolean hideUnspecified) Gets a string, which when passed into a method such asServer.createBlockData(java.lang.String)
will recreate this or a similar instance where unspecified states (if any) may be optionally omitted.int
Get the amount of light emitted by this state when in the world.Get the Material represented by this block data.Returns the reaction of the block when moved by a pistonGets the block'sSoundGroup
which can be used to get its step sound, hit sound, and others.boolean
isFaceSturdy
(BlockFace face, BlockSupport support) Checks if a state'sBlockFace
is capable of providing a given level ofBlockSupport
for neighbouring block states.boolean
Check whether or not this state will occlude other blocks.boolean
isPreferredTool
(ItemStack tool) Returns if the given item is a preferred choice to break this Block.boolean
isSupported
(Block block) Checks if this state would be properly supported if it were placed at the givenBlock
.boolean
isSupported
(Location location) Checks if this state would be properly supported if it were placed at the block at the givenLocation
.boolean
Checks if the specified BlockData matches this block data.Merges all explicitly set states from the given data with this BlockData.boolean
Check whether or not this state requires a specific item to be used to drop items when broken.
-
Method Details
-
getMaterial
Get the Material represented by this block data.- Returns:
- the material
-
getAsString
Gets a string, which when passed into a method such asServer.createBlockData(java.lang.String)
will unambiguously recreate this instance.- Returns:
- serialized data string for this block
-
getAsString
Gets a string, which when passed into a method such asServer.createBlockData(java.lang.String)
will recreate this or a similar instance where unspecified states (if any) may be optionally omitted. If this instance was parsed and states are omitted, this exact instance will be creatable when parsed again, else their equality cannot be guaranteed.This method will only take effect for BlockData instances created by methods such as
Server.createBlockData(String)
or any similar method whereby states are optionally defined. If otherwise, the result ofgetAsString()
will be returned. The following behaviour would be expected:String dataString = "minecraft:chest[waterlogged=true]" BlockData data = Bukkit.createBlockData(dataString); dataString.equals(data.getAsString(true)); // This would return true dataString.equals(data.getAsString(false)); // This would return false as all states are present dataString.equals(data.getAsString()); // This is equivalent to the above, "getAsString(false)"
- Parameters:
hideUnspecified
- true if unspecified states should be omitted, false if they are to be shown as performed bygetAsString()
.- Returns:
- serialized data string for this block
-
merge
Merges all explicitly set states from the given data with this BlockData.
Note that the given data MUST have been created from one of the String parse methods, e.g.Server.createBlockData(java.lang.String)
and not have been subsequently modified.
Note also that the block types must match identically.- Parameters:
data
- the data to merge from- Returns:
- a new instance of this blockdata with the merged data
-
matches
Checks if the specified BlockData matches this block data.
The semantics of this method are such that for manually created or modified BlockData it has the same effect asObject.equals(java.lang.Object)
, whilst for parsed data (that to whichmerge(org.bukkit.block.data.BlockData)
applies, it will return true when the type and all explicitly set states match.
Note that these semantics mean that a.matches(b) may not be the same as b.matches(a)- Parameters:
data
- the data to match against (normally a parsed constant)- Returns:
- if there is a match
-
clone
Returns a copy of this BlockData.- Returns:
- a copy of the block data
-
getSoundGroup
Gets the block'sSoundGroup
which can be used to get its step sound, hit sound, and others.- Returns:
- the sound effect group
-
getLightEmission
int getLightEmission()Get the amount of light emitted by this state when in the world.- Returns:
- the light emission
-
isOccluding
boolean isOccluding()Check whether or not this state will occlude other blocks.Block state occlusion affects visual features of other blocks (e.g. leaves and wet sponges will not spawn dripping water particles if an occluding state is below it), or whether light will pass through it.
- Returns:
- true if occluding, false otherwise
-
requiresCorrectToolForDrops
boolean requiresCorrectToolForDrops()Check whether or not this state requires a specific item to be used to drop items when broken. For example, diamond ore requires an iron pickaxe and will not drop diamonds when broken with a wooden or stone pickaxe.- Returns:
- true if a more specific item is required for drops, false if any item (or an empty hand) will drop items
-
isPreferredTool
Returns if the given item is a preferred choice to break this Block. In some cases this determines if a block will drop anything or extra loot.- Parameters:
tool
- The tool or item used for breaking this block- Returns:
- true if the tool is preferred for breaking this block.
-
getPistonMoveReaction
Returns the reaction of the block when moved by a piston- Returns:
- reaction
-
isSupported
Checks if this state would be properly supported if it were placed at the givenBlock
.This may be useful, for instance, to check whether or not a wall torch is capable of surviving on its neighbouring block states.
- Parameters:
block
- the block position at which the state would be placed- Returns:
- true if the block is supported, false if this state would not survive the world conditions
-
isSupported
Checks if this state would be properly supported if it were placed at the block at the givenLocation
.This may be useful, for instance, to check whether or not a wall torch is capable of surviving on its neighbouring block states.
- Parameters:
location
- the location at which the state would be placed- Returns:
- true if the block is supported, false if this state would not survive the world conditions
-
isFaceSturdy
Checks if a state'sBlockFace
is capable of providing a given level ofBlockSupport
for neighbouring block states.Any given state may support either none, one, or more than one level of block support depending on its states. A common example would be a wall's ability to support torches only on the center of the upper block face, whereas a grass block would support all levels of block support on all block faces.
- Parameters:
face
- the face to checksupport
- the possible support level- Returns:
- true if the face is sturdy and can support a block, false otherwise
-