summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemReed.java
diff options
context:
space:
mode:
authorfeildmaster <admin@feildmaster.com>2013-01-27 10:44:32 -0600
committerfeildmaster <admin@feildmaster.com>2013-01-27 10:44:32 -0600
commit899b9c17cc469851cbc42c5a326869e97b492de4 (patch)
tree1192ebe54aa2e95be9823254bb7cda06bdf634d9 /src/main/java/net/minecraft/server/ItemReed.java
parent528bbbdcd896e67067bcf53b95cadb9dc0081ebf (diff)
downloadcraftbukkit-899b9c17cc469851cbc42c5a326869e97b492de4.tar
craftbukkit-899b9c17cc469851cbc42c5a326869e97b492de4.tar.gz
craftbukkit-899b9c17cc469851cbc42c5a326869e97b492de4.tar.lz
craftbukkit-899b9c17cc469851cbc42c5a326869e97b492de4.tar.xz
craftbukkit-899b9c17cc469851cbc42c5a326869e97b492de4.zip
Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438
By having a single function to process BlockPlacement logic, we make it so that there is consistent behavior throughout all BlockPlace events. This should allow for easier troubleshooting and less diffs in source. This also fixes BUKKIT-3463 by including the correct coordinates that were clicked to the event.
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemReed.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemReed.java33
1 files changed, 6 insertions, 27 deletions
diff --git a/src/main/java/net/minecraft/server/ItemReed.java b/src/main/java/net/minecraft/server/ItemReed.java
index 97a9fb64..ab8164c7 100644
--- a/src/main/java/net/minecraft/server/ItemReed.java
+++ b/src/main/java/net/minecraft/server/ItemReed.java
@@ -1,7 +1,5 @@
package net.minecraft.server;
-import org.bukkit.craftbukkit.block.CraftBlockState; // CraftBukkit
-
public class ItemReed extends Item {
private int id;
@@ -12,7 +10,7 @@ public class ItemReed extends Item {
}
public boolean interactWith(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l, float f, float f1, float f2) {
- int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
+ final int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
int i1 = world.getTypeId(i, j, k);
if (i1 == Block.SNOW.id) {
@@ -52,31 +50,10 @@ public class ItemReed extends Item {
Block block = Block.byId[this.id];
int j1 = block.getPlacedData(world, i, j, k, l, f, f1, f2, 0);
- // CraftBukkit start - This executes the placement of the block
- CraftBlockState replacedBlockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit
+ // CraftBukkit start - redirect to common handler
+ ItemBlock.processBlockPlace(world, entityhuman, itemstack, i, j, k, this.id, j1, clickedX, clickedY, clickedZ);
/*
- * @see net.minecraft.server.World#setTypeId(int i, int j, int k, int l)
- *
- * This replaces world.setTypeId(IIII), we're doing this because we need to
- * hook between the 'placement' and the informing to 'world' so we can
- * sanely undo this.
- *
- * Whenever the call to 'world.setTypeId' changes we need to figure out again what to
- * replace this with.
- */
- if (world.setRawTypeIdAndData(i, j, k, this.id, j1)) { // <-- world.e does this to place the block
- org.bukkit.event.block.BlockPlaceEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, replacedBlockState, clickedX, clickedY, clickedZ);
-
- if (event.isCancelled() || !event.canBuild()) {
- // CraftBukkit - undo; this only has reed, repeater and pie blocks
- world.setTypeIdAndData(i, j, k, replacedBlockState.getTypeId(), replacedBlockState.getRawData());
-
- return true;
- }
-
- world.update(i, j, k, this.id); // <-- world.setTypeId does this on success (tell the world)
- // CraftBukkit end
-
+ if (world.setTypeIdAndData(i, j, k, this.id, j1)) {
if (world.getTypeId(i, j, k) == this.id) {
Block.byId[this.id].postPlace(world, i, j, k, entityhuman);
Block.byId[this.id].postPlace(world, i, j, k, j1);
@@ -85,6 +62,8 @@ public class ItemReed extends Item {
world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.getPlaceSound(), (block.stepSound.getVolume1() + 1.0F) / 2.0F, block.stepSound.getVolume2() * 0.8F);
--itemstack.count;
}
+ */
+ // CraftBukkit end
}
return true;