package org.bukkit.craftbukkit.entity; import net.minecraft.server.Entity; import net.minecraft.server.EntityArrow; import net.minecraft.server.EntityEgg; import net.minecraft.server.EntityLiving; import net.minecraft.server.EntitySnowball; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.entity.Arrow; import org.bukkit.entity.Egg; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Snowball; import org.bukkit.entity.Vehicle; public class CraftLivingEntity extends CraftEntity implements LivingEntity { private EntityLiving entity; public CraftLivingEntity(final CraftServer server, final EntityLiving entity) { super(server, entity); this.entity = entity; } public int getHealth() { return entity.health; } public void setHealth(int health) { if ((health < 0) || (health > 200)) { throw new IllegalArgumentException("Health must be between 0 and 200"); } entity.health = health; } @Override public EntityLiving getHandle() { return entity; } public void setHandle(final EntityLiving entity) { super.setHandle((Entity)entity); this.entity = entity; } @Override public String toString() { return "CraftLivingEntity{" + "id=" + getEntityId() + '}'; } public Egg throwEgg() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntityEgg egg = new EntityEgg(world, entity); world.a(egg); return (Egg) egg.getBukkitEntity(); } public Snowball throwSnowball() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntitySnowball snowball = new EntitySnowball(world, entity); world.a(snowball); return (Snowball) snowball.getBukkitEntity(); } public Arrow shootArrow() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntityArrow arrow = new EntityArrow(world, entity); world.a(arrow); return (Arrow) arrow.getBukkitEntity(); } public boolean isInsideVehicle() { return entity.vehicle != null; } public boolean leaveVehicle() { if (entity.vehicle == null) { return false; } entity.setPassengerOf(null); return true; } public Vehicle getVehicle() { if (entity.vehicle == null) { return null; } org.bukkit.entity.Entity vehicle = (entity.vehicle.getBukkitEntity()); if (vehicle instanceof Vehicle) { return (Vehicle) vehicle; } return null; } public int getRemainingAir() { return entity.airTicks; } public void setRemainingAir(int ticks) { entity.airTicks = ticks; } public int getMaximumAir() { return entity.maxAirTicks; } public void setMaximumAir(int ticks) { entity.maxAirTicks = ticks; } }