diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemRedstone.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemRedstone.java | 70 |
1 files changed, 36 insertions, 34 deletions
diff --git a/src/main/java/net/minecraft/server/ItemRedstone.java b/src/main/java/net/minecraft/server/ItemRedstone.java index ccb06bb7..631d93a7 100644 --- a/src/main/java/net/minecraft/server/ItemRedstone.java +++ b/src/main/java/net/minecraft/server/ItemRedstone.java @@ -14,53 +14,55 @@ public class ItemRedstone extends Item { } public boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) { - int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit; + int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit - if (l == 0) { - --j; - } + if (world.getTypeId(i, j, k) != Block.SNOW.id) { + if (l == 0) { + --j; + } - if (l == 1) { - ++j; - } + if (l == 1) { + ++j; + } - if (l == 2) { - --k; - } + if (l == 2) { + --k; + } - if (l == 3) { - ++k; - } + if (l == 3) { + ++k; + } - if (l == 4) { - --i; - } + if (l == 4) { + --i; + } - if (l == 5) { - ++i; - } + if (l == 5) { + ++i; + } - if (!world.isEmpty(i, j, k)) { - return false; - } else { - if (Block.REDSTONE_WIRE.canPlace(world, i, j, k)) { - BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit + if (!world.isEmpty(i, j, k)) { + return false; + } + } - world.setTypeId(i, j, k, Block.REDSTONE_WIRE.id); + if (Block.REDSTONE_WIRE.canPlace(world, i, j, k)) { + BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - // CraftBukkit start - redstone - BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, Block.REDSTONE_WIRE); + world.setTypeId(i, j, k, Block.REDSTONE_WIRE.id); - if (event.isCancelled() || !event.canBuild()) { - event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false); - return false; - } - // CraftBukkit end + // CraftBukkit start - redstone + BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, Block.REDSTONE_WIRE); - --itemstack.count; // CraftBukkit -- ORDER MATTERS + if (event.isCancelled() || !event.canBuild()) { + event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false); + return false; } + // CraftBukkit end - return true; + --itemstack.count; // CraftBukkit - ORDER MATTERS } + + return true; } } |