Files
Paper/paper-api/src/main/java/org/bukkit/entity/Enderman.java
Owen1212055 a2a581ba6b Missing Entity API
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: William Blake Galbreath <blake.galbreath@gmail.com>
Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
Co-authored-by: booky10 <boooky10@gmail.com>
Co-authored-by: Amin <amin.haddou@frg.wwschool.de>
Co-authored-by: TrollyLoki <trollyloki@gmail.com>
Co-authored-by: FireInstall <kettnerl@hu-berlin.de>
Co-authored-by: maxcom1 <46265094+maxcom1@users.noreply.github.com>
Co-authored-by: TotalledZebra <Holappa57@gmail.com>
2021-05-28 21:06:59 -04:00

122 lines
3.8 KiB
Java

package org.bukkit.entity;
import org.bukkit.block.data.BlockData;
import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Represents an Enderman.
*/
public interface Enderman extends Monster {
// Paper start
/**
* Try to teleport the enderman to a random nearby location.
*
* May conditionally fail if the random location was not valid
* @return If the enderman teleported successfully or not
*/
public boolean teleportRandomly();
// Paper end
/**
* Gets the id and data of the block that the Enderman is carrying.
*
* @return MaterialData containing the id and data of the block
* @deprecated use {@link #getCarriedBlock()}
*/
@NotNull
@Deprecated(forRemoval = true, since = "1.13")
public MaterialData getCarriedMaterial();
/**
* Sets the id and data of the block that the Enderman is carrying.
*
* @param material data to set the carried block to
* @deprecated use {@link #setCarriedBlock(BlockData)}
*/
@Deprecated(forRemoval = true, since = "1.13")
public void setCarriedMaterial(@NotNull MaterialData material);
/**
* Gets the data of the block that the Enderman is carrying.
*
* @return BlockData containing the carried block, or null if none
*/
@Nullable
public BlockData getCarriedBlock();
/**
* Sets the data of the block that the Enderman is carrying.
*
* @param blockData data to set the carried block to, or null to remove
*/
public void setCarriedBlock(@Nullable BlockData blockData);
/**
* Randomly teleports the Enderman in a 64x64x64 block cuboid region.
* <p>
* If the randomly selected point is in the ground, the point is moved 1 block
* down until air is found or until it goes under
* {@link org.bukkit.World#getMinHeight()}.
* <p>
* This method will return false if this Enderman is not alive, or if the
* teleport location was obstructed, or if the teleport location is in water.
*
* @return true if the teleport succeeded.
*/
public boolean teleport();
/**
* Randomly teleports the Enderman towards the given <code>entity</code>.
* <p>
* The point is selected by drawing a vector between this enderman and the
* given <code>entity</code>. That vector's length is set to 16 blocks.
* That point is then moved within a 8x8x8 cuboid region. If the randomly
* selected point is in the ground, the point is moved 1 block down until
* air is found or until it goes under
* {@link org.bukkit.World#getMinHeight()}.
* <p>
* This method will return false if this Enderman is not alive, or if the
* teleport location was obstructed, or if the teleport location is in water.
*
* @param entity The entity to teleport towards.
* @return true if the teleport succeeded.
*/
public boolean teleportTowards(@NotNull Entity entity);
// Paper start
/**
* Returns whether the enderman is screaming/angry.
*
* @return whether the enderman is screaming
*/
boolean isScreaming();
/**
* Sets whether the enderman is screaming/angry.
*
* @param screaming whether the enderman is screaming
*/
void setScreaming(boolean screaming);
/**
* Returns whether the enderman has been stared at.
* If set to true, players will hear an ambient sound.
*
* @return whether the enderman has been stared at
*/
boolean hasBeenStaredAt();
/**
* Sets whether the enderman has been stared at.
* If set to true, players will hear an ambient sound.
*
* @param hasBeenStaredAt whether the enderman has been stared at
*/
void setHasBeenStaredAt(boolean hasBeenStaredAt);
// Paper end
}