From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 2 Jan 2020 12:25:16 -0600 Subject: [PATCH] Improve Block#breakNaturally API Adds bool param to trigger world particle effects Adds bool param to trigger exp drops for blocks Co-authored-by: William Blake Galbreath diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable { */ boolean breakNaturally(@Nullable ItemStack tool); + // Paper start + /** + * Breaks the block and spawns item drops as if a player had broken it + * + * @param triggerEffect Play the block break particle effect and sound + * @return true if the block was destroyed + * @see #breakNaturally(boolean, boolean) to trigger exp drops + */ + default boolean breakNaturally(boolean triggerEffect) { + return this.breakNaturally(triggerEffect, false); + } + + /** + * Breaks the block and spawns item drops as if a player had broken it + * + * @param triggerEffect Play the block break particle effect and sound + * @param dropExperience drop exp if the block normally does so + * @return true if the block was destroyed + */ + boolean breakNaturally(boolean triggerEffect, boolean dropExperience); + + /** + * Breaks the block and spawns item drops as if a player had broken it + * with a specific tool + * + * @param tool The tool or item in hand used for digging + * @param triggerEffect Play the block break particle effect and sound + * @return true if the block was destroyed + * @see #breakNaturally(ItemStack, boolean, boolean) to trigger exp drops + */ + default boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect) { + return this.breakNaturally(tool, triggerEffect, false); + } + + /** + * Breaks the block and spawns item drops as if a player had broken it + * with a specific tool + * + * @param tool The tool or item in hand used for digging + * @param triggerEffect Play the block break particle effect and sound + * @param dropExperience drop exp if the block normally does so + * @return true if the block was destroyed + */ + boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect, boolean dropExperience); + // Paper end + /** * Simulate bone meal application to this block (if possible). *