Cloneable
, ConfigurationSerializable
public class Location extends Object implements Cloneable, ConfigurationSerializable
Constructor | Description |
---|---|
Location(World world,
double x,
double y,
double z) |
Constructs a new Location with the given coordinates
|
Location(World world,
double x,
double y,
double z,
float yaw,
float pitch) |
Constructs a new Location with the given coordinates and direction
|
Modifier and Type | Method | Description |
---|---|---|
@NotNull Location |
add(double x,
double y,
double z) |
Adds the location by another.
|
@NotNull Location |
add(@NotNull Location vec) |
Adds the location by another.
|
@NotNull Location |
add(@NotNull Location base,
double x,
double y,
double z) |
Takes the x/y/z from base and adds the specified x/y/z to it and returns self
This mutates this object, clone first.
|
@NotNull Location |
add(@NotNull Vector vec) |
Adds the location by a vector.
|
void |
checkFinite() |
Check if each component of this Location is finite.
|
@NotNull Location |
clone() |
|
boolean |
createExplosion(float power) |
Creates explosion at this location with given power
Will break blocks and ignite blocks on fire.
|
boolean |
createExplosion(float power,
boolean setFire) |
Creates explosion at this location with given power and optionally
setting blocks on fire.
|
boolean |
createExplosion(float power,
boolean setFire,
boolean breakBlocks) |
Creates explosion at this location with given power and optionally
setting blocks on fire.
|
boolean |
createExplosion(@NotNull Entity source,
float power,
boolean setFire,
boolean breakBlocks) |
Creates explosion at this location with given power and optionally
setting blocks on fire, with the specified entity as the source.
|
boolean |
createExplosion(@Nullable Entity source,
float power) |
Creates explosion at this location with given power, with the specified entity as the source.
|
boolean |
createExplosion(@Nullable Entity source,
float power,
boolean setFire) |
Creates explosion at this location with given power and optionally
setting blocks on fire, with the specified entity as the source.
|
static @NotNull Location |
deserialize(@NotNull Map<String,Object> args) |
Required method for deserialization
|
double |
distance(@NotNull Location o) |
Get the distance between this location and another.
|
double |
distanceSquared(@NotNull Location o) |
Get the squared distance between this location and another.
|
boolean |
equals(Object obj) |
|
@NotNull Block |
getBlock() |
Gets the block at the represented location
|
int |
getBlockX() |
Gets the floored value of the X component, indicating the block that
this location is contained with.
|
int |
getBlockY() |
Gets the floored value of the Y component, indicating the block that
this location is contained with.
|
int |
getBlockZ() |
Gets the floored value of the Z component, indicating the block that
this location is contained with.
|
@NotNull Chunk |
getChunk() |
Gets the chunk at the represented location
|
@NotNull Vector |
getDirection() |
Gets a unit-vector pointing in the direction that this Location is
facing.
|
@NotNull Collection<Entity> |
getNearbyEntities(double x,
double y,
double z) |
Returns a list of entities within a bounding box centered around a Location.
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends Entity> clazz,
double xRadius,
double yRadius,
double zRadius,
@Nullable Predicate<T> predicate) |
Gets all nearby entities of the specified type, within the specified radius (bounding box)
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends T> clazz,
double radius) |
Gets all nearby entities of the specified type, within the specified radius (bounding box)
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends T> clazz,
double xzRadius,
double yRadius) |
Gets all nearby entities of the specified type, within the specified radius, with x and x radius matching (bounding box)
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends T> clazz,
double xRadius,
double yRadius,
double zRadius) |
Gets all nearby entities of the specified type, within the specified radius (bounding box)
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends T> clazz,
double xzRadius,
double yRadius,
@Nullable Predicate<T> predicate) |
Gets all nearby entities of the specified type, within the specified radius, with x and x radius matching (bounding box)
|
<T extends Entity> |
getNearbyEntitiesByType(@Nullable Class<? extends T> clazz,
double radius,
@Nullable Predicate<T> predicate) |
Gets all nearby entities of the specified type, within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double radius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double xzRadius,
double yRadius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double xRadius,
double yRadius,
double zRadius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double xRadius,
double yRadius,
double zRadius,
@Nullable Predicate<LivingEntity> predicate) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double xzRadius,
double yRadius,
@Nullable Predicate<LivingEntity> predicate) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<LivingEntity> |
getNearbyLivingEntities(double radius,
@Nullable Predicate<LivingEntity> predicate) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double radius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double xzRadius,
double yRadius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double xRadius,
double yRadius,
double zRadius) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double xRadius,
double yRadius,
double zRadius,
@Nullable Predicate<Player> predicate) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double xzRadius,
double yRadius,
@Nullable Predicate<Player> predicate) |
Gets nearby players within the specified radius (bounding box)
|
@NotNull Collection<Player> |
getNearbyPlayers(double radius,
@Nullable Predicate<Player> predicate) |
Gets nearby players within the specified radius (bounding box)
|
float |
getPitch() |
Gets the pitch of this location, measured in degrees.
|
World |
getWorld() |
Gets the world that this location resides in
|
double |
getX() |
Gets the x-coordinate of this location
|
double |
getY() |
Gets the y-coordinate of this location
|
float |
getYaw() |
Gets the yaw of this location, measured in degrees.
|
double |
getZ() |
Gets the z-coordinate of this location
|
int |
hashCode() |
|
boolean |
isChunkLoaded() |
|
boolean |
isGenerated() |
Checks if a
Chunk has been generated at this location. |
boolean |
isWorldLoaded() |
Checks if world in this location is present and loaded.
|
double |
length() |
Gets the magnitude of the location, defined as sqrt(x^2+y^2+z^2).
|
double |
lengthSquared() |
Gets the magnitude of the location squared.
|
static int |
locToBlock(double loc) |
Safely converts a double (location coordinate) to an int (block
coordinate)
|
@NotNull Location |
multiply(double m) |
Performs scalar multiplication, multiplying all components with a
scalar.
|
static float |
normalizePitch(float pitch) |
Normalizes the given pitch angle to a value between
+/-90
degrees. |
static float |
normalizeYaw(float yaw) |
Normalizes the given yaw angle to a value between
+/-180
degrees. |
@NotNull Map<String,Object> |
serialize() |
Creates a Map representation of this class.
|
@NotNull Location |
set(double x,
double y,
double z) |
Sets the position of this Location and returns itself
This mutates this object, clone first.
|
@NotNull Location |
setDirection(@NotNull Vector vector) |
|
void |
setPitch(float pitch) |
Sets the pitch of this location, measured in degrees.
|
void |
setWorld(@Nullable World world) |
Sets the world that this location resides in
|
void |
setX(double x) |
Sets the x-coordinate of this location
|
void |
setY(double y) |
Sets the y-coordinate of this location
|
void |
setYaw(float yaw) |
Sets the yaw of this location, measured in degrees.
|
void |
setZ(double z) |
Sets the z-coordinate of this location
|
@NotNull Location |
subtract(double x,
double y,
double z) |
Subtracts the location by another.
|
@NotNull Location |
subtract(@NotNull Location vec) |
Subtracts the location by another.
|
@NotNull Location |
subtract(@NotNull Location base,
double x,
double y,
double z) |
Takes the x/y/z from base and subtracts the specified x/y/z to it and returns self
This mutates this object, clone first.
|
@NotNull Location |
subtract(@NotNull Vector vec) |
Subtracts the location by a vector.
|
long |
toBlockKey() |
|
@NotNull Location |
toBlockLocation() |
|
@NotNull Location |
toCenterLocation() |
|
@NotNull Location |
toHighestLocation() |
Returns a copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ())
|
@NotNull Location |
toHighestLocation(HeightmapType heightmap) |
Returns a copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ(), heightmap)
|
String |
toString() |
|
@NotNull Vector |
toVector() |
Constructs a new
Vector based on this Location |
@NotNull Location |
zero() |
Zero this location's components.
|
public Location(World world, double x, double y, double z)
world
- The world in which this location residesx
- The x-coordinate of this new locationy
- The y-coordinate of this new locationz
- The z-coordinate of this new locationpublic Location(World world, double x, double y, double z, float yaw, float pitch)
world
- The world in which this location residesx
- The x-coordinate of this new locationy
- The y-coordinate of this new locationz
- The z-coordinate of this new locationyaw
- The absolute rotation on the x-plane, in degreespitch
- The absolute rotation on the y-plane, in degreespublic void setWorld(@Nullable @Nullable World world)
world
- New world that this location resides inpublic boolean isWorldLoaded()
public World getWorld()
null
if it is not setIllegalArgumentException
- when world is unloadedisWorldLoaded()
@NotNull public @NotNull Chunk getChunk()
@NotNull public @NotNull Block getBlock()
public void setX(double x)
x
- X-coordinatepublic double getX()
public int getBlockX()
public void setY(double y)
y
- y-coordinatepublic double getY()
public int getBlockY()
public void setZ(double z)
z
- z-coordinatepublic double getZ()
public int getBlockZ()
public void setYaw(float yaw)
yaw
- new rotation's yawpublic float getYaw()
public void setPitch(float pitch)
pitch
- new incline's pitchpublic float getPitch()
@NotNull public @NotNull Vector getDirection()
@NotNull public @NotNull Location setDirection(@NotNull @NotNull Vector vector)
vector
- the direction vector@NotNull public @NotNull Location add(@NotNull @NotNull Location vec)
vec
- The other locationIllegalArgumentException
- for differing worldsVector
@NotNull public @NotNull Location add(@NotNull @NotNull Vector vec)
vec
- Vector to useVector
@NotNull public @NotNull Location add(double x, double y, double z)
x
- X coordinatey
- Y coordinatez
- Z coordinateVector
@NotNull public @NotNull Location subtract(@NotNull @NotNull Location vec)
vec
- The other locationIllegalArgumentException
- for differing worldsVector
@NotNull public @NotNull Location subtract(@NotNull @NotNull Vector vec)
vec
- The vector to useVector
@NotNull public @NotNull Location subtract(double x, double y, double z)
x
- X coordinatey
- Y coordinatez
- Z coordinateVector
public double length()
Vector
public double lengthSquared()
Vector
public double distance(@NotNull @NotNull Location o)
o
- The other locationIllegalArgumentException
- for differing worldsVector
public double distanceSquared(@NotNull @NotNull Location o)
o
- The other locationIllegalArgumentException
- for differing worldsVector
@NotNull public @NotNull Location multiply(double m)
m
- The factorVector
@NotNull public @NotNull Location zero()
Vector
public boolean isChunkLoaded()
public boolean isGenerated()
Chunk
has been generated at this location.@NotNull public @NotNull Location set(double x, double y, double z)
x
- X coordinatey
- Y coordinatez
- Z coordinate@NotNull public @NotNull Location add(@NotNull @NotNull Location base, double x, double y, double z)
base
- The base coordinate to modifyx
- X coordinate to add to basey
- Y coordinate to add to basez
- Z coordinate to add to base@NotNull public @NotNull Location subtract(@NotNull @NotNull Location base, double x, double y, double z)
base
- The base coordinate to modifyx
- X coordinate to subtract from basey
- Y coordinate to subtract from basez
- Z coordinate to subtract from base@NotNull public @NotNull Location toBlockLocation()
public long toBlockKey()
Block.getBlockKey(int, int, int)
@NotNull public @NotNull Location toCenterLocation()
@NotNull public @NotNull Location toHighestLocation()
NullPointerException
- if {getWorld()
} is null
@NotNull public @NotNull Location toHighestLocation(@NotNull HeightmapType heightmap)
heightmap
- The heightmap to use for finding the highest y location.NullPointerException
- if {getWorld()
} is null
UnsupportedOperationException
- if World.getHighestBlockYAt(int, int, com.destroystokyo.paper.HeightmapType)
does not support the specified heightmappublic boolean createExplosion(float power)
power
- The power of explosion, where 4F is TNTpublic boolean createExplosion(float power, boolean setFire)
power
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on firepublic boolean createExplosion(float power, boolean setFire, boolean breakBlocks)
power
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on firebreakBlocks
- Whether or not to have blocks be destroyedpublic boolean createExplosion(@Nullable @Nullable Entity source, float power)
source
- The source entity of the explosionpower
- The power of explosion, where 4F is TNTpublic boolean createExplosion(@Nullable @Nullable Entity source, float power, boolean setFire)
source
- The source entity of the explosionpower
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on firepublic boolean createExplosion(@NotNull @NotNull Entity source, float power, boolean setFire, boolean breakBlocks)
source
- The source entity of the explosionpower
- The power of explosion, where 4F is TNTsetFire
- Whether or not to set blocks on firebreakBlocks
- Whether or not to have blocks be destroyed@NotNull public @NotNull Collection<Entity> getNearbyEntities(double x, double y, double z)
x
- 1/2 the size of the box along x axisy
- 1/2 the size of the box along y axisz
- 1/2 the size of the box along z axis@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double radius)
radius
- X Radius@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double xzRadius, double yRadius)
xzRadius
- X/Z RadiusyRadius
- Y Radius@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double xRadius, double yRadius, double zRadius)
xRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z radius@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double radius, @Nullable @Nullable Predicate<LivingEntity> predicate)
radius
- Radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double xzRadius, double yRadius, @Nullable @Nullable Predicate<LivingEntity> predicate)
xzRadius
- X/Z RadiusyRadius
- Y Radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Collection<LivingEntity> getNearbyLivingEntities(double xRadius, double yRadius, double zRadius, @Nullable @Nullable Predicate<LivingEntity> predicate)
xRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Collection<Player> getNearbyPlayers(double radius)
radius
- X/Y/Z Radius@NotNull public @NotNull Collection<Player> getNearbyPlayers(double xzRadius, double yRadius)
xzRadius
- X/Z RadiusyRadius
- Y Radius@NotNull public @NotNull Collection<Player> getNearbyPlayers(double xRadius, double yRadius, double zRadius)
xRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z Radius@NotNull public @NotNull Collection<Player> getNearbyPlayers(double radius, @Nullable @Nullable Predicate<Player> predicate)
radius
- X/Y/Z Radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Collection<Player> getNearbyPlayers(double xzRadius, double yRadius, @Nullable @Nullable Predicate<Player> predicate)
xzRadius
- X/Z RadiusyRadius
- Y Radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Collection<Player> getNearbyPlayers(double xRadius, double yRadius, double zRadius, @Nullable @Nullable Predicate<Player> predicate)
xRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z Radiuspredicate
- a predicate used to filter results@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends T> clazz, double radius)
T
- the entity typeclazz
- Type to filter byradius
- X/Y/Z radius to search within@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends T> clazz, double xzRadius, double yRadius)
T
- the entity typeclazz
- Type to filter byxzRadius
- X/Z radius to search withinyRadius
- Y radius to search within@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends T> clazz, double xRadius, double yRadius, double zRadius)
T
- the entity typeclazz
- Type to filter byxRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z Radius@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends T> clazz, double radius, @Nullable @Nullable Predicate<T> predicate)
T
- the entity typeclazz
- Type to filter byradius
- X/Y/Z radius to search withinpredicate
- a predicate used to filter results@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends T> clazz, double xzRadius, double yRadius, @Nullable @Nullable Predicate<T> predicate)
T
- the entity typeclazz
- Type to filter byxzRadius
- X/Z radius to search withinyRadius
- Y radius to search withinpredicate
- a predicate used to filter results@NotNull public <T extends Entity> @NotNull Collection<T> getNearbyEntitiesByType(@Nullable @Nullable Class<? extends Entity> clazz, double xRadius, double yRadius, double zRadius, @Nullable @Nullable Predicate<T> predicate)
T
- the entity typeclazz
- Type to filter byxRadius
- X RadiusyRadius
- Y RadiuszRadius
- Z Radiuspredicate
- a predicate used to filter results@NotNull public @NotNull Vector toVector()
Vector
based on this Locationpublic void checkFinite() throws IllegalArgumentException
IllegalArgumentException
- if any component is not finitepublic static int locToBlock(double loc)
loc
- Precise coordinate@NotNull public @NotNull Map<String,Object> serialize()
ConfigurationSerializable
This class must provide a method to restore this class, as defined in
the ConfigurationSerializable
interface javadocs.
serialize
in interface ConfigurationSerializable
@NotNull public static @NotNull Location deserialize(@NotNull @NotNull Map<String,Object> args)
args
- map to deserializeIllegalArgumentException
- if the world don't existsConfigurationSerializable
public static float normalizeYaw(float yaw)
+/-180
degrees.yaw
- the yaw in degreesgetYaw()
public static float normalizePitch(float pitch)
+/-90
degrees.pitch
- the pitch in degreesgetPitch()
Copyright © 2020. All rights reserved.