程序包 org.bukkit

# 接口 OfflinePlayer

所有超级接口:
  `AnimalTamer`, `ConfigurationSerializable`, `ServerOperator`

所有已知子接口:
  `Player`

public interface OfflinePlayer extends ServerOperator, AnimalTamer, ConfigurationSerializable
代表一个对玩家身份及其附属数据的引用, 数据存储于磁盘中, 因此不需要玩家在线即可获取到玩家的引用.

- ## 方法概要

  修饰符和类型
  方法
  说明
  `@Nullable BanEntry<PlayerProfile>`
  `ban(@Nullable String reason, @Nullable Duration duration, @Nullable String source)`
  Adds this user to the `ProfileBanList`.
  `@Nullable BanEntry<PlayerProfile>`
  `ban(@Nullable String reason, @Nullable Instant expires, @Nullable String source)`
  Adds this user to the `ProfileBanList`.
  `@Nullable BanEntry<PlayerProfile>`
  `ban(@Nullable String reason, @Nullable Date expires, @Nullable String source)`
  Adds this user to the `ProfileBanList`.
  `void`
  `decrementStatistic(@NotNull Statistic statistic)`
  把该玩家的统计信息里的某项-1.
  `void`
  `decrementStatistic(@NotNull Statistic statistic, int amount)`
  把该玩家的统计信息里的某项减少指定的值.
  `void`
  `decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
  把该玩家的统计信息中跟实体有关的统计项中的某种实体(`EntityType`)的数量-1.
  `void`
  `decrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount)`
  将该玩家的统计信息中某个跟实体有关的统计项中的某实体类型(`EntityType`)减少指定的值.
  `void`
  `decrementStatistic(@NotNull Statistic statistic, @NotNull Material material)`
  把该玩家的统计信息中跟方块/物品有关的统计项减少一个`Material`.
  `void`
  `decrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount)`
  把该玩家的统计信息中跟方块/物品有关的统计项中的某`Material`减少指定的值.
  `@Nullable Location`
  `getBedSpawnLocation()`
  已过时。
  误导性的方法名称.
  `long`
  `getFirstPlayed()`
  获取该玩家第一次进入服务器的时间
  `@Nullable Location`
  `getLastDeathLocation()`
  Gets the player's last death location.
  `long`
  `getLastPlayed()`
  获取该玩家最后一次登录服务器的时间
  `@Nullable Location`
  `getLocation()`
  Gets the player's current location.
  `@Nullable String`
  `getName()`
  返回该玩家的游戏名
  `@Nullable Player`
  `getPlayer()`
  获取一个 `Player`对象
  `@NotNull PlayerProfile`
  `getPlayerProfile()`
  获取玩家资料的一份副本.
  `@Nullable Location`
  `getRespawnLocation()`
  Gets the Location where the player will spawn at, null if they don't have a valid respawn point.
  `int`
  `getStatistic(@NotNull Statistic statistic)`
  得到该玩家的统计信息中某项的值.
  `int`
  `getStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
  获得该玩家的统计信息中跟实体有关的统计项中的某实体(`EntityType`)数量.
  `int`
  `getStatistic(@NotNull Statistic statistic, @NotNull Material material)`
  获取该玩家的统计信息中跟方块/物品有关的统计项的某`Material`有多少.
  `@NotNull UUID`
  `getUniqueId()`
  返回该玩家的游戏UUID标识
  `boolean`
  `hasPlayedBefore()`
  检测该玩家是否在先前在此服游戏过
  `void`
  `incrementStatistic(@NotNull Statistic statistic)`
  把该玩家的统计信息里的某项+1.
  `void`
  `incrementStatistic(@NotNull Statistic statistic, int amount)`
  把该玩家的统计信息里的某项加上指定的值.
  `void`
  `incrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType)`
  把该玩家的统计信息中跟实体有关的统计项中的某种实体(`EntityType`)的数量+1.
  `void`
  `incrementStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int amount)`
  将该玩家的统计信息中的某个跟实体有关的统计项的某实体类型(`EntityType`)加上指定的数值.
  `void`
  `incrementStatistic(@NotNull Statistic statistic, @NotNull Material material)`
  把该玩家的统计信息中跟方块/物品有关的统计项加上一个`Material`.
  `void`
  `incrementStatistic(@NotNull Statistic statistic, @NotNull Material material, int amount)`
  把该玩家的统计信息中跟方块/物品有关的统计项中的某`Material`加上指定的值.
  `boolean`
  `isBanned()`
  检测该玩家是否被封禁
  `boolean`
  `isOnline()`
  检查玩家是否在线
  `boolean`
  `isWhitelisted()`
  检测玩家是否存在白名单列表中
  `void`
  `setStatistic(@NotNull Statistic statistic, int newValue)`
  设置该玩家的统计信息里的某项的值.
  `void`
  `setStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int newValue)`
  设置该玩家的统计信息中某个跟实体有关的统计项的某实体类型(`EntityType`)为某个数值.
  `void`
  `setStatistic(@NotNull Statistic statistic, @NotNull Material material, int newValue)`
  把该玩家的统计信息中的某个跟方块/物品有关的统计项中的某`Material`的数量设定为某值.
  `void`
  `setWhitelisted(boolean value)`
  将玩家添加到白名单列表或移除

  ### 从接口继承的方法 org.bukkit.configuration.serialization.ConfigurationSerializable

  `serialize`

  ### 从接口继承的方法 org.bukkit.permissions.ServerOperator

  `isOp, setOp`

- ## 方法详细资料

  - ### isOnline

    boolean isOnline()
    检查玩家是否在线

    原文:Checks if this player is currently online

    返回:
      在线返回true,反之返回false

  - ### getName

    @Nullable @Nullable String getName()
    返回该玩家的游戏名

    游戏名并不再是唯一的游戏标识,如果你希望长时间储存,建议使用`getUniqueId()`来替代

    原文:Names are no longer unique past a single game session. For persistent storage

    it is recommended that you use `getUniqueId()` instead.

    指定者:
      `getName` 在接口中 `AnimalTamer`
    返回:
      返回玩家游戏名,如果玩家不存在返回null

  - ### getUniqueId

    @NotNull @NotNull UUID getUniqueId()
    返回该玩家的游戏UUID标识
    指定者:
      `getUniqueId` 在接口中 `AnimalTamer`
    返回:
      玩家游戏UUID

  - ### getPlayerProfile

    @NotNull @NotNull PlayerProfile getPlayerProfile()
    获取玩家资料的一份副本.

    如果此玩家在线, 则返回的资料是完整的. 否则, 只保证唯一 id 存在于资料中. 您可以使用 `PlayerProfile.update()` 来补全返回的资料.

    原文: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.

    返回:
      玩家资料

  - ### isBanned

    boolean isBanned()
    检测该玩家是否被封禁
    返回:
      是否被封禁

  - ### ban

    @Nullable @Nullable BanEntry<PlayerProfile> 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.
    参数:
      `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
    返回:
      the entry for the newly created ban, or the entry for the (updated) previous ban

  - ### ban

    @Nullable @Nullable BanEntry<PlayerProfile> ban(@Nullable @Nullable String reason, @Nullable @Nullable Instant expires, @Nullable @Nullable String source)
    Adds this user to the `ProfileBanList`. If a previous ban exists, this will update the entry.
    参数:
      `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
    返回:
      the entry for the newly created ban, or the entry for the (updated) previous ban

  - ### ban

    @Nullable @Nullable BanEntry<PlayerProfile> ban(@Nullable @Nullable String reason, @Nullable @Nullable Duration duration, @Nullable @Nullable String source)
    Adds this user to the `ProfileBanList`. If a previous ban exists, this will update the entry.
    参数:
      `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
    返回:
      the entry for the newly created ban, or the entry for the (updated) previous ban

  - ### isWhitelisted

    boolean isWhitelisted()
    检测玩家是否存在白名单列表中
    返回:
      是否加白

  - ### setWhitelisted

    void setWhitelisted(boolean value)
    将玩家添加到白名单列表或移除
    参数:
      `value` - 如果要添加到白名单列表内使用true,反之使用false

  - ### getPlayer

    @Nullable @Nullable Player getPlayer()
    获取一个 `Player`对象

    原文:Gets a `Player` object that this represents, if there is one

    如果玩家在线,返回Player对象数据,反之返回null

    返回:
      玩家Player对象

  - ### getFirstPlayed

    long getFirstPlayed()
    获取该玩家第一次进入服务器的时间

    原文:Gets the first date and time that this player was witnessed on this server.

    返回自1970年1月1日0日0分距当前时间的毫秒数.但如果该玩家从未进入服务器,则会返回0

    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.

    返回:
      返回玩家第一次进入服务器的时间

  - ### getLastPlayed

    long getLastPlayed()
    获取该玩家最后一次登录服务器的时间

    原文:Gets the last date and time that this player was witnessed on this server.

    返回自1970年1月1日0日0分距当前时间的毫秒数.但如果该玩家从未进入服务器,则会返回0

    原文: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.

    返回:
      返回最后登录的时间

  - ### hasPlayedBefore

    boolean hasPlayedBefore()
    检测该玩家是否在先前在此服游戏过

    原文:Checks if this player has played on this server before.

    返回:
      如果是返回true,反之返回false

  - ### getBedSpawnLocation

    @Nullable @Deprecated @Nullable Location getBedSpawnLocation()
    已过时。
    误导性的方法名称. 此方法也同时返回复活锚点的位置
    获取该玩家在床的重生点的Location对象,但如果该玩家从未使用过床或该重生点无效,则会返回null

    原文: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.

    返回:
      获取玩家的床重生点Location对象信息.如果不存在返回null
    另请参阅:
      - `getRespawnLocation()`

  - ### getRespawnLocation

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

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
    把该玩家的统计信息里的某项+1.

    这相当于下面的代码:

    `incrementStatistic(Statistic, 1)`

    原文:Increments the given statistic for this player.

    This is equivalent to the following code:

    `incrementStatistic(Statistic, 1)`

    参数:
      `statistic` - 要+1的统计项
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果这个statictic需要一个额外的参数??

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
    把该玩家的统计信息里的某项-1.

    这相当于下面的代码:

    `decrementStatistic(Statistic, 1)` 原文:Decrements the given statistic for this player.

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

    参数:
      `statistic` - 要减少的统计项目
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果这个统计需要一个额外的参数??

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic, int amount) throws IllegalArgumentException
    把该玩家的统计信息里的某项加上指定的值.

    原文:Increments the given statistic for this player.

    参数:
      `statistic` - 要增加的统计项
      `amount` - 要增加多少
    抛出:
      `IllegalArgumentException` - 当statistic为null
      `IllegalArgumentException` - 当amount无效
      `IllegalArgumentException` - 如果这个统计需要一个额外的参数?

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic, int amount) throws IllegalArgumentException
    把该玩家的统计信息里的某项减少指定的值.

    原文:Decrements the given statistic for this player.

    参数:
      `statistic` - 要减少的统计项
      `amount` - 要减少多少
    抛出:
      `IllegalArgumentException` - 当statistic为null
      `IllegalArgumentException` - 当amount无效
      `IllegalArgumentException` - 如果这个统计需要一个额外的参数??

  - ### setStatistic

    void setStatistic(@NotNull @NotNull Statistic statistic, int newValue) throws IllegalArgumentException
    设置该玩家的统计信息里的某项的值.

    原文:Sets the given statistic for this player.

    参数:
      `statistic` - 要设置的统计项
      `newValue` - 要把statistic设置成的值
    抛出:
      `IllegalArgumentException` - 当statistic为null
      `IllegalArgumentException` - 当amount无效
      `IllegalArgumentException` - 如果这个统计需要一个额外的参数??

  - ### getStatistic

    int getStatistic(@NotNull @NotNull Statistic statistic) throws IllegalArgumentException
    得到该玩家的统计信息中某项的值.

    原文:Gets the value of the given statistic for this player.

    参数:
      `statistic` - 要获取值的统计项
    返回:
      statistic的值
    抛出:
      `IllegalArgumentException` - 当statistic为null
      `IllegalArgumentException` - 当amount无效
      `IllegalArgumentException` - 如果这个统计需要一个额外的参数??

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
    把该玩家的统计信息中跟方块/物品有关的统计项加上一个`Material`.

    这相当于下面的代码: `incrementStatistic(Statistic, Material, 1)` 原文:Increments the given statistic for this player for the given material.

    This is equivalent to the following code: `incrementStatistic(Statistic, Material, 1)` 译注:比如,要想给玩家的"已破坏过的方块数量"统计里增加一个石头,就用incrementStatistic(统计, Material.STONE)

    参数:
      `statistic` - 要操纵的统计
      `material` - 要给statistic增加的Material
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果这个成就项使用的不是Material

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
    把该玩家的统计信息中跟方块/物品有关的统计项减少一个`Material`.

    原文:Decrements the given statistic for this player for the given material.

    This is equivalent to the following code: `decrementStatistic(Statistic, Material, 1)` 译注:比如,要想给玩家的"已破坏过的方块数量"统计里减少一个石头,就用decrementStatistic(统计, Material.STONE);

    参数:
      `statistic` - 要操纵的统计
      `material` - 要给statistic减少的Material
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果这个成就项使用的不是Material

  - ### getStatistic

    int getStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material) throws IllegalArgumentException
    获取该玩家的统计信息中跟方块/物品有关的统计项的某`Material`有多少.

    原文:Gets the value of the given statistic for this player.

    译注:译注:比如,要想获得玩家的"已破坏过的方块数量"统计里有多少石头,就用getStatistic(统计,Material.STONE);

    参数:
      `statistic` - 要获取的统计项
      `material` - statistic中,要获取值的Material
    返回:
      statistic中,material的数量
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果这个成就项使用的不是Material

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int amount) throws IllegalArgumentException
    把该玩家的统计信息中跟方块/物品有关的统计项中的某`Material`加上指定的值.

    原文:Increments the given statistic for this player for the given material.

    译注:比如,要想给玩家的"已破坏过的方块数量"统计里增加指定数量的石头,就用incrementStatistic(统计, Material.STONE, 数量);

    参数:
      `statistic` - 要操作的统计项
      `material` - statistic里要操作的某个Material
      `amount` - 要把statistic中的material增加多少
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果amount无效
      `IllegalArgumentException` - 如果statistic跟方块/物品无关

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int amount) throws IllegalArgumentException
    把该玩家的统计信息中跟方块/物品有关的统计项中的某`Material`减少指定的值.

    原文:Decrements the given statistic for this player for the given material.

    译注:该方法与`incrementStatistic(org.bukkit.Statistic, org.bukkit.Material, int)`相反.

    参数:
      `statistic` - 要减少的统计项
      `material` - statistic中要操作的某个Material
      `amount` - 要把statistic中的material减少多少
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果amount无效
      `IllegalArgumentException` - 如果这个statistic的值不是Material

  - ### setStatistic

    void setStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull Material material, int newValue) throws IllegalArgumentException
    把该玩家的统计信息中的某个跟方块/物品有关的统计项中的某`Material`的数量设定为某值.

    原文:Sets the given statistic for this player for the given material.

    译注:比如,要想给玩家的"已破坏过的方块数量"统计里的石头破坏数设定为指定数量,就用setStatistic(统计, Material.STONE, 数量);

    参数:
      `statistic` - 要设置的统计项
      `material` - statistic中的某个Material
      `newValue` - 要把statistic中的material设置的值
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果material为null
      `IllegalArgumentException` - 如果newVaule无效
      `IllegalArgumentException` - 如果statistic跟方块/物品无关

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
    把该玩家的统计信息中跟实体有关的统计项中的某种实体(`EntityType`)的数量+1.

    这相当于下面的代码:

    `incrementStatistic(Statistic, EntityType, 1)`

    原文:Increments the given statistic for this player for the given entity.

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

    译注:比如,要项给玩家的"已杀过的生物数量"统计里的僵尸数量加上1,就用incrementStatistic(Statistic,EntityType.Zombie);

    参数:
      `statistic` - 要更改的统计项
      `entityType` - statistic中的某种实体
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entityType为null
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
    把该玩家的统计信息中跟实体有关的统计项中的某种实体(`EntityType`)的数量-1.

    这相当于下面的代码:

    `decrementStatistic(Statistic, EntityType, 1)`

    原文:Decrements the given statistic for this player for the given entity.

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

    译注:该方法与`incrementStatistic(org.bukkit.Statistic, org.bukkit.entity.EntityType)`相反,可以参见该方法.

    参数:
      `statistic` - 要更改的统计项
      `entityType` - statistic中的某种实体
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entityType为null
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### getStatistic

    int getStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType) throws IllegalArgumentException
    获得该玩家的统计信息中跟实体有关的统计项中的某实体(`EntityType`)数量.

    原文:Gets the value of the given statistic for this player.

    译注:比如,要获得玩家杀过多少僵尸,就用getStatistic(记录玩家杀实体的统计项,EntityType.Zombie);

    参数:
      `statistic` - 要获得某实体数的统计项
      `entityType` - 要获取数量的statistic的某实体
    返回:
      statistic中entitytype中的值
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entitytype为null
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### incrementStatistic

    void incrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int amount) throws IllegalArgumentException
    将该玩家的统计信息中的某个跟实体有关的统计项的某实体类型(`EntityType`)加上指定的数值.

    原文:Increments the given statistic for this player for the given entity.

    译注:跟`incrementStatistic(org.bukkit.Statistic, org.bukkit.entity.EntityType)`类似.只不过这个方法可以指定每次加多少.

    参数:
      `statistic` - 要操作的统计项
      `entityType` - 要增加的statistic中的某实体
      `amount` - 要增加的数量
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entitytype为null
      `IllegalArgumentException` - 如果amount无效
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### decrementStatistic

    void decrementStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int amount)
    将该玩家的统计信息中某个跟实体有关的统计项中的某实体类型(`EntityType`)减少指定的值.

    原文:Decrements the given statistic for this player for the given entity.

    译注:与`incrementStatistic(org.bukkit.Statistic, org.bukkit.entity.EntityType, int)`相反.

    参数:
      `statistic` - 要操作的统计项
      `entityType` - 要减少的statistic中的某实体
      `amount` - 要减少的数量
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entitytype为null
      `IllegalArgumentException` - 如果amount无效
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### setStatistic

    void setStatistic(@NotNull @NotNull Statistic statistic, @NotNull @NotNull EntityType entityType, int newValue)
    设置该玩家的统计信息中某个跟实体有关的统计项的某实体类型(`EntityType`)为某个数值.

    原文:Sets the given statistic for this player for the given entity.

    参数:
      `statistic` - 要设置的统计项
      `entityType` - 要设置的statistic中的某实体类型
      `newValue` - 要把statistic中entitytype的数量设置成的值
    抛出:
      `IllegalArgumentException` - 如果statistic为null
      `IllegalArgumentException` - 如果entitytype为null
      `IllegalArgumentException` - 如果newValue无效
      `IllegalArgumentException` - 如果statistic与实体无关

  - ### getLastDeathLocation

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

  - ### getLocation

    @Nullable @Nullable Location getLocation()
    Gets the player's current location.
    返回:
      the player's location, `null` if player hasn't ever played before.