package net.glowstone.entity.passive;
import net.glowstone.entity.GlowAnimal;
import net.glowstone.entity.GlowPlayer;
import net.glowstone.entity.objects.GlowItem;
import net.glowstone.net.message.play.player.InteractEntityMessage;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Cow;
import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack;
public class GlowCow extends GlowAnimal implements Cow {
public GlowCow(Location location) {
super(location, EntityType.COW, 10);
setSize(0.9F, 1.3F);
}
@Override
public boolean entityInteract(GlowPlayer player, InteractEntityMessage message) {
super.entityInteract(player, message);
if (player.getGameMode().equals(GameMode.CREATIVE) || player.getGameMode().equals(GameMode.SPECTATOR))
return false;
if (!isAdult()) return false;
if (!player.getItemInHand().getType().equals(Material.BUCKET)) return false;
if (player.getItemInHand().getAmount() > 1) {
player.getItemInHand().setAmount(player.getItemInHand().getAmount() - 1);
} else {
player.getInventory().clear(player.getInventory().getHeldItemSlot());
}
if (player.getInventory().firstEmpty() == -1) {
GlowItem item = player.getWorld().dropItem(player.getLocation().clone().add(0, 1, 0), new ItemStack(Material.MILK_BUCKET, 1));
item.setVelocity(getLocation().add(0, -1, 0).clone().toVector().subtract(player.getLocation().clone().add(0, 1, 0).toVector()).multiply(0.3));
} else {
player.getInventory().addItem(new ItemStack(Material.MILK_BUCKET, 1));
}
return true;
}
@Override
protected Sound getHurtSound() {
return Sound.ENTITY_COW_HURT;
}
@Override
protected Sound getDeathSound() {
return Sound.ENTITY_COW_DEATH;
}
@Override
protected Sound getAmbientSound() {
return Sound.ENTITY_COW_AMBIENT;
}
}