package pluginbase.minecraft; import pluginbase.messages.messaging.MessageReceiver; import pluginbase.minecraft.location.EntityCoordinates; import pluginbase.minecraft.location.Vector; import org.jetbrains.annotations.NotNull; import pluginbase.permission.Permissible; /** * Describes an entity in minecraft which is anything that is not a block or an item in an inventory. */ public interface Entity extends MessageReceiver, Permissible { /** * @return This entity's current location. */ @NotNull EntityCoordinates getLocation(); /** * Teleports this entity to the given location. * * @param location New location to teleport this entity to. * @return True if the teleport was successful. */ boolean teleport(@NotNull final EntityCoordinates location); /** * Gets this {@link Entity}'s current velocity. * @return This {@link Entity}'s current velocity. */ Vector getVelocity(); /** * Sets this {@link Entity}'s current velocity. * @param v The new velocity. */ void setVelocity(Vector v); }