From 17867b12b25fd9d25d90cf408c464ef4a1ce06e7 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 18 Jan 2020 20:10:06 -0600 Subject: [PATCH] Add effect to block break naturally (#2819) --- .../Add-effect-to-block-break-naturally.patch | 30 +++++++++++++++++ .../Add-effect-to-block-break-naturally.patch | 32 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 Spigot-API-Patches/Add-effect-to-block-break-naturally.patch create mode 100644 Spigot-Server-Patches/Add-effect-to-block-break-naturally.patch diff --git a/Spigot-API-Patches/Add-effect-to-block-break-naturally.patch b/Spigot-API-Patches/Add-effect-to-block-break-naturally.patch new file mode 100644 index 0000000000..4813330b00 --- /dev/null +++ b/Spigot-API-Patches/Add-effect-to-block-break-naturally.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Thu, 2 Jan 2020 12:25:16 -0600 +Subject: [PATCH] Add effect to block break naturally + + +diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java +index 038de5a6..a14a7583 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 { + */ + boolean breakNaturally(@NotNull ItemStack tool); + ++ // Paper start ++ /** ++ * Breaks the block and spawns items as if a player had digged 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 ++ */ ++ boolean breakNaturally(@NotNull ItemStack tool, boolean triggerEffect); ++ // Paper end ++ + /** + * Returns a list of items which would drop by destroying this block + * +-- \ No newline at end of file diff --git a/Spigot-Server-Patches/Add-effect-to-block-break-naturally.patch b/Spigot-Server-Patches/Add-effect-to-block-break-naturally.patch new file mode 100644 index 0000000000..95044800ad --- /dev/null +++ b/Spigot-Server-Patches/Add-effect-to-block-break-naturally.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Thu, 2 Jan 2020 12:25:07 -0600 +Subject: [PATCH] Add effect to block break naturally + + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +index a667e58ed..78e84c3d6 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +@@ -0,0 +0,0 @@ public class CraftBlock implements Block { + + @Override + public boolean breakNaturally(ItemStack item) { ++ // Paper start ++ return breakNaturally(item, false); ++ } ++ ++ @Override ++ public boolean breakNaturally(ItemStack item, boolean triggerEffect) { ++ // Paper end + // Order matters here, need to drop before setting to air so skulls can get their data + net.minecraft.server.Block block = this.getNMSBlock(); + boolean result = false; + + if (block != null && block != Blocks.AIR) { + net.minecraft.server.Block.dropItems(getNMS(), world.getMinecraftWorld(), position, world.getTileEntity(position), null, CraftItemStack.asNMSCopy(item)); ++ if (triggerEffect) world.triggerEffect(org.bukkit.Effect.STEP_SOUND.getId(), position, net.minecraft.server.Block.getCombinedId(block.getBlockData())); // Paper + result = true; + } + +-- \ No newline at end of file