package org.bukkit.block; import org.bukkit.Location; import org.jetbrains.annotations.Nullable; /** * Represents a captured state of an end gateway. */ public interface EndGateway extends TileState { /** * Gets the location that entities are teleported to when * entering the gateway portal. *
* If this block state is not placed the location's world will be null. * * @return the gateway exit location */ @Nullable Location getExitLocation(); /** * Sets the exit location that entities are teleported to when * they enter the gateway portal. *
* If this block state is not placed the location's world has to be null.
*
* @param location the new exit location
* @throws IllegalArgumentException for differing worlds
*/
void setExitLocation(@Nullable Location location);
/**
* Gets whether this gateway will teleport entities directly to
* the exit location instead of finding a nearby location.
*
* @return true if the gateway is teleporting to the exact location
*/
boolean isExactTeleport();
/**
* Sets whether this gateway will teleport entities directly to
* the exit location instead of finding a nearby location.
*
* @param exact whether to teleport to the exact location
*/
void setExactTeleport(boolean exact);
/**
* Gets the age in ticks of the gateway.
*
* If the age is less than 200 ticks a magenta beam will be emitted, whilst
* if it is a multiple of 2400 ticks a purple beam will be emitted.
*
* @return age in ticks
*/
long getAge();
/**
* Sets the age in ticks of the gateway.
*
* If the age is less than 200 ticks a magenta beam will be emitted, whilst
* if it is a multiple of 2400 ticks a purple beam will be emitted.
*
* @param age new age in ticks
*/
void setAge(long age);
}