Fix inconsistencies between offline/online spawn position getter (#11960)
This commit is contained in:
@ -287,13 +287,28 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Gets the Location where the player will spawn at, null if they
|
||||
* Gets the Location where the player will spawn at, {@code null} if they
|
||||
* don't have a valid respawn point.
|
||||
* <br>
|
||||
* Unlike online players, the location if found will not be loaded by default.
|
||||
*
|
||||
* @return respawn location if exists, otherwise {@code null}.
|
||||
* @see #getRespawnLocation(boolean) for more fine-grained control over chunk loading and validation behaviour.
|
||||
*/
|
||||
default @Nullable Location getRespawnLocation() {
|
||||
return this.getRespawnLocation(false); // keep old behavior for offline players
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Location where the player will spawn at, {@code null} if they
|
||||
* don't have a valid respawn point.
|
||||
*
|
||||
* @return respawn location if exists, otherwise null.
|
||||
* @param loadLocationAndValidate load the expected respawn location to retrieve the exact position of the spawn
|
||||
* block and check if this position is still valid or not. Loading the location
|
||||
* will induce a sync chunk load and must hence be used with caution.
|
||||
* @return respawn location if exists, otherwise {@code null}.
|
||||
*/
|
||||
@Nullable
|
||||
public Location getRespawnLocation();
|
||||
@Nullable Location getRespawnLocation(boolean loadLocationAndValidate);
|
||||
|
||||
/**
|
||||
* Increments the given statistic for this player.
|
||||
|
||||
@ -485,9 +485,11 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
|
||||
* to validate if the current respawn location is still valid.
|
||||
*
|
||||
* @return respawn location if exists, otherwise null.
|
||||
* @deprecated this method doesn't take the respawn angle into account, use
|
||||
* {@link Player#getRespawnLocation(boolean)} with loadLocationAndValidate = false instead
|
||||
*/
|
||||
@Nullable
|
||||
Location getPotentialRespawnLocation();
|
||||
@Deprecated(since = "1.21.5")
|
||||
@Nullable Location getPotentialRespawnLocation();
|
||||
|
||||
/**
|
||||
* @return the player's fishing hook if they are fishing
|
||||
|
||||
@ -545,6 +545,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
*/
|
||||
public boolean isSleepingIgnored();
|
||||
|
||||
/**
|
||||
* Gets the Location where the player will spawn at, {@code null} if they
|
||||
* don't have a valid respawn point.
|
||||
* <br>
|
||||
* Unlike offline players, the location if found will be loaded to validate by default.
|
||||
*
|
||||
* @return respawn location if exists, otherwise {@code null}.
|
||||
* @see #getRespawnLocation(boolean) for more fine-grained control over chunk loading and validation behaviour.
|
||||
*/
|
||||
@Override
|
||||
default @Nullable Location getRespawnLocation() {
|
||||
return this.getRespawnLocation(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Location where the player will spawn at their bed.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user