Patch Work 2
This commit is contained in:
46
patches/server/0008-Add-BlockDestroyedByNeighborEvent.patch
Normal file
46
patches/server/0008-Add-BlockDestroyedByNeighborEvent.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Cryptite <cryptite@gmail.com>
|
||||
Date: Mon, 28 Feb 2022 08:54:52 -0600
|
||||
Subject: [PATCH] Add BlockDestroyedByNeighborEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index d8ef17bc72388046e3f428c108aaaecd02d4eed3..f2a9da819243a140550a37b2b17182f70c01fddd 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -735,6 +735,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
if (iblockdata.isAir()) {
|
||||
return false;
|
||||
} else {
|
||||
+ // Paper start
|
||||
+ PendingBlockEvent blockEvent = pendingPlayerBlockEvents.get(pos);
|
||||
+ if (blockEvent != null && blockEvent.sourceBlock != null) {
|
||||
+ io.papermc.paper.event.block.BlockDestroyedByNeighborEvent event =
|
||||
+ new io.papermc.paper.event.block.BlockDestroyedByNeighborEvent(org.bukkit.craftbukkit.block.CraftBlock.at(this, pos),
|
||||
+ (org.bukkit.entity.Player) blockEvent.player.getBukkitEntity(),
|
||||
+ org.bukkit.craftbukkit.block.CraftBlock.at(this, blockEvent.sourceBlock));
|
||||
+ event.callEvent();
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
FluidState fluid = this.getFluidState(pos);
|
||||
// Paper start - while the above setAir method is named same and looks very similar
|
||||
// they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent,
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||
index 301dfb74fec49b7f6f0452e4c49c8f1df43c0180..6b63bc56bfa757a17f9a6f98b31861a7f350be80 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java
|
||||
@@ -106,8 +106,11 @@ public class DoublePlantBlock extends BushBlock {
|
||||
|
||||
Level.PendingBlockEvent blockEvent = world.pendingPlayerBlockEvents.remove(pos);
|
||||
if (blockEvent != null) {
|
||||
- //Would fire a future BlockDestroyedByNeighborEvent here, but must have this conditional block
|
||||
- //because it's important to remove from pendingPlayerBlockEvents
|
||||
+ io.papermc.paper.event.block.BlockDestroyedByNeighborEvent event =
|
||||
+ new io.papermc.paper.event.block.BlockDestroyedByNeighborEvent(org.bukkit.craftbukkit.block.CraftBlock.at(world, blockposition1),
|
||||
+ (org.bukkit.entity.Player) blockEvent.player.getBukkitEntity(),
|
||||
+ org.bukkit.craftbukkit.block.CraftBlock.at(world, pos));
|
||||
+ if (!event.callEvent()) return;
|
||||
}
|
||||
|
||||
if (iblockdata1.is(state.getBlock()) && iblockdata1.getValue(DoublePlantBlock.HALF) == DoubleBlockHalf.LOWER) {
|
||||
Reference in New Issue
Block a user