craftbukkit/src/main/java/net/minecraft/server/ItemWaterLily.java
feildmaster 899b9c17cc 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.
2013-01-27 10:44:32 -06:00

46 lines
1.6 KiB
Java

package net.minecraft.server;
public class ItemWaterLily extends ItemWithAuxData {
public ItemWaterLily(int i) {
super(i, false);
}
public ItemStack a(ItemStack itemstack, World world, EntityHuman entityhuman) {
MovingObjectPosition movingobjectposition = this.a(world, entityhuman, true);
if (movingobjectposition == null) {
return itemstack;
} else {
if (movingobjectposition.type == EnumMovingObjectType.TILE) {
int i = movingobjectposition.b;
int j = movingobjectposition.c;
int k = movingobjectposition.d;
final int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
if (!world.a(entityhuman, i, j, k)) {
return itemstack;
}
if (!entityhuman.a(i, j, k, movingobjectposition.face, itemstack)) {
return itemstack;
}
if (world.getMaterial(i, j, k) == Material.WATER && world.getData(i, j, k) == 0 && world.isEmpty(i, j + 1, k)) {
// CraftBukkit start - waterlily
// world.setTypeId(i, j + 1, k, Block.WATER_LILY.id);
if (!processBlockPlace(world, entityhuman, null, i, j + 1, k, Block.WATER_LILY.id, 0, clickedX, clickedY, clickedZ)) {
return itemstack;
}
// CraftBukkit end
if (!entityhuman.abilities.canInstantlyBuild) {
--itemstack.count;
}
}
}
return itemstack;
}
}
}