aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch
diff options
context:
space:
mode:
authorLulu13022002 <[email protected]>2024-11-26 20:05:52 +0100
committerGitHub <[email protected]>2024-11-26 20:05:52 +0100
commit7e789e8376b855e0c25fbbf23cf957daf24aa577 (patch)
tree0534757a56080490fbb6f8f6964bf23c1658f771 /patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch
parentf4741f22e813e0909a3f5ceacbadeac4f2b03f3b (diff)
downloadPaper-7e789e8376b855e0c25fbbf23cf957daf24aa577.tar.gz
Paper-7e789e8376b855e0c25fbbf23cf957daf24aa577.zip
Prevent duplicate/superfluous BlockPhysicsEvent (#11609)
Diffstat (limited to 'patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch')
-rw-r--r--patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch b/patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch
new file mode 100644
index 0000000000..91adea4a23
--- /dev/null
+++ b/patches/server/0732-Add-source-block-to-BlockPhysicsEvent.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Lulu13022002 <[email protected]>
+Date: Sun, 7 Aug 2022 22:16:36 +0200
+Subject: [PATCH] Add source block to BlockPhysicsEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java
+index 5821c802ec880501df025fcd3fbbd98242ed952c..3a95e3236eafd14baed035e53503b58c2e21b68a 100644
+--- a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java
++++ b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java
+@@ -135,7 +135,7 @@ public class CollectingNeighborUpdater implements NeighborUpdater {
+ orientation = this.orientation.withFront(direction);
+ }
+
+- NeighborUpdater.executeUpdate(world, blockState, blockPos, this.sourceBlock, orientation, false);
++ NeighborUpdater.executeUpdate(world, blockState, blockPos, this.sourceBlock, orientation, false, this.sourcePos); // Paper - Add source block to BlockPhysicsEvent
+ if (this.idx < NeighborUpdater.UPDATE_ORDER.length && NeighborUpdater.UPDATE_ORDER[this.idx] == this.skipDirection) {
+ this.idx++;
+ }
+diff --git a/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java b/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
+index be8f34dd222e43b2db7f05e5e5839df8446e1b02..e414da8a51bb9b49c28a74eca166046cbee44835 100644
+--- a/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
++++ b/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
+@@ -55,11 +55,17 @@ public interface NeighborUpdater {
+ }
+
+ static void executeUpdate(Level world, BlockState state, BlockPos pos, Block sourceBlock, @Nullable Orientation orientation, boolean notify) {
++ // Paper start - Add source block to BlockPhysicsEvent
++ executeUpdate(world, state, pos, sourceBlock, orientation, notify, pos);
++ }
++
++ static void executeUpdate(Level world, BlockState state, BlockPos pos, Block sourceBlock, @Nullable Orientation orientation, boolean notify, BlockPos sourcePos) {
++ // Paper end - Add source block to BlockPhysicsEvent
+ try {
+ // CraftBukkit start
+ CraftWorld cworld = ((ServerLevel) world).getWorld();
+ if (cworld != null) {
+- BlockPhysicsEvent event = new BlockPhysicsEvent(CraftBlock.at(world, pos), CraftBlockData.fromData(state));
++ BlockPhysicsEvent event = new BlockPhysicsEvent(CraftBlock.at(world, pos), CraftBlockData.fromData(state), CraftBlock.at(world, sourcePos)); // Paper - Add source block to BlockPhysicsEvent
+ ((ServerLevel) world).getCraftServer().getPluginManager().callEvent(event);
+
+ if (event.isCancelled()) {