From ccbd3d84e82e840ed46e2069ea5bac83d8de1551 Mon Sep 17 00:00:00 2001 From: feildmaster Date: Wed, 16 Jan 2013 20:15:40 -0600 Subject: [PATCH] Get the BlockState before changing the block. Fixes BUKKIT-3441 --- src/main/java/net/minecraft/server/ItemBlock.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java index 56f7402633..05a1567ff2 100644 --- a/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java @@ -77,12 +77,14 @@ public class ItemBlock extends Item { // CraftBukkit start - add method to process block placement static boolean processBlockPlace(final World world, final EntityHuman entityhuman, final ItemStack itemstack, final int x, final int y, final int z, final int id, final int data) { + org.bukkit.block.BlockState blockstate = org.bukkit.craftbukkit.block.CraftBlockState.getBlockState(world, x, y, z); + world.suppressPhysics = true; world.setTypeIdAndData(x, y, z, id, data); - org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, org.bukkit.craftbukkit.block.CraftBlockState.getBlockState(world, x, y, z), x, y, z); + org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockstate, x, y, z); if (event.isCancelled() || !event.canBuild()) { - event.getBlockReplacedState().update(true); + blockstate.update(true); world.suppressPhysics = false; return false; }