package net.minecraft.server; // CraftBukkit start import java.util.List; import org.bukkit.Location; import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.event.player.PlayerBucketFillEvent; // CraftBukkit end public class EntityCow extends EntityAnimal { public EntityCow(World world) { super(world); this.texture = "/mob/cow.png"; this.b(0.9F, 1.3F); } public int getMaxHealth() { return 10; } public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); } public void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); } protected String c_() { return "mob.cow"; } protected String m() { return "mob.cowhurt"; } protected String n() { return "mob.cowhurt"; } protected float o() { return 0.4F; } protected int e() { return Item.LEATHER.id; } protected void dropDeathLoot(boolean flag, int i) { // CraftBukkit start - whole method List loot = new java.util.ArrayList(); int j = this.random.nextInt(3) + this.random.nextInt(1 + i); if (j > 0) { loot.add(new org.bukkit.inventory.ItemStack(Item.LEATHER.id, j)); } j = this.random.nextInt(3) + 1 + this.random.nextInt(1 + i); if (j > 0) { loot.add(new org.bukkit.inventory.ItemStack(this.z() ? Item.COOKED_BEEF.id : Item.RAW_BEEF.id, j)); } CraftEventFactory.callEntityDeathEvent(this, loot); // CraftBukkit end } public boolean b(EntityHuman entityhuman) { ItemStack itemstack = entityhuman.inventory.getItemInHand(); if (itemstack != null && itemstack.id == Item.BUCKET.id) { // CraftBukkit start - got milk? Location loc = this.getBukkitEntity().getLocation(); PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), -1, itemstack, Item.MILK_BUCKET); if (event.isCancelled()) { return false; } CraftItemStack itemInHand = (CraftItemStack) event.getItemStack(); byte data = itemInHand.getData() == null ? (byte) 0 : itemInHand.getData().getData(); itemstack = new ItemStack(itemInHand.getTypeId(), itemInHand.getAmount(), data); entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, itemstack); // CraftBukkit end return true; } else { return super.b(entityhuman); } } protected EntityAnimal createChild(EntityAnimal entityanimal) { return new EntityCow(this.world); } }