Interface Block

  • All Superinterfaces:
    Metadatable

    public interface Block
    extends Metadatable
    Represents a block. This is a live object, and only one Block may exist for any given location in a world. The state of the block may change concurrently to your own handling of it; use block.getState() to get a snapshot state of a block which will not be modified.
    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 Detail

      • getData

        @Deprecated
        byte getData()
        Deprecated.
        Magic value
        Gets the metadata for this block
        Returns:
        block specific metadata
      • getBlockData

        BlockData getBlockData()
        Gets the complete block data for this block
        Returns:
        block specific data
      • getRelative

        Block getRelative​(int modX,
                          int modY,
                          int modZ)
        Gets the block at the given offsets
        Parameters:
        modX - X-coordinate offset
        modY - Y-coordinate offset
        modZ - Z-coordinate offset
        Returns:
        Block at the given offsets
      • getRelative

        Block getRelative​(BlockFace face)
        Gets the block at the given face

        This method is equal to getRelative(face, 1)

        Parameters:
        face - Face of this block to return
        Returns:
        Block at the given face
        See Also:
        getRelative(BlockFace, int)
      • getRelative

        Block getRelative​(BlockFace face,
                          int distance)
        Gets the block at the given distance of the given face

        For 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 return
        distance - Distance to get the block at
        Returns:
        Block at the given face
      • getType

        Material 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

        World 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
      • getLocation

        Location getLocation()
        Gets the Location of the block
        Returns:
        Location of block
      • getLocation

        Location getLocation​(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

        Chunk getChunk()
        Gets the chunk which contains this block
        Returns:
        Containing Chunk
      • setBlockData

        void setBlockData​(BlockData data)
        Sets the complete data for this block
        Parameters:
        data - new block specific data
      • setBlockData

        void setBlockData​(BlockData data,
                          boolean applyPhysics)
        Sets the complete data for this block
        Parameters:
        data - new block specific data
        applyPhysics - false to cancel physics from the changed block
      • setType

        void setType​(Material type)
        Sets the type of this block
        Parameters:
        type - Material to change this block to
      • setType

        void setType​(Material type,
                     boolean applyPhysics)
        Sets the type of this block
        Parameters:
        type - Material to change this block to
        applyPhysics - False to cancel physics on the changed block.
      • getFace

        BlockFace getFace​(Block block)
        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

        BlockState 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.
      • getBiome

        Biome getBiome()
        Returns the biome that this block resides in
        Returns:
        Biome type containing this block
      • setBiome

        void setBiome​(Biome bio)
        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

        boolean isBlockFacePowered​(BlockFace face)
        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

        boolean isBlockFaceIndirectlyPowered​(BlockFace face)
        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

        int getBlockPower​(BlockFace face)
        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() returns Material.AIR.

        Returns:
        true if this block is empty
      • isLiquid

        boolean isLiquid()
        Checks if this block is liquid.

        A block is considered liquid when getType() returns Material.WATER or Material.LAVA.

        Returns:
        true if this block is liquid
      • getTemperature

        double getTemperature()
        Gets the temperature of the biome 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

        PistonMoveReaction 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
        Returns:
        true if the block was destroyed
      • breakNaturally

        boolean breakNaturally​(ItemStack tool)
        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
      • getDrops

        Collection<ItemStack> getDrops()
        Returns a list of items which would drop by destroying this block
        Returns:
        a list of dropped items for this type of block
      • getDrops

        Collection<ItemStack> getDrops​(ItemStack tool)
        Returns a list of items which would drop by destroying this block with a specific tool
        Parameters:
        tool - The tool or item in hand used for digging
        Returns:
        a list of dropped items for this type of 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:
        true if passable