package org.bukkit.entity; import org.bukkit.Location; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.util.Vector; /** * Represents a base entity in the world */ public interface Entity { /** * Gets the entity's current position * * @return Location containing the position of this entity */ public Location getLocation(); /** * Sets this entity's velocity * * @param velocity New velocity to travel with */ public void setVelocity(Vector velocity); /** * Gets this entity's current velocity * * @return Current travelling velocity of this entity */ public Vector getVelocity(); /** * Gets the current world this entity resides in * * @return World */ public World getWorld(); /** * Teleports this entity to the given location * * @param location New location to teleport this entity to * @return true if the teleport was successful */ public boolean teleport(Location location); /** * Teleports this entity to the target Entity * * @param destination Entity to teleport this entity to * @return true if the teleport was successful */ public boolean teleport(Entity destination); /** * Teleports this entity to the given location * * @param location New location to teleport this entity to * @deprecated use {@link #teleport(Location)} */ public void teleportTo(Location location); /** * Teleports this entity to the target Entity * * @param destination Entity to teleport this entity to * @deprecated use {@link #teleport(Entity)} */ public void teleportTo(Entity destination); /** * Returns a unique id for this entity * * @return Entity id */ public int getEntityId(); /** * Returns the entity's current fire ticks (ticks before the entity stops being on fire). * * @return int fireTicks */ public int getFireTicks(); /** * Returns the entity's maximum fire ticks. * * @return int maxFireTicks */ public int getMaxFireTicks(); /** * Sets the entity's current fire ticks (ticks before the entity stops being on fire). * * @param ticks */ public void setFireTicks(int ticks); /** * Mark the entity's removal. */ public void remove(); /** * Returns true if this entity has been marked for removal. */ public boolean isDead(); /** * Gets the {@link Server} that contains this Entity * * @return Server instance running this Entity */ public Server getServer(); /** * Gets the primary passenger of a vehicle. For vehicles that could have * multiple passengers, this will only return the primary passenger. * * @return an entity */ public abstract Entity getPassenger(); /** * Set the passenger of a vehicle. * * @param passenger * @return false if it could not be done for whatever reason */ public abstract boolean setPassenger(Entity passenger); /** * Returns true if the vehicle has no passengers. * * @return */ public abstract boolean isEmpty(); /** * Eject any passenger. True if there was a passenger. * * @return */ public abstract boolean eject(); }