mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-07 04:18:09 +02:00
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Also, restore a patch that was dropped in the last upstream Bukkit Changes: 279eeab3 Fix command description not being set 96e2bb18 Remove debug print from SyntheticEventTest CraftBukkit Changes:d3ed1516
Fix dangerously threaded beacons217a293d
Don't relocate joptsimple to allow --help to work.1be05a21
Prepare for imminent Java 12 releasea49270b2
Mappings Update5259d80c
SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports Spigot Changes: e6eb36f2 Rebuild patches
42 lines
2.1 KiB
Diff
42 lines
2.1 KiB
Diff
From d6bef87db05d23c6dea48e59f68f0706f63ea70a Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 6 Feb 2019 00:20:33 -0500
|
|
Subject: [PATCH] BlockDestroyEvent
|
|
|
|
Adds an event for when the server is going to destroy a current block,
|
|
potentially causing it to drop. This event can be cancelled to avoid
|
|
the block destruction, such as preventing signs from popping when
|
|
floating in the air.
|
|
|
|
This can replace many uses of BlockPhysicsEvent
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index aa78ccb68..0624848cc 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -548,8 +548,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
|
return false;
|
|
} else {
|
|
Fluid fluid = this.getFluid(blockposition);
|
|
+ // 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,
|
|
+ // it doesn't imply destruction of a block that plays a sound effect / drops an item.
|
|
+ boolean playEffect = 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, blockposition), fluid.i().createCraftBlockData(), flag);
|
|
+ if (!event.callEvent()) {
|
|
+ return false;
|
|
+ }
|
|
+ playEffect = event.playEffect();
|
|
+ }
|
|
+ // Paper end
|
|
|
|
- this.triggerEffect(2001, blockposition, Block.getCombinedId(iblockdata));
|
|
+ if (playEffect) this.triggerEffect(2001, blockposition, Block.getCombinedId(iblockdata)); // Paper
|
|
if (flag) {
|
|
iblockdata.a(this, blockposition, 0);
|
|
}
|
|
--
|
|
2.21.0
|
|
|