diff --git a/src/main/java/net/minecraft/server/ItemBed.java b/src/main/java/net/minecraft/server/ItemBed.java index bf83e2e34e..e84ccd0ac7 100644 --- a/src/main/java/net/minecraft/server/ItemBed.java +++ b/src/main/java/net/minecraft/server/ItemBed.java @@ -15,8 +15,6 @@ public class ItemBed extends Item { } else if (l != 1) { return false; } else { - int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit - ++j; BlockBed blockbed = (BlockBed) Block.BED; int i1 = MathHelper.floor((double) (entityhuman.yaw * 4.0F / 360.0F) + 0.5D) & 3; @@ -41,15 +39,9 @@ public class ItemBed extends Item { if (entityhuman.a(i, j, k, l, itemstack) && entityhuman.a(i + b0, j, k + b1, l, itemstack)) { if (world.isEmpty(i, j, k) && world.isEmpty(i + b0, j, k + b1) && world.v(i, j - 1, k) && world.v(i + b0, j - 1, k + b1)) { - CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - - world.setTypeIdAndData(i, j, k, blockbed.id, i1); - - // CraftBukkit start - bed - org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ); - - if (event.isCancelled() || !event.canBuild()) { - event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false); + // CraftBukkit start + //world.setTypeIdAndData(i, j, k, blockbed.id, i1); + if (!ItemBlock.processBlockPlace(world, entityhuman, null, i, j, k, blockbed.id, l)) { return false; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/ItemDoor.java b/src/main/java/net/minecraft/server/ItemDoor.java index 6362d07e02..4cbe26b561 100644 --- a/src/main/java/net/minecraft/server/ItemDoor.java +++ b/src/main/java/net/minecraft/server/ItemDoor.java @@ -1,7 +1,5 @@ package net.minecraft.server; -import org.bukkit.craftbukkit.block.CraftBlockState; // CraftBukkit - public class ItemDoor extends Item { private Material a; @@ -85,17 +83,22 @@ public class ItemDoor extends Item { flag2 = true; } - CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit world.suppressPhysics = true; - world.setTypeIdAndData(i, j, k, block.id, l); // CraftBukkit start if (entityhuman != null) { - org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k); - - if (event.isCancelled() || !event.canBuild()) { - event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false); + if(!ItemBlock.processBlockPlace(world, entityhuman, null, i, j, k, block.id, l)) { + ((EntityPlayer) entityhuman).playerConnection.sendPacket(new Packet53BlockChange(i, j + 1, k, world)); return false; } + + if (world.getTypeId(i, j, k) != block.id) { + ((EntityPlayer) entityhuman).playerConnection.sendPacket(new Packet53BlockChange(i, j + 1, k, world)); + return true; + } + + world.suppressPhysics = true; + } else { + world.setTypeIdAndData(i, j, k, block.id, l); } // CraftBukkit end world.setTypeIdAndData(i, j + 1, k, block.id, 8 | (flag2 ? 1 : 0));