Interface Block
- All Superinterfaces:
Metadatable,Translatable,Translatable
Note that parts of this class which require access to the world at large (i.e. lighting and power) may not be able to be safely accessed during world generation when used in cases like BlockPhysicsEvent!!!!
-
Method Summary
Modifier and TypeMethodDescriptionbooleanapplyBoneMeal(@NotNull BlockFace face) Simulate bone meal application to this block (if possible).booleanBreaks the block and spawns items as if a player had digged it regardless of the tool.default booleanbreakNaturally(boolean triggerEffect) Breaks the block and spawns item drops as if a player had broken itbooleanbreakNaturally(boolean triggerEffect, boolean dropExperience) Breaks the block and spawns item drops as if a player had broken itdefault booleanbreakNaturally(@NotNull ItemStack tool, boolean triggerEffect) Breaks the block and spawns item drops as if a player had broken it with a specific toolbooleanbreakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience) Breaks the block and spawns item drops as if a player had broken it with a specific toolbooleanbreakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience, boolean forceEffect) Breaks the block and spawns item drops as if a player had broken it with a specific toolbooleanbreakNaturally(@Nullable ItemStack tool) Breaks the block and spawns items as if a player had digged it with a specific toolbooleanChecks if this block is a valid placement location for the specified block data.voidCauses the fluid to be ticked, this is different fromrandomTick(), in that it is usually scheduled to occur, for example causing waterlogged blocks to spread.@NotNull BiomegetBiome()Returns the biome that this block resides in@NotNull BlockDataGets the complete block data for this blockdefault longDeprecated.static longgetBlockKey(int x, int y, int z) Deprecated.only encodes y block ranges from -512 to 511 and represents an already changed implementation detailstatic intgetBlockKeyX(long packed) Deprecated.static intgetBlockKeyY(long packed) Deprecated.static intgetBlockKeyZ(long packed) Deprecated.intReturns the redstone power being provided to this blockintgetBlockPower(@NotNull BlockFace face) Returns the redstone power being provided to this block faceGets theSoundGroupfor this block.@NotNull BoundingBoxGets the approximate bounding box for this block.floatgetBreakSpeed(@NotNull Player player) Gets the speed at which the given player would break this block, taking into account tools, potion effects, whether or not the player is in water, enchantments, etc.@NotNull ChunkgetChunk()Gets the chunk which contains this block@NotNull VoxelShapeGets the collision shape of this block.@NotNull BiomeGets the computed biome at the location of this Block.bytegetData()Deprecated, for removal: This API element is subject to removal in a future version.Magic valuedefault floatgetDestroySpeed(@NotNull ItemStack itemStack) Gets the speed at which this block will be destroyed by a givenItemStackdefault floatgetDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants) Gets the speed at which this block will be destroyed by a givenItemStack@NotNull Collection<ItemStack> getDrops()Returns a list of items which could drop by destroying this block.@NotNull Collection<ItemStack> Returns a list of items which could drop by destroying this block with a specific tool.@NotNull Collection<ItemStack> Returns a list of items which could drop by the entity destroying this block with a specific tool.@Nullable BlockFaceGets the face relation of this block compared to the given block.doubleGets the humidity of the biome of this blockbyteGet the amount of light at this block from nearby blocks.byteGet the amount of light at this block from the sky.byteGets the light level between 0-15@NotNull LocationGets the Location of the block@Nullable LocationgetLocation(@Nullable Location loc) Stores the location of the block in the provided Location object.@NotNull PistonMoveReactionReturns the reaction of the block when moved by a piston@NotNull BlockgetRelative(int modX, int modY, int modZ) Gets the block at the given offsets@NotNull BlockgetRelative(@NotNull BlockFace face) Gets the block at the given face@NotNull BlockgetRelative(@NotNull BlockFace face, int distance) Gets the block at the given distance of the given faceDeprecated, for removal: This API element is subject to removal in a future version.@NotNull BlockStategetState()Captures the current state of this block.@NotNull BlockStategetState(boolean useSnapshot) doubleGets the temperature of this block.@NotNull StringDeprecated, for removal: This API element is subject to removal in a future version.@NotNull MaterialgetType()Gets the type of this block@NotNull WorldgetWorld()Gets the world which contains this BlockintgetX()Gets the x-coordinate of this blockintgetY()Gets the y-coordinate of this blockintgetZ()Gets the z-coordinate of this blockbooleanisBlockFaceIndirectlyPowered(@NotNull BlockFace face) Returns true if the block face is being indirectly powered by Redstone.booleanisBlockFacePowered(@NotNull BlockFace face) Returns true if the block face is being powered by Redstone.booleanReturns true if the block is being indirectly powered by Redstone.booleanReturns true if the block is being powered by Redstone.booleanCheck if this block is solidbooleanCheck if this block is burnablebooleanChecks if this block is collidable.booleanisEmpty()Checks if this block is empty.booleanisLiquid()Checks if this block is liquid.booleanChecks if this block is passable.booleanisPreferredTool(@NotNull ItemStack tool) Returns if the given item is a preferred choice to break this Block.booleanChecks if this block can be immediately replaced by another block, such as placing a new block in air or tall grass.booleanisSolid()Check if this block is solidbooleanChecks if the block can suffocate.booleanisValidTool(@NotNull ItemStack itemStack) Deprecated, for removal: This API element is subject to removal in a future version.partially replaced byisPreferredTool(ItemStack)voidCauses the block to be ticked randomly.@Nullable RayTraceResultrayTrace(@NotNull Location start, @NotNull Vector direction, double maxDistance, @NotNull FluidCollisionMode fluidCollisionMode) Performs a ray trace that checks for collision with this specific block in its current state using its precise collision shape.voidSets the biome that this block resides invoidsetBlockData(@NotNull BlockData data) Sets the complete data for this blockvoidsetBlockData(@NotNull BlockData data, boolean applyPhysics) Sets the complete data for this block
Note that applyPhysics = false is not in general safe.voidSets the type of this blockvoidSets the type of this block
Note that applyPhysics = false is not in general safe.voidtick()Causes the block to be ticked, this is different fromrandomTick(), in that it is usually scheduled to occur, for example redstone components being activated, sand falling, etc.Methods inherited from interface org.bukkit.metadata.Metadatable
getMetadata, hasMetadata, removeMetadata, setMetadataMethods inherited from interface net.kyori.adventure.translation.Translatable
translationKey
-
Method Details
-
getData
Deprecated, for removal: This API element is subject to removal in a future version.Magic valueGets the metadata for this block- Returns:
- block specific metadata
-
getBlockData
Gets the complete block data for this block- Returns:
- block specific data
-
getRelative
Gets the block at the given offsets- Parameters:
modX- X-coordinate offsetmodY- Y-coordinate offsetmodZ- Z-coordinate offset- Returns:
- Block at the given offsets
-
getRelative
Gets the block at the given faceThis method is equal to getRelative(face, 1)
- Parameters:
face- Face of this block to return- Returns:
- Block at the given face
- See Also:
-
getRelative
Gets the block at the given distance of the given faceFor example, the following method places water at 100,102,100; two blocks above 100,100,100.
Block block = world.getBlockAt(100, 100, 100); Block shower = block.getRelative(BlockFace.UP, 2); shower.setType(Material.WATER);
- Parameters:
face- Face of this block to returndistance- Distance to get the block at- Returns:
- Block at the given face
-
getType
Gets the type of this block- Returns:
- block type
-
getLightLevel
byte getLightLevel()Gets the light level between 0-15- Returns:
- light level
-
getLightFromSky
byte getLightFromSky()Get the amount of light at this block from the sky.Any light given from other sources (such as blocks like torches) will be ignored.
- Returns:
- Sky light level
-
getLightFromBlocks
byte getLightFromBlocks()Get the amount of light at this block from nearby blocks.Any light given from other sources (such as the sun) will be ignored.
- Returns:
- Block light level
-
getWorld
Gets the world which contains this Block- Returns:
- World containing this block
-
getX
int getX()Gets the x-coordinate of this block- Returns:
- x-coordinate
-
getY
int getY()Gets the y-coordinate of this block- Returns:
- y-coordinate
-
getZ
int getZ()Gets the z-coordinate of this block- Returns:
- z-coordinate
-
getBlockKey
Deprecated.Returns this block's coordinates packed into a long value. Computed via:Block.getBlockKey(this.getX(), this.getY(), this.getZ())- Returns:
- This block's x, y, and z coordinates packed into a long value
- See Also:
-
getBlockKey
Deprecated.only encodes y block ranges from -512 to 511 and represents an already changed implementation detailReturns the specified block coordinates packed into a long valueThe return value can be computed as follows:
long value = ((long)x & 0x7FFFFFF) | (((long)z & 0x7FFFFFF) << 27) | ((long)y << 54);And may be unpacked as follows:
int x = (int) ((packed << 37) >> 37);
int y = (int) (packed >> 54);
int z = (int) ((packed << 10) >> 37);- Returns:
- This block's x, y, and z coordinates packed into a long value
-
getBlockKeyX
Deprecated.Returns the x component from the packed value.- Parameters:
packed- The packed value, as computed bygetBlockKey(int, int, int)- Returns:
- The x component from the packed value.
- See Also:
-
getBlockKeyY
Deprecated.Returns the y component from the packed value.- Parameters:
packed- The packed value, as computed bygetBlockKey(int, int, int)- Returns:
- The y component from the packed value.
- See Also:
-
getBlockKeyZ
Deprecated.Returns the z component from the packed value.- Parameters:
packed- The packed value, as computed bygetBlockKey(int, int, int)- Returns:
- The z component from the packed value.
- See Also:
-
isValidTool
@Deprecated(since="1.21", forRemoval=true) boolean isValidTool(@NotNull @NotNull ItemStack itemStack) Deprecated, for removal: This API element is subject to removal in a future version.partially replaced byisPreferredTool(ItemStack)Checks if the itemstack is a valid tool to break the block with- Parameters:
itemStack- The (tool) itemstack- Returns:
- whether the block will drop items
-
getLocation
Gets the Location of the block- Returns:
- Location of block
-
getLocation
@Contract("null -> null; !null -> !null") @Nullable @Nullable Location getLocation(@Nullable @Nullable Location loc) Stores the location of the block in the provided Location object.If the provided Location is null this method does nothing and returns null.
- Parameters:
loc- the location to copy into- Returns:
- The Location object provided or null
-
getChunk
Gets the chunk which contains this block- Returns:
- Containing Chunk
-
setBlockData
Sets the complete data for this block- Parameters:
data- new block specific data
-
setBlockData
Sets the complete data for this block
Note that applyPhysics = false is not in general safe. It should only be used when you need to avoid triggering a physics update of neighboring blocks, for example when creating aBisectedblock. If you are using a custom populator, then this parameter may also be required to prevent triggering infinite chunk loads on border blocks. This method should NOT be used to "hack" physics by placing blocks in impossible locations. Such blocks are liable to be removed on various events such as world upgrades. Furthermore setting large amounts of such blocks in close proximity may overload the server physics engine if an update is triggered at a later point. If this occurs, the resulting behavior is undefined.- Parameters:
data- new block specific dataapplyPhysics- false to cancel physics from the changed block
-
setType
Sets the type of this block- Parameters:
type- Material to change this block to
-
setType
Sets the type of this block
Note that applyPhysics = false is not in general safe. It should only be used when you need to avoid triggering a physics update of neighboring blocks, for example when creating aBisectedblock. If you are using a custom populator, then this parameter may also be required to prevent triggering infinite chunk loads on border blocks. This method should NOT be used to "hack" physics by placing blocks in impossible locations. Such blocks are liable to be removed on various events such as world upgrades. Furthermore setting large amounts of such blocks in close proximity may overload the server physics engine if an update is triggered at a later point. If this occurs, the resulting behavior is undefined.- Parameters:
type- Material to change this block toapplyPhysics- False to cancel physics on the changed block.
-
getFace
Gets the face relation of this block compared to the given block.For example:
Block current = world.getBlockAt(100, 100, 100); Block target = world.getBlockAt(100, 101, 100); current.getFace(target) == BlockFace.Up;
If the given block is not connected to this block, null may be returned- Parameters:
block- Block to compare against this block- Returns:
- BlockFace of this block which has the requested block, or null
-
getState
Captures the current state of this block. You may then cast that state into any accepted type, such as Furnace or Sign.The returned object will never be updated, and you are not guaranteed that (for example) a sign is still a sign after you capture its state.
- Returns:
- BlockState with the current state of this block.
-
getState
- Parameters:
useSnapshot- if this block is a block entity, should we create a full copy of the BlockEntity- Returns:
- BlockState with the current state of this block
- See Also:
-
getBiome
Returns the biome that this block resides in- Returns:
- Biome type containing this block
- See Also:
-
getComputedBiome
Gets the computed biome at the location of this Block.- Returns:
- computed biome at the location of this Block.
- See Also:
-
setBiome
Sets the biome that this block resides in- Parameters:
bio- new Biome type for this block
-
isBlockPowered
boolean isBlockPowered()Returns true if the block is being powered by Redstone.- Returns:
- True if the block is powered.
-
isBlockIndirectlyPowered
boolean isBlockIndirectlyPowered()Returns true if the block is being indirectly powered by Redstone.- Returns:
- True if the block is indirectly powered.
-
isBlockFacePowered
Returns true if the block face is being powered by Redstone.- Parameters:
face- The block face- Returns:
- True if the block face is powered.
-
isBlockFaceIndirectlyPowered
Returns true if the block face is being indirectly powered by Redstone.- Parameters:
face- The block face- Returns:
- True if the block face is indirectly powered.
-
getBlockPower
Returns the redstone power being provided to this block face- Parameters:
face- the face of the block to query or BlockFace.SELF for the block itself- Returns:
- The power level.
-
getBlockPower
int getBlockPower()Returns the redstone power being provided to this block- Returns:
- The power level.
-
isEmpty
boolean isEmpty()Checks if this block is empty.A block is considered empty when
getType()returnsMaterial.AIR.- Returns:
- true if this block is empty
-
isLiquid
boolean isLiquid()Checks if this block is liquid.A block is considered liquid when
getType()returnsMaterial.WATERorMaterial.LAVA.- Returns:
- true if this block is liquid
-
isBuildable
boolean isBuildable()Check if this block is solidDetermined by Minecraft, typically a block a player can use to place a new block to build things. An example of a non buildable block would be liquids, flowers, or fire
- Returns:
- true if block is buildable
-
isBurnable
boolean isBurnable()Check if this block is burnableDetermined by Minecraft, typically a block that fire can destroy (Wool, Wood)
- Returns:
- true if block is burnable
-
isReplaceable
boolean isReplaceable()Checks if this block can be immediately replaced by another block, such as placing a new block in air or tall grass.- Returns:
- true if block is replaceable
-
isSolid
boolean isSolid()Check if this block is solidDetermined by Minecraft, typically a block a player can stand on and can't be passed through. This API is faster than accessing Material#isSolid as it avoids a material lookup and switch statement.
- Returns:
- true if block is solid
-
isCollidable
boolean isCollidable()Checks if this block is collidable.- Returns:
- true if collidable
-
getTemperature
double getTemperature()Gets the temperature of this block.- Returns:
- Temperature of this block
-
getHumidity
double getHumidity()Gets the humidity of the biome of this block- Returns:
- Humidity of this block
-
getPistonMoveReaction
Returns the reaction of the block when moved by a piston- Returns:
- reaction
-
breakNaturally
boolean breakNaturally()Breaks the block and spawns items as if a player had digged it regardless of the tool.- Returns:
- true if the block was destroyed
-
breakNaturally
Breaks the block and spawns items as if a player had digged it with a specific tool- Parameters:
tool- The tool or item in hand used for digging- Returns:
- true if the block was destroyed
-
breakNaturally
default boolean breakNaturally(boolean triggerEffect) Breaks the block and spawns item drops as if a player had broken it- Parameters:
triggerEffect- Play the block break particle effect and sound- Returns:
- true if the block was destroyed
- See Also:
-
breakNaturally
boolean breakNaturally(boolean triggerEffect, boolean dropExperience) Breaks the block and spawns item drops as if a player had broken it- Parameters:
triggerEffect- Play the block break particle effect and sounddropExperience- drop exp if the block normally does so- Returns:
- true if the block was destroyed
-
breakNaturally
Breaks the block and spawns item drops as if a player had broken it with a specific tool- Parameters:
tool- The tool or item in hand used for diggingtriggerEffect- Play the block break particle effect and sound- Returns:
- true if the block was destroyed
- See Also:
-
breakNaturally
boolean breakNaturally(@NotNull @NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience) Breaks the block and spawns item drops as if a player had broken it with a specific tool- Parameters:
tool- The tool or item in hand used for diggingtriggerEffect- Play the block break particle effect and sounddropExperience- drop exp if the block normally does so- Returns:
- true if the block was destroyed
-
breakNaturally
boolean breakNaturally(@NotNull @NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience, boolean forceEffect) Breaks the block and spawns item drops as if a player had broken it with a specific tool- Parameters:
tool- The tool or item in hand used for diggingtriggerEffect- Play the block break particle effect and sounddropExperience- drop exp if the block normally does soforceEffect- Forces the break effect to be triggered even if the tool is not the correct tool for the block- Returns:
- true if the block was destroyed
-
tick
void tick()Causes the block to be ticked, this is different fromrandomTick(), in that it is usually scheduled to occur, for example redstone components being activated, sand falling, etc.This method may directly fire events relating to block ticking.
- See Also:
-
fluidTick
void fluidTick()Causes the fluid to be ticked, this is different fromrandomTick(), in that it is usually scheduled to occur, for example causing waterlogged blocks to spread.This method may directly fire events relating to fluid ticking.
- See Also:
-
randomTick
void randomTick()Causes the block to be ticked randomly. This has a chance to execute naturally ifBlockData.isRandomlyTicked()is true.For certain blocks, this behavior may be the same as
tick().This method may directly fire events relating to block random ticking.
- See Also:
-
applyBoneMeal
Simulate bone meal application to this block (if possible).- Parameters:
face- the face on which bonemeal should be applied- Returns:
- true if the block was bonemealed, false otherwise
-
getDrops
Returns a list of items which could drop by destroying this block.The items are not guaranteed to be consistent across multiple calls to this method as this just uses the block type's loot table.
- Returns:
- a list of dropped items for this type of block
-
getDrops
Returns a list of items which could drop by destroying this block with a specific tool.The items are not guaranteed to be consistent across multiple calls to this method as this just uses the block type's loot table.
- Parameters:
tool- The tool or item in hand used for digging- Returns:
- a list of dropped items for this type of block
-
getDrops
@NotNull @NotNull Collection<ItemStack> getDrops(@Nullable @Nullable ItemStack tool, @Nullable @Nullable Entity entity) Returns a list of items which could drop by the entity destroying this block with a specific tool.The items are not guaranteed to be consistent across multiple calls to this method as this just uses the block type's loot table.
- Parameters:
tool- The tool or item in hand used for diggingentity- the entity destroying the block- Returns:
- a list of dropped items for this type of block
-
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.
-
getBreakSpeed
Gets the speed at which the given player would break this block, taking into account tools, potion effects, whether or not the player is in water, enchantments, etc. The returned value is the amount of progress made in breaking the block each tick. When the total breaking progress reaches1.0f, the block is broken. Note that the break speed can change in the course of breaking a block, e.g. if a potion effect is applied or expires, or the player jumps/enters water.- Parameters:
player- player breaking the block- Returns:
- the speed at which the player breaks this block
-
isPassable
boolean isPassable()Checks if this block is passable.A block is passable if it has no colliding parts that would prevent players from moving through it.
Examples: Tall grass, flowers, signs, etc. are passable, but open doors, fence gates, trap doors, etc. are not because they still have parts that can be collided with.
- Returns:
trueif passable
-
rayTrace
@Nullable @Nullable RayTraceResult rayTrace(@NotNull @NotNull Location start, @NotNull @NotNull Vector direction, double maxDistance, @NotNull @NotNull FluidCollisionMode fluidCollisionMode) Performs a ray trace that checks for collision with this specific block in its current state using its precise collision shape.- Parameters:
start- the start locationdirection- the ray directionmaxDistance- the maximum distancefluidCollisionMode- the fluid collision mode- Returns:
- the ray trace hit result, or
nullif there is no hit
-
getBoundingBox
Gets the approximate bounding box for this block.This isn't exact as some blocks
Stairscontain many bounding boxes to establish their complete form. Also, the box may not be exactly the same as the collision shape (such as cactus, which is 16/16 of a block with 15/16 collisional bounds). This method will return an empty bounding box if the geometric shape of the block is empty (such as air blocks).- Returns:
- the approximate bounding box of the block
-
getCollisionShape
Gets the collision shape of this block.- Returns:
- a
VoxelShaperepresenting the collision shape of this block.
-
canPlace
Checks if this block is a valid placement location for the specified block data.- Parameters:
data- the block data to check- Returns:
trueif the block data can be placed here
-
getSoundGroup
Deprecated, for removal: This API element is subject to removal in a future version.Gets theBlockSoundGroupfor this block.This object contains the block, step, place, hit, and fall sounds.
- Returns:
- the sound group for this block
-
getBlockSoundGroup
Gets theSoundGroupfor this block.- Returns:
- the sound group for this block
-
getTranslationKey
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:TranslatableGet the translation key, suitable for use in a translation component.- Specified by:
getTranslationKeyin interfaceTranslatable- Returns:
- the translation key
-
getDestroySpeed
Gets the speed at which this block will be destroyed by a givenItemStackDefault value is 1.0
-
getDestroySpeed
Gets the speed at which this block will be destroyed by a givenItemStackDefault value is 1.0
-
isSuffocating
boolean isSuffocating()Checks if the block can suffocate.- Returns:
trueif the block can suffocate
-
getBlockKey(int, int, int)