mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-04 16:34:44 +01:00
6e71f41536
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 65247583f SPIGOT-7857: Improve ItemMeta block data deserialization 05d80500d SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta cebb58e9a SPIGOT-7804: Fix written book serialization efcdd5d38 SPIGOT-7794: Cancelling InventoryItemMoveEvent destroys items b568ba572 SPIGOT-7789: Fix NPE in CraftMetaFirework applyToItem f057cf449 Remove outdated build delay Spigot Changes: f6a48054 SPIGOT-7835: Fix issue with custom hopper settings bb63b137 Rebuild patches e1142b4d Rebuild patches
33 lines
2.1 KiB
Diff
33 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
|
|
Date: Sun, 7 Aug 2022 22:16:36 +0200
|
|
Subject: [PATCH] Call BlockPhysicsEvent more often
|
|
|
|
|
|
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 457a963ee6ebd3cf5c3831f6660e3850335af49f..106af2b2c7ff72c7549975aef75cdcff8d9a7d97 100644
|
|
--- a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java
|
|
+++ b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java
|
|
@@ -119,7 +119,20 @@ public class CollectingNeighborUpdater implements NeighborUpdater {
|
|
public boolean runNext(Level world) {
|
|
BlockPos blockPos = this.sourcePos.relative(NeighborUpdater.UPDATE_ORDER[this.idx++]);
|
|
BlockState blockState = world.getBlockState(blockPos);
|
|
- NeighborUpdater.executeUpdate(world, blockState, blockPos, this.sourceBlock, this.sourcePos, false);
|
|
+ // Paper start - Call BlockPhysicsEvent
|
|
+ try {
|
|
+ org.bukkit.event.block.BlockPhysicsEvent event = new org.bukkit.event.block.BlockPhysicsEvent(
|
|
+ org.bukkit.craftbukkit.block.CraftBlock.at(world, blockPos),
|
|
+ org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(blockState),
|
|
+ org.bukkit.craftbukkit.block.CraftBlock.at(world, this.sourcePos));
|
|
+
|
|
+ if (event.callEvent()) { // continue to check for adjacent block (increase idx)
|
|
+ NeighborUpdater.executeUpdate(world, blockState, blockPos, this.sourceBlock, this.sourcePos, false);
|
|
+ }
|
|
+ } catch (StackOverflowError ex) {
|
|
+ world.lastPhysicsProblem = blockPos;
|
|
+ }
|
|
+ // Paper end - Call BlockPhysicsEvent
|
|
if (this.idx < NeighborUpdater.UPDATE_ORDER.length && NeighborUpdater.UPDATE_ORDER[this.idx] == this.skipDirection) {
|
|
this.idx++;
|
|
}
|