13
0
geforkt von Mirrors/Paper
Paper/src/main/java/net/minecraft/server/ItemBucket.java
Wesley Wolfe b00de5f176 Cleaned up CraftBukkit comments in NMS.
Added newlines at the end of files
Fixed improper line endings on some files
Matched start - end comments
Added some missing comments for diffs
Fixed syntax on some spots
Minimized some diff
Removed some no longer used files
Added comment on some required files with no changes
Fixed imports of items used once
Added imports for items used more than once
2012-07-23 23:55:31 -05:00

164 Zeilen
6.6 KiB
Java

package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerBucketFillEvent;
// CraftBukkit end
public class ItemBucket extends Item {
private int a;
public ItemBucket(int i, int j) {
super(i);
this.maxStackSize = 1;
this.a = j;
}
public ItemStack a(ItemStack itemstack, World world, EntityHuman entityhuman) {
float f = 1.0F;
double d0 = entityhuman.lastX + (entityhuman.locX - entityhuman.lastX) * (double) f;
double d1 = entityhuman.lastY + (entityhuman.locY - entityhuman.lastY) * (double) f + 1.62D - (double) entityhuman.height;
double d2 = entityhuman.lastZ + (entityhuman.locZ - entityhuman.lastZ) * (double) f;
boolean flag = this.a == 0;
MovingObjectPosition movingobjectposition = this.a(world, entityhuman, flag);
if (movingobjectposition == null) {
return itemstack;
} else {
if (movingobjectposition.type == EnumMovingObjectType.TILE) {
int i = movingobjectposition.b;
int j = movingobjectposition.c;
int k = movingobjectposition.d;
if (!world.a(entityhuman, i, j, k)) {
return itemstack;
}
if (this.a == 0) {
if (!entityhuman.d(i, j, k)) {
return itemstack;
}
if (world.getMaterial(i, j, k) == Material.WATER && world.getData(i, j, k) == 0) {
// CraftBukkit start
PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, i, j, k, -1, itemstack, Item.WATER_BUCKET);
if (event.isCancelled()) {
return itemstack;
}
world.setTypeId(i, j, k, 0);
if (entityhuman.abilities.canInstantlyBuild) {
return itemstack;
}
// CraftBukkit end
return CraftItemStack.createNMSItemStack(event.getItemStack()); // CraftBukkit
}
if (world.getMaterial(i, j, k) == Material.LAVA && world.getData(i, j, k) == 0) {
// CraftBukkit start
PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, i, j, k, -1, itemstack, Item.LAVA_BUCKET);
if (event.isCancelled()) {
return itemstack;
}
world.setTypeId(i, j, k, 0);
if (entityhuman.abilities.canInstantlyBuild) {
return itemstack;
}
// CraftBukkit end
return CraftItemStack.createNMSItemStack(event.getItemStack()); // CraftBukkit
}
} else {
if (this.a < 0) {
// CraftBukkit start
PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, i, j, k, movingobjectposition.face, itemstack);
if (event.isCancelled()) {
return itemstack;
}
return CraftItemStack.createNMSItemStack(event.getItemStack());
}
int clickedX = i, clickedY = j, clickedZ = k;
// CraftBukkit end
if (movingobjectposition.face == 0) {
--j;
}
if (movingobjectposition.face == 1) {
++j;
}
if (movingobjectposition.face == 2) {
--k;
}
if (movingobjectposition.face == 3) {
++k;
}
if (movingobjectposition.face == 4) {
--i;
}
if (movingobjectposition.face == 5) {
++i;
}
if (!entityhuman.d(i, j, k)) {
return itemstack;
}
if (world.isEmpty(i, j, k) || !world.getMaterial(i, j, k).isBuildable()) {
// CraftBukkit start
PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, clickedX, clickedY, clickedZ, movingobjectposition.face, itemstack);
if (event.isCancelled()) {
return itemstack;
}
// CraftBukkit end
if (world.worldProvider.d && this.a == Block.WATER.id) {
world.makeSound(d0 + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F);
for (int l = 0; l < 8; ++l) {
world.a("largesmoke", (double) i + Math.random(), (double) j + Math.random(), (double) k + Math.random(), 0.0D, 0.0D, 0.0D);
}
} else {
world.setTypeIdAndData(i, j, k, this.a, 0);
}
if (entityhuman.abilities.canInstantlyBuild) {
return itemstack;
}
// CraftBukkit start
return CraftItemStack.createNMSItemStack(event.getItemStack());
// CraftBukkit end
}
}
} else if (this.a == 0 && movingobjectposition.entity instanceof EntityCow) {
// CraftBukkit start - This codepath seems to be *NEVER* called
org.bukkit.Location loc = movingobjectposition.entity.getBukkitEntity().getLocation();
PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), -1, itemstack, Item.MILK_BUCKET);
if (event.isCancelled()) {
return itemstack;
}
return CraftItemStack.createNMSItemStack(event.getItemStack());
// CraftBukkit end
}
return itemstack;
}
}
}