Package org.bukkit

Class Location

java.lang.Object
org.bukkit.Location
All Implemented Interfaces:
java.lang.Cloneable, ConfigurationSerializable

public class Location
extends java.lang.Object
implements java.lang.Cloneable, ConfigurationSerializable
Represents a 3-dimensional position in a world
  • Constructor Summary

    Constructors 
    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
  • Method Summary

    Modifier and Type Method Description
    Location add​(double x, double y, double z)
    Adds the location by another.
    Location add​(Location vec)
    Adds the location by another.
    Location add​(Vector vec)
    Adds the location by a vector.
    Location clone()  
    static Location deserialize​(java.util.Map<java.lang.String,​java.lang.Object> args)
    Required method for deserialization
    double distance​(Location o)
    Get the distance between this location and another.
    double distanceSquared​(Location o)
    Get the squared distance between this location and another.
    boolean equals​(java.lang.Object obj)  
    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.
    Chunk getChunk()
    Gets the chunk at the represented location
    Vector getDirection()
    Gets a unit-vector pointing in the direction that this Location is facing.
    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()  
    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)
    Location multiply​(double m)
    Performs scalar multiplication, multiplying all components with a scalar.
    java.util.Map<java.lang.String,​java.lang.Object> serialize()
    Creates a Map representation of this class.
    Location setDirection​(Vector vector)
    Sets the yaw and pitch to point in the direction of the vector.
    void setPitch​(float pitch)
    Sets the pitch of this location, measured in degrees.
    void setWorld​(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
    Location subtract​(double x, double y, double z)
    Subtracts the location by another.
    Location subtract​(Location vec)
    Subtracts the location by another.
    Location subtract​(Vector vec)
    Subtracts the location by a vector.
    java.lang.String toString()  
    Vector toVector()
    Constructs a new Vector based on this Location
    Location zero()
    Zero this location's components.

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Location

      public Location​(World world, double x, double y, double z)
      Constructs a new Location with the given coordinates
      Parameters:
      world - The world in which this location resides
      x - The x-coordinate of this new location
      y - The y-coordinate of this new location
      z - The z-coordinate of this new location
    • Location

      public Location​(World world, double x, double y, double z, float yaw, float pitch)
      Constructs a new Location with the given coordinates and direction
      Parameters:
      world - The world in which this location resides
      x - The x-coordinate of this new location
      y - The y-coordinate of this new location
      z - The z-coordinate of this new location
      yaw - The absolute rotation on the x-plane, in degrees
      pitch - The absolute rotation on the y-plane, in degrees
  • Method Details

    • setWorld

      public void setWorld​(World world)
      Sets the world that this location resides in
      Parameters:
      world - New world that this location resides in
    • getWorld

      public World getWorld()
      Gets the world that this location resides in
      Returns:
      World that contains this location
    • getChunk

      public Chunk getChunk()
      Gets the chunk at the represented location
      Returns:
      Chunk at the represented location
    • getBlock

      public Block getBlock()
      Gets the block at the represented location
      Returns:
      Block at the represented location
    • setX

      public void setX​(double x)
      Sets the x-coordinate of this location
      Parameters:
      x - X-coordinate
    • getX

      public double getX()
      Gets the x-coordinate of this location
      Returns:
      x-coordinate
    • getBlockX

      public int getBlockX()
      Gets the floored value of the X component, indicating the block that this location is contained with.
      Returns:
      block X
    • setY

      public void setY​(double y)
      Sets the y-coordinate of this location
      Parameters:
      y - y-coordinate
    • getY

      public double getY()
      Gets the y-coordinate of this location
      Returns:
      y-coordinate
    • getBlockY

      public int getBlockY()
      Gets the floored value of the Y component, indicating the block that this location is contained with.
      Returns:
      block y
    • setZ

      public void setZ​(double z)
      Sets the z-coordinate of this location
      Parameters:
      z - z-coordinate
    • getZ

      public double getZ()
      Gets the z-coordinate of this location
      Returns:
      z-coordinate
    • getBlockZ

      public int getBlockZ()
      Gets the floored value of the Z component, indicating the block that this location is contained with.
      Returns:
      block z
    • setYaw

      public void setYaw​(float yaw)
      Sets the yaw of this location, measured in degrees.
      • A yaw of 0 or 360 represents the positive z direction.
      • A yaw of 180 represents the negative z direction.
      • A yaw of 90 represents the negative x direction.
      • A yaw of 270 represents the positive x direction.
      Increasing yaw values are the equivalent of turning to your right-facing, increasing the scale of the next respective axis, and decreasing the scale of the previous axis.
      Parameters:
      yaw - new rotation's yaw
    • getYaw

      public float getYaw()
      Gets the yaw of this location, measured in degrees.
      • A yaw of 0 or 360 represents the positive z direction.
      • A yaw of 180 represents the negative z direction.
      • A yaw of 90 represents the negative x direction.
      • A yaw of 270 represents the positive x direction.
      Increasing yaw values are the equivalent of turning to your right-facing, increasing the scale of the next respective axis, and decreasing the scale of the previous axis.
      Returns:
      the rotation's yaw
    • setPitch

      public void setPitch​(float pitch)
      Sets the pitch of this location, measured in degrees.
      • A pitch of 0 represents level forward facing.
      • A pitch of 90 represents downward facing, or negative y direction.
      • A pitch of -90 represents upward facing, or positive y direction.
      Increasing pitch values the equivalent of looking down.
      Parameters:
      pitch - new incline's pitch
    • getPitch

      public float getPitch()
      Gets the pitch of this location, measured in degrees.
      • A pitch of 0 represents level forward facing.
      • A pitch of 90 represents downward facing, or negative y direction.
      • A pitch of -90 represents upward facing, or positive y direction.
      Increasing pitch values the equivalent of looking down.
      Returns:
      the incline's pitch
    • getDirection

      public Vector getDirection()
      Gets a unit-vector pointing in the direction that this Location is facing.
      Returns:
      a vector pointing the direction of this location's pitch and yaw
    • setDirection

      public Location setDirection​(Vector vector)
      Sets the yaw and pitch to point in the direction of the vector.
      Parameters:
      vector - the direction vector
      Returns:
      the same location
    • add

      public Location add​(Location vec)
      Adds the location by another.
      Parameters:
      vec - The other location
      Returns:
      the same location
      Throws:
      java.lang.IllegalArgumentException - for differing worlds
      See Also:
      Vector
    • add

      public Location add​(Vector vec)
      Adds the location by a vector.
      Parameters:
      vec - Vector to use
      Returns:
      the same location
      See Also:
      Vector
    • add

      public Location add​(double x, double y, double z)
      Adds the location by another. Not world-aware.
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
      Returns:
      the same location
      See Also:
      Vector
    • subtract

      public Location subtract​(Location vec)
      Subtracts the location by another.
      Parameters:
      vec - The other location
      Returns:
      the same location
      Throws:
      java.lang.IllegalArgumentException - for differing worlds
      See Also:
      Vector
    • subtract

      public Location subtract​(Vector vec)
      Subtracts the location by a vector.
      Parameters:
      vec - The vector to use
      Returns:
      the same location
      See Also:
      Vector
    • subtract

      public Location subtract​(double x, double y, double z)
      Subtracts the location by another. Not world-aware and orientation independent.
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
      Returns:
      the same location
      See Also:
      Vector
    • length

      public double length()
      Gets the magnitude of the location, defined as sqrt(x^2+y^2+z^2). The value of this method is not cached and uses a costly square-root function, so do not repeatedly call this method to get the location's magnitude. NaN will be returned if the inner result of the sqrt() function overflows, which will be caused if the length is too long. Not world-aware and orientation independent.
      Returns:
      the magnitude
      See Also:
      Vector
    • lengthSquared

      public double lengthSquared()
      Gets the magnitude of the location squared. Not world-aware and orientation independent.
      Returns:
      the magnitude
      See Also:
      Vector
    • distance

      public double distance​(Location o)
      Get the distance between this location and another. The value of this method is not cached and uses a costly square-root function, so do not repeatedly call this method to get the location's magnitude. NaN will be returned if the inner result of the sqrt() function overflows, which will be caused if the distance is too long.
      Parameters:
      o - The other location
      Returns:
      the distance
      Throws:
      java.lang.IllegalArgumentException - for differing worlds
      See Also:
      Vector
    • distanceSquared

      public double distanceSquared​(Location o)
      Get the squared distance between this location and another.
      Parameters:
      o - The other location
      Returns:
      the distance
      Throws:
      java.lang.IllegalArgumentException - for differing worlds
      See Also:
      Vector
    • multiply

      public Location multiply​(double m)
      Performs scalar multiplication, multiplying all components with a scalar. Not world-aware.
      Parameters:
      m - The factor
      Returns:
      the same location
      See Also:
      Vector
    • zero

      public Location zero()
      Zero this location's components. Not world-aware.
      Returns:
      the same location
      See Also:
      Vector
    • equals

      public boolean equals​(java.lang.Object obj)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • toVector

      public Vector toVector()
      Constructs a new Vector based on this Location
      Returns:
      New Vector containing the coordinates represented by this Location
    • clone

      public Location clone()
      Overrides:
      clone in class java.lang.Object
    • locToBlock

      public static int locToBlock​(double loc)
      Safely converts a double (location coordinate) to an int (block coordinate)
      Parameters:
      loc - Precise coordinate
      Returns:
      Block coordinate
    • serialize

      public java.util.Map<java.lang.String,​java.lang.Object> serialize()
      Description copied from interface: ConfigurationSerializable
      Creates a Map representation of this class.

      This class must provide a method to restore this class, as defined in the ConfigurationSerializable interface javadocs.

      Specified by:
      serialize in interface ConfigurationSerializable
      Returns:
      Map containing the current state of this class
    • deserialize

      public static Location deserialize​(java.util.Map<java.lang.String,​java.lang.Object> args)
      Required method for deserialization
      Parameters:
      args - map to deserialize
      Returns:
      deserialized location
      Throws:
      java.lang.IllegalArgumentException - if the world don't exists
      See Also:
      ConfigurationSerializable