SPIGOT-3735: Missing call to BlockFadeEvent

This commit is contained in:
md_5 2018-01-04 08:57:01 +11:00
parent e40c9ef4b9
commit dc7d31b00d

View File

@ -12,20 +12,7 @@
public class BlockSoil extends Block {
public static final BlockStateInteger MOISTURE = BlockStateInteger.of("moisture", 0, 7);
@@ -36,6 +41,12 @@
if (i > 0) {
world.setTypeAndData(blockposition, iblockdata.set(BlockSoil.MOISTURE, Integer.valueOf(i - 1)), 2);
} else if (!this.c(world, blockposition)) {
+ // CraftBukkit start
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+ if (CraftEventFactory.callBlockFadeEvent(block, Blocks.DIRT).isCancelled()) {
+ return;
+ }
+ // CraftBukkit end
b(world, blockposition);
}
} else if (i < 7) {
@@ -45,11 +56,29 @@
@@ -45,14 +50,38 @@
}
public void fallOn(World world, BlockPosition blockposition, Entity entity, float f) {
@ -56,3 +43,12 @@
}
protected static void b(World world, BlockPosition blockposition) {
+ // CraftBukkit start
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+ if (CraftEventFactory.callBlockFadeEvent(block, Blocks.DIRT).isCancelled()) {
+ return;
+ }
+ // CraftBukkit end
world.setTypeUpdate(blockposition, Blocks.DIRT.getBlockData());
AxisAlignedBB axisalignedbb = BlockSoil.c.a(blockposition);
List list = world.getEntities((Entity) null, axisalignedbb);