From ac2d5374c7c53d45c2491d4cc74b223556d2888c Mon Sep 17 00:00:00 2001 From: Warrior <50800980+Warriorrrr@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:37:27 +0100 Subject: [PATCH] Fix BlockDestroyEvents effectBlock not being set --- patches/api/0168-BlockDestroyEvent.patch | 7 ++++--- patches/server/0288-BlockDestroyEvent.patch | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/patches/api/0168-BlockDestroyEvent.patch b/patches/api/0168-BlockDestroyEvent.patch index 5046b085e6b98..d93bf249fd76f 100644 --- a/patches/api/0168-BlockDestroyEvent.patch +++ b/patches/api/0168-BlockDestroyEvent.patch @@ -12,10 +12,10 @@ This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java b/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..5465f0dc890ad8825b910c2a77fd9c0868115ebe +index 0000000000000000000000000000000000000000..871e4482859ca0e346236e351845a145a3b4864e --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/block/BlockDestroyEvent.java -@@ -0,0 +1,121 @@ +@@ -0,0 +1,122 @@ +package com.destroystokyo.paper.event.block; + +import org.bukkit.block.Block; @@ -48,9 +48,10 @@ index 0000000000000000000000000000000000000000..5465f0dc890ad8825b910c2a77fd9c08 + + private boolean cancelled = false; + -+ public BlockDestroyEvent(@NotNull Block block, @NotNull BlockData newState, boolean willDrop) { ++ public BlockDestroyEvent(@NotNull Block block, @NotNull BlockData newState, @NotNull BlockData effectBlock, boolean willDrop) { + super(block, 0); + this.newState = newState; ++ this.effectBlock = effectBlock; + this.willDrop = willDrop; + } + diff --git a/patches/server/0288-BlockDestroyEvent.patch b/patches/server/0288-BlockDestroyEvent.patch index 65f26283b4416..2e82f5b9bb1d0 100644 --- a/patches/server/0288-BlockDestroyEvent.patch +++ b/patches/server/0288-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b4f7e73fa673006ad0f8ea5a8de5a825aa75e41c..3ee67624e163a8c42cc8dab70aa05021baa2574b 100644 +index b4f7e73fa673006ad0f8ea5a8de5a825aa75e41c..e6a5fec2d201db885ca792bec25b140345a45d42 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; @@ -33,7 +33,7 @@ index b4f7e73fa673006ad0f8ea5a8de5a825aa75e41c..3ee67624e163a8c42cc8dab70aa05021 + BlockState effectType = iblockdata; + int xp = iblockdata.getBlock().getExpDrop(iblockdata, (ServerLevel) this, pos, ItemStack.EMPTY, true); + if (com.destroystokyo.paper.event.block.BlockDestroyEvent.getHandlerList().getRegisteredListeners().length > 0) { -+ com.destroystokyo.paper.event.block.BlockDestroyEvent event = new com.destroystokyo.paper.event.block.BlockDestroyEvent(MCUtil.toBukkitBlock(this, pos), fluid.createLegacyBlock().createCraftBlockData(), drop); ++ com.destroystokyo.paper.event.block.BlockDestroyEvent event = new com.destroystokyo.paper.event.block.BlockDestroyEvent(MCUtil.toBukkitBlock(this, pos), fluid.createLegacyBlock().createCraftBlockData(), effectType.createCraftBlockData(), drop); + if (!event.callEvent()) { + return false; + }