diff options
author | feildmaster <admin@feildmaster.com> | 2013-01-16 08:03:35 -0600 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2013-01-16 08:06:00 -0600 |
commit | 98aea835b5b74f841a0a92567a6987367b542c77 (patch) | |
tree | 9774bef4ed5c3f98076bde02c41b99241451a337 /src/main/java | |
parent | 614ef2f8c5d8d1aa3deb0c08283b056cdeeb5d78 (diff) | |
download | craftbukkit-98aea835b5b74f841a0a92567a6987367b542c77.tar craftbukkit-98aea835b5b74f841a0a92567a6987367b542c77.tar.gz craftbukkit-98aea835b5b74f841a0a92567a6987367b542c77.tar.lz craftbukkit-98aea835b5b74f841a0a92567a6987367b542c77.tar.xz craftbukkit-98aea835b5b74f841a0a92567a6987367b542c77.zip |
Handle beds and doors the same way as other blocks. Fixes BUKKIT-3437
Relates to: BUKKIT-3438
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemBed.java | 14 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/ItemDoor.java | 19 |
2 files changed, 14 insertions, 19 deletions
diff --git a/src/main/java/net/minecraft/server/ItemBed.java b/src/main/java/net/minecraft/server/ItemBed.java index bf83e2e3..e84ccd0a 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 6362d07e..4cbe26b5 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)); |