Files
Paper/paper-api/src/main/java/org/bukkit/entity/Raider.java
2023-06-23 09:58:54 +10:00

131 lines
3.4 KiB
Java

package org.bukkit.entity;
import org.bukkit.Raid;
import org.bukkit.Sound;
import org.bukkit.block.Block;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public interface Raider extends Monster {
/**
* Set the {@link Raid} that this raider is participating in.
*
* @param raid the raid to set
*/
void setRaid(@Nullable Raid raid);
/**
* Get the {@link Raid} that this raider is participating in, if any.
*
* @return the raid, or null if not participating in a raid
*/
@Nullable
Raid getRaid();
/**
* Get the raid wave that this raider spawned as part of.
*
* @return the raid wave, or 0 if not participating in a raid
*/
int getWave();
/**
* Set the raid wave that this raider was spawned as part of.
*
* @param wave the raid wave to set. Must be >= 0
*/
void setWave(int wave);
/**
* Gets the block the raider is targeting to patrol.
*
* @return target block or null
*/
@Nullable
Block getPatrolTarget();
/**
* Sets the block the raider is targeting to patrol.
*
* @param block target block or null. Must be in same world as the entity
*/
void setPatrolTarget(@Nullable Block block);
/**
* Gets whether this entity is a patrol leader.
*
* @return patrol leader status
*/
boolean isPatrolLeader();
/**
* Sets whether this entity is a patrol leader.
*
* @param leader patrol leader status
*/
void setPatrolLeader(boolean leader);
/**
* Gets whether this mob can join an active raid.
*
* @return CanJoinRaid status
*/
boolean isCanJoinRaid();
/**
* Sets whether this mob can join an active raid.
*
* @param join CanJoinRaid status
*/
void setCanJoinRaid(boolean join);
/**
* Get the amount of ticks that this mob has exited the bounds of a village
* as a raid participant.
* <p>
* This value is increased only when the mob has had no action for 2,400 ticks
* (according to {@link #getNoActionTicks()}). Once both the no action ticks have
* reached that value and the ticks outside a raid exceeds 30, the mob will be
* expelled from the raid.
*
* @return the ticks outside of a raid
*/
int getTicksOutsideRaid();
/**
* Set the amount of ticks that this mob has exited the bounds of a village
* as a raid participant.
* <p>
* This value is considered only when the mob has had no action for 2,400 ticks
* (according to {@link #getNoActionTicks()}). Once both the no action ticks have
* reached that value and the ticks outside a raid exceeds 30, the mob will be
* expelled from the raid.
*
* @param ticks the ticks outside of a raid
*/
void setTicksOutsideRaid(int ticks);
/**
* Check whether or not this raider is celebrating a raid victory.
*
* @return true if celebrating, false otherwise
*/
boolean isCelebrating();
/**
* Set whether or not this mob is celebrating a raid victory.
*
* @param celebrating whether or not to celebrate
*/
void setCelebrating(boolean celebrating);
/**
* Get the {@link Sound} this entity will play when celebrating.
*
* @return the celebration sound
*/
@NotNull
Sound getCelebrationSound();
}