package org.bukkit; import java.util.UUID; import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.entity.AnimalTamer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.permissions.ServerOperator; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable { /** * Checks if this player is currently online * * @return true if they are online */ public boolean isOnline(); /** * 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 {@link #getUniqueId()} instead. * * @return Player name or null if we have not seen a name for this player yet */ @Override @Nullable public String getName(); /** * Returns the UUID of this player * * @return Player UUID */ @Override @NotNull public UUID getUniqueId(); /** * Checks if this player is banned or not * * @return true if banned, otherwise false */ public boolean isBanned(); /** * Checks if this player is whitelisted or not * * @return true if whitelisted */ public boolean isWhitelisted(); /** * Sets if this player is whitelisted or not * * @param value true if whitelisted */ public void setWhitelisted(boolean value); /** * Gets a {@link Player} object that this represents, if there is one *

* If the player is online, this will return that player. Otherwise, * it will return null. * * @return Online player */ @Nullable public Player getPlayer(); /** * 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. * * @return Date of first log-in for this player, or 0 */ public long getFirstPlayed(); /** * 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. * * @return Date of last log-in for this player, or 0 */ public long getLastPlayed(); /** * Checks if this player has played on this server before. * * @return True if the player has played before, otherwise false */ public boolean hasPlayedBefore(); /** * 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. * * @return Bed Spawn Location if bed exists, otherwise null. */ @Nullable public Location getBedSpawnLocation(); /** * Increments the given statistic for this player. *

* This is equivalent to the following code: * incrementStatistic(Statistic, 1) * * @param statistic Statistic to increment * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public void incrementStatistic(@NotNull Statistic statistic) throws IllegalArgumentException; /** * Decrements the given statistic for this player. *

* This is equivalent to the following code: * decrementStatistic(Statistic, 1) * * @param statistic Statistic to decrement * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public void decrementStatistic(@NotNull Statistic statistic) throws IllegalArgumentException; /** * Increments the given statistic for this player. * * @param statistic Statistic to increment * @param amount Amount to increment this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public void incrementStatistic(@NotNull Statistic statistic, int amount) throws IllegalArgumentException; /** * Decrements the given statistic for this player. * * @param statistic Statistic to decrement * @param amount Amount to decrement this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public void decrementStatistic(@NotNull Statistic statistic, int amount) throws IllegalArgumentException; /** * Sets the given statistic for this player. * * @param statistic Statistic to set * @param newValue The value to set this statistic to * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if newValue is negative * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public void setStatistic(@NotNull Statistic statistic, int newValue) throws IllegalArgumentException; /** * Gets the value of the given statistic for this player. * * @param statistic Statistic to check * @return the value of the given statistic * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if the statistic requires an * additional parameter */ public int getStatistic(@NotNull Statistic statistic) throws IllegalArgumentException; /** * Increments the given statistic for this player for the given material. *

* This is equivalent to the following code: * incrementStatistic(Statistic, Material, 1) * * @param statistic Statistic to increment * @param material Material to offset the statistic with * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void incrementStatistic(@NotNull Statistic statistic, @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) * * @param statistic Statistic to decrement * @param material Material to offset the statistic with * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void decrementStatistic(@NotNull Statistic statistic, @NotNull Material material) throws IllegalArgumentException; /** * Gets the value of the given statistic for this player. * * @param statistic Statistic to check * @param material Material offset of the statistic * @return the value of the given statistic * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public int getStatistic(@NotNull Statistic statistic, @NotNull Material material) throws IllegalArgumentException; /** * Increments the given statistic for this player for the given material. * * @param statistic Statistic to increment * @param material Material to offset the statistic with * @param amount Amount to increment this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void incrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount) throws IllegalArgumentException; /** * Decrements the given statistic for this player for the given material. * * @param statistic Statistic to decrement * @param material Material to offset the statistic with * @param amount Amount to decrement this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void decrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount) throws IllegalArgumentException; /** * Sets the given statistic for this player for the given material. * * @param statistic Statistic to set * @param material Material to offset the statistic with * @param newValue The value to set this statistic to * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if material is null * @throws IllegalArgumentException if newValue is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void setStatistic(@NotNull Statistic statistic, @NotNull Material material, int newValue) throws IllegalArgumentException; /** * Increments the given statistic for this player for the given entity. *

* This is equivalent to the following code: * incrementStatistic(Statistic, EntityType, 1) * * @param statistic Statistic to increment * @param entityType EntityType to offset the statistic with * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void incrementStatistic(@NotNull Statistic statistic, @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) * * @param statistic Statistic to decrement * @param entityType EntityType to offset the statistic with * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType) throws IllegalArgumentException; /** * Gets the value of the given statistic for this player. * * @param statistic Statistic to check * @param entityType EntityType offset of the statistic * @return the value of the given statistic * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public int getStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType) throws IllegalArgumentException; /** * Increments the given statistic for this player for the given entity. * * @param statistic Statistic to increment * @param entityType EntityType to offset the statistic with * @param amount Amount to increment this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void incrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount) throws IllegalArgumentException; /** * Decrements the given statistic for this player for the given entity. * * @param statistic Statistic to decrement * @param entityType EntityType to offset the statistic with * @param amount Amount to decrement this statistic by * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if amount is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount); /** * Sets the given statistic for this player for the given entity. * * @param statistic Statistic to set * @param entityType EntityType to offset the statistic with * @param newValue The value to set this statistic to * @throws IllegalArgumentException if statistic is null * @throws IllegalArgumentException if entityType is null * @throws IllegalArgumentException if newValue is negative * @throws IllegalArgumentException if the given parameter is not valid * for the statistic */ public void setStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int newValue); }