65 lines
2.1 KiB
Java
65 lines
2.1 KiB
Java
package org.bukkit.entity;
|
|
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.loot.Lootable;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
/**
|
|
* Represents a Mob. Mobs are living entities with simple AI.
|
|
*/
|
|
public interface Mob extends LivingEntity, Lootable {
|
|
|
|
/**
|
|
* Instructs this Mob to set the specified LivingEntity as its target.
|
|
* <p>
|
|
* Hostile creatures may attack their target, and friendly creatures may
|
|
* follow their target.
|
|
*
|
|
* @param target New LivingEntity to target, or null to clear the target
|
|
*/
|
|
public void setTarget(@Nullable LivingEntity target);
|
|
|
|
/**
|
|
* Gets the current target of this Mob
|
|
*
|
|
* @return Current target of this creature, or null if none exists
|
|
*/
|
|
@Nullable
|
|
public LivingEntity getTarget();
|
|
|
|
/**
|
|
* Sets whether this mob is aware of its surroundings.
|
|
*
|
|
* Unaware mobs will still move if pushed, attacked, etc. but will not move
|
|
* or perform any actions on their own. Unaware mobs may also have other
|
|
* unspecified behaviours disabled, such as drowning.
|
|
*
|
|
* @param aware whether the mob is aware
|
|
*/
|
|
public void setAware(boolean aware);
|
|
|
|
/**
|
|
* Gets whether this mob is aware of its surroundings.
|
|
*
|
|
* Unaware mobs will still move if pushed, attacked, etc. but will not move
|
|
* or perform any actions on their own. Unaware mobs may also have other
|
|
* unspecified behaviours disabled, such as drowning.
|
|
*
|
|
* @return whether the mob is aware
|
|
*/
|
|
public boolean isAware();
|
|
|
|
/**
|
|
* Get the {@link Sound} this mob makes while ambiently existing. This sound
|
|
* may change depending on the current state of the entity, and may also
|
|
* return null under specific conditions. This sound is not constant.
|
|
* For instance, villagers will make different passive noises depending
|
|
* on whether or not they are actively trading with a player, or make no
|
|
* ambient noise while sleeping.
|
|
*
|
|
* @return the ambient sound, or null if this entity is ambiently quiet
|
|
*/
|
|
@Nullable
|
|
public Sound getAmbientSound();
|
|
}
|