From 83f547f227b54c39596426df69319918bde7082b Mon Sep 17 00:00:00 2001 From: konsolas Date: Mon, 14 Jun 2021 08:27:32 +1000 Subject: [PATCH] #623: Add Block#getBreakSpeed(Player) --- src/main/java/org/bukkit/block/Block.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java index d4c69573..bd20c4a8 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -9,6 +9,7 @@ import org.bukkit.World; import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.metadata.Metadatable; import org.bukkit.util.BoundingBox; @@ -441,6 +442,22 @@ public interface Block extends Metadatable { */ boolean isPreferredTool(@NotNull ItemStack tool); + /** + * 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. + * When the total breaking progress reaches {@code 1.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. + * + * @param player player breaking the block + * @return the speed at which the player breaks this block + */ + float getBreakSpeed(@NotNull Player player); + /** * Checks if this block is passable. *