diff --git a/paper-api/src/main/java/org/bukkit/Chunk.java b/paper-api/src/main/java/org/bukkit/Chunk.java index 82e611fee2..cf97c5a589 100644 --- a/paper-api/src/main/java/org/bukkit/Chunk.java +++ b/paper-api/src/main/java/org/bukkit/Chunk.java @@ -2,6 +2,8 @@ package org.bukkit; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Entity; /** * Represents a chunk of blocks @@ -38,4 +40,8 @@ public interface Chunk { * @return the Block */ Block getBlock(int x, int y, int z); + + Entity[] getEntities(); + + BlockState[] getTileEntities(); } diff --git a/paper-api/src/main/java/org/bukkit/block/Block.java b/paper-api/src/main/java/org/bukkit/block/Block.java index fb02f36215..0ec7e0ed22 100644 --- a/paper-api/src/main/java/org/bukkit/block/Block.java +++ b/paper-api/src/main/java/org/bukkit/block/Block.java @@ -4,7 +4,6 @@ import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.Location; -import org.bukkit.block.BlockState; /** * Represents a block. This is a live object, and only one Block may exist for @@ -136,6 +135,8 @@ public interface Block { * @param data New block specific metadata */ void setData(byte data); + + void setData(byte data, boolean applyPhyiscs); /** * Sets the type of this block @@ -151,6 +152,10 @@ public interface Block { * @return whether the block was changed */ boolean setTypeId(int type); + + boolean setTypeId(int type, boolean applyPhysics); + + boolean setTypeIdAndData(int type, byte data, boolean applyPhyiscs); /** * Gets the face relation of this block compared to the given block
@@ -201,4 +206,33 @@ public interface Block { * @return */ boolean isBlockIndirectlyPowered(); + + /** + * Returns true if the block face is being powered by Redstone. + * + * @return + */ + boolean isBlockFacePowered(BlockFace face); + + /** + * Returns true if the block face is being indirectly powered by Redstone. + * + * @return + */ + boolean isBlockFaceIndirectlyPowered(BlockFace face); + + /** + * Returns the redstone power being provided to this block face + * + * @param face the face of the block to query or BlockFace.SELF for the block itself + * @return + */ + int getBlockPower(BlockFace face); + + /** + * Returns the redstone power being provided to this block + * + * @return + */ + int getBlockPower(); } diff --git a/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java b/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java index 97cd6281aa..f9b221ee3b 100644 --- a/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/paper-api/src/main/java/org/bukkit/entity/LivingEntity.java @@ -3,6 +3,8 @@ package org.bukkit.entity; import java.util.HashSet; import java.util.List; + +import org.bukkit.Location; import org.bukkit.block.Block; /** @@ -38,6 +40,13 @@ public interface LivingEntity extends Entity { */ public double getEyeHeight(boolean ignoreSneaking); + /** + * Get a Location detailing the current eye position of the LivingEntity. + * + * @return a Location at the eyes of the LivingEntity. + */ + public Location getEyeLocation(); + /** * Gets all blocks along the player's line of sight * List iterates from player's position to target inclusive