Commits

md_5 authored 30e31b4d135
SPIGOT-7177: Certain blocks don't call BlockCanBuildEvent
No tags

nms-patches/net/minecraft/world/item/ItemBlockWallable.patch

Added
1 +--- a/net/minecraft/world/item/ItemBlockWallable.java
2 ++++ b/net/minecraft/world/item/ItemBlockWallable.java
3 +@@ -9,6 +9,12 @@
4 + import net.minecraft.world.level.block.Block;
5 + import net.minecraft.world.level.block.state.IBlockData;
6 + import net.minecraft.world.phys.shapes.VoxelShapeCollision;
7 ++// CraftBukkit start
8 ++import net.minecraft.server.level.EntityPlayer;
9 ++import org.bukkit.craftbukkit.block.CraftBlock;
10 ++import org.bukkit.craftbukkit.block.data.CraftBlockData;
11 ++import org.bukkit.event.block.BlockCanBuildEvent;
12 ++// CraftBukkit end
13 +
14 + public class ItemBlockWallable extends ItemBlock {
15 +
16 +@@ -42,7 +48,19 @@
17 + }
18 + }
19 +
20 +- return iblockdata1 != null && world.isUnobstructed(iblockdata1, blockposition, VoxelShapeCollision.empty()) ? iblockdata1 : null;
21 ++ // CraftBukkit start
22 ++ if (iblockdata1 != null) {
23 ++ boolean defaultReturn = world.isUnobstructed(iblockdata1, blockposition, VoxelShapeCollision.empty());
24 ++ org.bukkit.entity.Player player = (blockactioncontext.getPlayer() instanceof EntityPlayer) ? (org.bukkit.entity.Player) blockactioncontext.getPlayer().getBukkitEntity() : null;
25 ++
26 ++ BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(world, blockposition), player, CraftBlockData.fromData(iblockdata1), defaultReturn);
27 ++ blockactioncontext.getLevel().getCraftServer().getPluginManager().callEvent(event);
28 ++
29 ++ return (event.isBuildable()) ? iblockdata1 : null;
30 ++ } else {
31 ++ return null;
32 ++ }
33 ++ // CraftBukkit end
34 + }
35 +
36 + @Override

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut