Package org.bukkit

# Interface OfflinePlayer

All Superinterfaces:
  `AnimalTamer`, `ConfigurationSerializable`, `ServerOperator`

All Known Subinterfaces:
  `Player`

public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable

## Method Summary

Modifier and Type
Method
Description
`default @NotNull BanEntry`
`banPlayer(@Nullable String reason)`
Permanently Bans this player from the server
`default @NotNull BanEntry`
`banPlayer(@Nullable String reason, @Nullable String source)`
Permanently Bans this player from the server
`default @NotNull BanEntry`
`banPlayer(@Nullable String reason, Date expires)`
Bans this player from the server
`default @NotNull BanEntry`
`banPlayer(@Nullable String reason, Date expires, @Nullable String source)`
Bans this player from the server
`default @NotNull BanEntry`
`banPlayer(@Nullable String reason, Date expires, @Nullable String source, boolean kickIfOnline)`
`void`
`decrementStatistic(@NotNull Statistic statistic)`
Decrements the given statistic for this player.
`void`
`decrementStatistic(@NotNull Statistic statistic, int amount)`
Decrements the given statistic for this player.
`void`
`decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
Decrements the given statistic for this player for the given entity.
`void`
`decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount)`
Decrements the given statistic for this player for the given entity.
`void`
`decrementStatistic(@NotNull Statistic statistic, @NotNull Material material)`
Decrements the given statistic for this player for the given material.
`void`
`decrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount)`
Decrements the given statistic for this player for the given material.
`@Nullable Location`
`getBedSpawnLocation()`
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.
`long`
`getFirstPlayed()`
Gets the first date and time that this player was witnessed on this server.
`@Nullable Location`
`getLastDeathLocation()`
Gets the player's last death location.
`long`
`getLastLogin()`
Gets the last date and time that this player logged into the server.
`long`
`getLastPlayed()`
Deprecated.
The API contract is ambiguous and the implementation may or may not return the correct value given this API ambiguity.
`long`
`getLastSeen()`
Gets the last date and time that this player was seen on the server.
`@Nullable String`
`getName()`
Returns the name of this player
`@Nullable Player`
`getPlayer()`
Gets a `Player` object that this represents, if there is one
`@NotNull PlayerProfile`
`getPlayerProfile()`
Gets a copy of the player's profile.
`int`
`getStatistic(@NotNull Statistic statistic)`
Gets the value of the given statistic for this player.
`int`
`getStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
Gets the value of the given statistic for this player.
`int`
`getStatistic(@NotNull Statistic statistic, @NotNull Material material)`
Gets the value of the given statistic for this player.
`@NotNull UUID`
`getUniqueId()`
Returns the UUID of this player
`boolean`
`hasPlayedBefore()`
Checks if this player has played on this server before.
`void`
`incrementStatistic(@NotNull Statistic statistic)`
Increments the given statistic for this player.
`void`
`incrementStatistic(@NotNull Statistic statistic, int amount)`
Increments the given statistic for this player.
`void`
`incrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
Increments the given statistic for this player for the given entity.
`void`
`incrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount)`
Increments the given statistic for this player for the given entity.
`void`
`incrementStatistic(@NotNull Statistic statistic, @NotNull Material material)`
Increments the given statistic for this player for the given material.
`void`
`incrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount)`
Increments the given statistic for this player for the given material.
`boolean`
`isBanned()`
Checks if this player is banned or not
`boolean`
`isOnline()`
Checks if this player is currently online
`boolean`
`isWhitelisted()`
Checks if this player is whitelisted or not
`void`
`setStatistic(@NotNull Statistic statistic, int newValue)`
Sets the given statistic for this player.
`void`
`setStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int newValue)`
Sets the given statistic for this player for the given entity.
`void`
`setStatistic(@NotNull Statistic statistic, @NotNull Material material, int newValue)`
Sets the given statistic for this player for the given material.
`void`
`setWhitelisted(boolean value)`
Sets if this player is whitelisted or not

### Methods inherited from interface org.bukkit.configuration.serialization.ConfigurationSerializable

`serialize`

### Methods inherited from interface org.bukkit.permissions.ServerOperator

`isOp, setOp`

## Method Details

### isOnline

boolean isOnline()
Checks if this player is currently online

Returns:
  true if they are online

### getName

@Nullable @Nullable String 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 @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 is banned or not

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

@NotNull default @NotNull BanEntry banPlayer(@Nullable @Nullable String reason, @Nullable @Nullable String source)
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)

### 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

@Nullable @Nullable Player 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 @Nullable Location getBedSpawnLocation()
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.

### 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

### 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.