Package org.bukkit

Interface OfflinePlayer

All Superinterfaces:
AnimalTamer, ConfigurationSerializable, ServerOperator
All Known Subinterfaces:
Player

public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable
Represents a reference to a player identity and the data belonging to a player that is stored on the disk and can, thus, be retrieved without the player needing to be online.
  • Method Details

    • isOnline

      boolean isOnline()
      Checks if this player is currently online It should be noted that this will return true if any instance of this player is online! This instance may have disconnected. If you wish to check if this specific instance of the player is still online, see isConnected().
      Returns:
      true if they are online
    • isConnected

      boolean isConnected()
      Checks whether the connection to this player is still valid. This will return true as long as this specific instance of the player is still connected. This will return false after this instance has disconnected, even if the same player has reconnected since.
      Returns:
      true if this player instance is connected
    • getName

      Returns the name of this player

      Names are no longer unique past a single game session. For persistent storage it is recommended that you use getUniqueId() instead.

      Specified by:
      getName in interface AnimalTamer
      Returns:
      Player name or null if we have not seen a name for this player yet
    • getUniqueId

      @NotNull @NotNull UUID getUniqueId()
      Returns the UUID of this player
      Specified by:
      getUniqueId in interface AnimalTamer
      Returns:
      Player UUID
    • getPlayerProfile

      @NotNull PlayerProfile getPlayerProfile()
      Gets a copy of the player's profile.

      If the player is online, the returned profile will be complete. Otherwise, only the unique id is guaranteed to be present. You can use PlayerProfile.update() to complete the returned profile.

      Returns:
      the player's profile
    • isBanned

      boolean isBanned()
      Checks if this player has had their profile banned.
      Returns:
      true if banned, otherwise false
    • banPlayer

      @NotNull default @NotNull BanEntry banPlayer(@Nullable @Nullable String reason)
      Permanently Bans this player from the server
      Parameters:
      reason - Reason for Ban
      Returns:
      Ban Entry
    • banPlayer

      Permanently Bans this player from the server
      Parameters:
      reason - Reason for Ban
      source - Source of the ban, or null for default
      Returns:
      Ban Entry
    • banPlayer

      @NotNull default @NotNull BanEntry banPlayer(@Nullable @Nullable String reason, @Nullable Date expires)
      Bans this player from the server
      Parameters:
      reason - Reason for Ban
      expires - When to expire the ban
      Returns:
      Ban Entry
    • banPlayer

      @NotNull default @NotNull BanEntry banPlayer(@Nullable @Nullable String reason, @Nullable Date expires, @Nullable @Nullable String source)
      Bans this player from the server
      Parameters:
      reason - Reason for Ban
      expires - When to expire the ban
      source - Source of the ban or null for default
      Returns:
      Ban Entry
    • banPlayer

      @NotNull default @NotNull BanEntry banPlayer(@Nullable @Nullable String reason, @Nullable Date expires, @Nullable @Nullable String source, boolean kickIfOnline)
    • ban

      @Nullable <E extends BanEntry<? super PlayerProfile>> E ban(@Nullable @Nullable String reason, @Nullable @Nullable Date expires, @Nullable @Nullable String source)
      Adds this user to the ProfileBanList. If a previous ban exists, this will update the entry.
      Parameters:
      reason - reason for the ban, null indicates implementation default
      expires - date for the ban's expiration (unban), or null to imply forever
      source - source of the ban, null indicates implementation default
      Returns:
      the entry for the newly created ban, or the entry for the (updated) previous ban
    • ban

      Adds this user to the ProfileBanList. If a previous ban exists, this will update the entry.
      Parameters:
      reason - reason for the ban, null indicates implementation default
      expires - instant for the ban's expiration (unban), or null to imply forever
      source - source of the ban, null indicates implementation default
      Returns:
      the entry for the newly created ban, or the entry for the (updated) previous ban
    • ban

      Adds this user to the ProfileBanList. If a previous ban exists, this will update the entry.
      Parameters:
      reason - reason for the ban, null indicates implementation default
      duration - how long the ban last, or null to imply forever
      source - source of the ban, null indicates implementation default
      Returns:
      the entry for the newly created ban, or the entry for the (updated) previous ban
    • isWhitelisted

      boolean isWhitelisted()
      Checks if this player is whitelisted or not
      Returns:
      true if whitelisted
    • setWhitelisted

      void setWhitelisted(boolean value)
      Sets if this player is whitelisted or not
      Parameters:
      value - true if whitelisted
    • getPlayer

      Gets a Player object that this represents, if there is one

      If the player is online, this will return that player. Otherwise, it will return null.

      Returns:
      Online player
    • getFirstPlayed

      long getFirstPlayed()
      Gets the first date and time that this player was witnessed on this server.

      If the player has never played before, this will return 0. Otherwise, it will be the amount of milliseconds since midnight, January 1, 1970 UTC.

      Returns:
      Date of first log-in for this player, or 0
    • getLastPlayed

      @Deprecated long getLastPlayed()
      Deprecated.
      The API contract is ambiguous and the implementation may or may not return the correct value given this API ambiguity. It is instead recommended use getLastLogin() or getLastSeen() depending on your needs.
      Gets the last date and time that this player was witnessed on this server.

      If the player has never played before, this will return 0. Otherwise, it will be the amount of milliseconds since midnight, January 1, 1970 UTC.

      Returns:
      Date of last log-in for this player, or 0
    • hasPlayedBefore

      boolean hasPlayedBefore()
      Checks if this player has played on this server before.
      Returns:
      True if the player has played before, otherwise false
    • getBedSpawnLocation

      @Nullable @Deprecated @Nullable Location getBedSpawnLocation()
      Deprecated.
      Misleading name. This method also returns the location of respawn anchors.
      Gets the Location where the player will spawn at their bed, null if they have not slept in one or their current bed spawn is invalid.
      Returns:
      Bed Spawn Location if bed exists, otherwise null.
      See Also:
    • getLastLogin

      long getLastLogin()
      Gets the last date and time that this player logged into the server.

      If the player has never played before, this will return 0. Otherwise, it will be the amount of milliseconds since midnight, January 1, 1970 UTC.

      Returns:
      last login time
    • getLastSeen

      long getLastSeen()
      Gets the last date and time that this player was seen on the server.

      If the player has never played before, this will return 0. If the player is currently online, this will return the current time. Otherwise it will be the amount of milliseconds since midnight, January 1, 1970 UTC.

      Returns:
      last seen time
    • getRespawnLocation

      @Nullable @Nullable Location getRespawnLocation()
      Gets the Location where the player will spawn at, null if they don't have a valid respawn point.
      Returns:
      respawn location if exists, otherwise null.
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
      Increments the given statistic for this player.

      This is equivalent to the following code: incrementStatistic(Statistic, 1)

      Parameters:
      statistic - Statistic to increment
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if the statistic requires an additional parameter
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
      Decrements the given statistic for this player.

      This is equivalent to the following code: decrementStatistic(Statistic, 1)

      Parameters:
      statistic - Statistic to decrement
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if the statistic requires an additional parameter
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic, int amount) throws IllegalArgumentException
      Increments the given statistic for this player.
      Parameters:
      statistic - Statistic to increment
      amount - Amount to increment this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the statistic requires an additional parameter
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic, int amount) throws IllegalArgumentException
      Decrements the given statistic for this player.
      Parameters:
      statistic - Statistic to decrement
      amount - Amount to decrement this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the statistic requires an additional parameter
    • setStatistic

      void setStatistic(@NotNull @NotNull Statistic statistic, int newValue) throws IllegalArgumentException
      Sets the given statistic for this player.
      Parameters:
      statistic - Statistic to set
      newValue - The value to set this statistic to
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if newValue is negative
      IllegalArgumentException - if the statistic requires an additional parameter
    • getStatistic

      int getStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
      Gets the value of the given statistic for this player.
      Parameters:
      statistic - Statistic to check
      Returns:
      the value of the given statistic
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if the statistic requires an additional parameter
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
      Increments the given statistic for this player for the given material.

      This is equivalent to the following code: incrementStatistic(Statistic, Material, 1)

      Parameters:
      statistic - Statistic to increment
      material - Material to offset the statistic with
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
      Decrements the given statistic for this player for the given material.

      This is equivalent to the following code: decrementStatistic(Statistic, Material, 1)

      Parameters:
      statistic - Statistic to decrement
      material - Material to offset the statistic with
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • getStatistic

      int getStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
      Gets the value of the given statistic for this player.
      Parameters:
      statistic - Statistic to check
      material - Material offset of the statistic
      Returns:
      the value of the given statistic
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int amount) throws IllegalArgumentException
      Increments the given statistic for this player for the given material.
      Parameters:
      statistic - Statistic to increment
      material - Material to offset the statistic with
      amount - Amount to increment this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int amount) throws IllegalArgumentException
      Decrements the given statistic for this player for the given material.
      Parameters:
      statistic - Statistic to decrement
      material - Material to offset the statistic with
      amount - Amount to decrement this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • setStatistic

      void setStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int newValue) throws IllegalArgumentException
      Sets the given statistic for this player for the given material.
      Parameters:
      statistic - Statistic to set
      material - Material to offset the statistic with
      newValue - The value to set this statistic to
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if material is null
      IllegalArgumentException - if newValue is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
      Increments the given statistic for this player for the given entity.

      This is equivalent to the following code: incrementStatistic(Statistic, EntityType, 1)

      Parameters:
      statistic - Statistic to increment
      entityType - EntityType to offset the statistic with
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
      Decrements the given statistic for this player for the given entity.

      This is equivalent to the following code: decrementStatistic(Statistic, EntityType, 1)

      Parameters:
      statistic - Statistic to decrement
      entityType - EntityType to offset the statistic with
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • getStatistic

      int getStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
      Gets the value of the given statistic for this player.
      Parameters:
      statistic - Statistic to check
      entityType - EntityType offset of the statistic
      Returns:
      the value of the given statistic
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • incrementStatistic

      void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int amount) throws IllegalArgumentException
      Increments the given statistic for this player for the given entity.
      Parameters:
      statistic - Statistic to increment
      entityType - EntityType to offset the statistic with
      amount - Amount to increment this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • decrementStatistic

      void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int amount)
      Decrements the given statistic for this player for the given entity.
      Parameters:
      statistic - Statistic to decrement
      entityType - EntityType to offset the statistic with
      amount - Amount to decrement this statistic by
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if amount is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • setStatistic

      void setStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int newValue)
      Sets the given statistic for this player for the given entity.
      Parameters:
      statistic - Statistic to set
      entityType - EntityType to offset the statistic with
      newValue - The value to set this statistic to
      Throws:
      IllegalArgumentException - if statistic is null
      IllegalArgumentException - if entityType is null
      IllegalArgumentException - if newValue is negative
      IllegalArgumentException - if the given parameter is not valid for the statistic
    • getLastDeathLocation

      @Nullable @Nullable Location getLastDeathLocation()
      Gets the player's last death location.
      Returns:
      the last death location if it exists, otherwise null.
    • getLocation

      Gets the player's current location.
      Returns:
      the player's location, null if player hasn't ever played before.
    • getAllowFlight

      boolean getAllowFlight()
      Determines if the OfflinePlayer is allowed to fly via jump key double-tap like in creative mode.
      Returns:
      True if the player is allowed to fly.
    • setAllowFlight

      void setAllowFlight(boolean flight)
      Sets if the OfflinePlayer is allowed to fly via jump key double-tap like in creative mode.
      Parameters:
      flight - If flight should be allowed.
    • isFlying

      boolean isFlying()
      Checks to see if this player is currently flying or not.
      Returns:
      True if the player is flying, else false.
    • setFlying

      void setFlying(boolean value)
      Makes this player start or stop flying.
      Parameters:
      value - True to fly.
    • setFlySpeed

      void setFlySpeed(float value) throws IllegalArgumentException
      Sets the speed at which a client will fly. Negative values indicate reverse directions.
      Parameters:
      value - The new speed, from -1 to 1.
      Throws:
      IllegalArgumentException - If new speed is less than -1 or greater than 1
    • setWalkSpeed

      void setWalkSpeed(float value) throws IllegalArgumentException
      Sets the speed at which a client will walk. Negative values indicate reverse directions.
      Parameters:
      value - The new speed, from -1 to 1.
      Throws:
      IllegalArgumentException - If new speed is less than -1 or greater than 1
    • getFlySpeed

      float getFlySpeed()
      Gets the current allowed speed that a client can fly.
      Returns:
      The current allowed speed, from -1 to 1
    • getWalkSpeed

      float getWalkSpeed()
      Gets the current allowed speed that a client can walk.
      Returns:
      The current allowed speed, from -1 to 1
    • teleportOffline

      boolean teleportOffline(@NotNull Location destination)
      Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleport implementation.
      Parameters:
      destination -
      Returns:
      true if teleportation was successful
    • teleportOffline

      boolean teleportOffline(@NotNull Location destination, @NotNull PlayerTeleportEvent.TeleportCause cause)
      Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleport implementation.
      Parameters:
      destination -
      cause - Teleport cause used if player is online
      Returns:
      true if teleportation was successful
    • teleportOfflineAsync

      @NotNull CompletableFuture<Boolean> teleportOfflineAsync(@NotNull @NotNull Location destination)
      Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleportAsync implementation.
      Parameters:
      destination -
      Returns:
      true if teleportation successful
    • teleportOfflineAsync

      Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleportAsync implementation.
      Parameters:
      destination -
      cause - Teleport cause used if player is online
      Returns:
      true if teleportation successful