Files
Paper/paper-api/src/main/java/org/bukkit/entity/Warden.java
2022-08-20 16:28:19 +10:00

103 lines
2.4 KiB
Java

package org.bukkit.entity;
import org.bukkit.Location;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* A Warden.
*/
public interface Warden extends Monster {
/**
* Gets the anger level of this warden.
*
* Anger is an integer from 0 to 150. Once a Warden reaches 80 anger at a
* target it will actively pursue it.
*
* @return anger level
*/
int getAnger();
/**
* Gets the anger level of this warden.
*
* Anger is an integer from 0 to 150. Once a Warden reaches 80 anger at a
* target it will actively pursue it.
*
* @param entity target entity
* @return anger level
*/
int getAnger(@NotNull Entity entity);
/**
* Increases the anger level of this warden.
*
* Anger is an integer from 0 to 150. Once a Warden reaches 80 anger at a
* target it will actively pursue it.
*
* @param entity target entity
* @param increase number to increase by
* @see #getAnger(org.bukkit.entity.Entity)
*/
void increaseAnger(@NotNull Entity entity, int increase);
/**
* Sets the anger level of this warden.
*
* Anger is an integer from 0 to 150. Once a Warden reaches 80 anger at a
* target it will actively pursue it.
*
* @param entity target entity
* @param anger new anger level
* @see #getAnger(org.bukkit.entity.Entity)
*/
void setAnger(@NotNull Entity entity, int anger);
/**
* Clears the anger level of this warden.
*
* @param entity target entity
*/
void clearAnger(@NotNull Entity entity);
/**
* Gets the {@link LivingEntity} at which this warden is most angry.
*
* @return The target {@link LivingEntity} or null
*/
@Nullable
LivingEntity getEntityAngryAt();
/**
* Make the warden sense a disturbance in the force at the location given.
*
* @param location location of the disturbance
*/
void setDisturbanceLocation(@NotNull Location location);
/**
* Get the level of anger of this warden.
*
* @return The level of anger
*/
@NotNull
AngerLevel getAngerLevel();
public enum AngerLevel {
/**
* Anger level 0-39.
*/
CALM,
/**
* Anger level 40-79.
*/
AGITATED,
/**
* Anger level 80 or above.
*/
ANGRY;
}
}