package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; import net.minecraft.server.EntityZombie; import net.minecraft.server.EntityZombieVillager; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Villager; import org.bukkit.entity.Zombie; public class CraftZombie extends CraftMonster implements Zombie { public CraftZombie(CraftServer server, EntityZombie entity) { super(server, entity); } @Override public EntityZombie getHandle() { return (EntityZombie) entity; } @Override public String toString() { return "CraftZombie"; } public EntityType getType() { return EntityType.ZOMBIE; } public boolean isBaby() { return getHandle().isBaby(); } public void setBaby(boolean flag) { getHandle().setBaby(flag); } public boolean isVillager() { return getHandle() instanceof EntityZombieVillager; } @Override public void setVillager(boolean flag) { throw new UnsupportedOperationException("Not supported."); } @Override public void setVillagerProfession(Villager.Profession profession) { throw new UnsupportedOperationException("Not supported."); } @Override public Villager.Profession getVillagerProfession() { return null; } @Override public boolean isConverting() { return getHandle().isDrownConverting(); } @Override public int getConversionTime() { Preconditions.checkState(isConverting(), "Entity not converting"); return getHandle().drownedConversionTime; } @Override public void setConversionTime(int time) { if (time < 0) { getHandle().drownedConversionTime = -1; getHandle().getDataWatcher().set(EntityZombie.DROWN_CONVERTING, false); } else { getHandle().startDrownedConversion(time); } } }