From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Sun, 22 Aug 2021 05:11:09 +0200 Subject: [PATCH] Extended OfflinePlayer API diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java index a7d1f1e701f23e851f735584a30bedadb0d8b9bd..7da38adede5b752583b94f6a14b3e45d0fd10209 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java @@ -455,4 +455,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio */ @Nullable public Location getLastDeathLocation(); + + // Purpur start - OfflinePlayer API + /** + * Determines if the OfflinePlayer is allowed to fly via jump key double-tap like + * in creative mode. + * + * @return True if the player is allowed to fly. + */ + public boolean getAllowFlight(); + + /** + * Sets if the OfflinePlayer is allowed to fly via jump key double-tap like in + * creative mode. + * + * @param flight If flight should be allowed. + */ + public void setAllowFlight(boolean flight); + + /** + * Checks to see if this player is currently flying or not. + * + * @return True if the player is flying, else false. + */ + public boolean isFlying(); + + /** + * Makes this player start or stop flying. + * + * @param value True to fly. + */ + public void setFlying(boolean value); + + /** + * Sets the speed at which a client will fly. Negative values indicate + * reverse directions. + * + * @param value The new speed, from -1 to 1. + * @throws IllegalArgumentException If new speed is less than -1 or + * greater than 1 + */ + public void setFlySpeed(float value) throws IllegalArgumentException; + + /** + * Sets the speed at which a client will walk. Negative values indicate + * reverse directions. + * + * @param value The new speed, from -1 to 1. + * @throws IllegalArgumentException If new speed is less than -1 or + * greater than 1 + */ + public void setWalkSpeed(float value) throws IllegalArgumentException; + + /** + * Gets the current allowed speed that a client can fly. + * + * @return The current allowed speed, from -1 to 1 + */ + public float getFlySpeed(); + + /** + * Gets the current allowed speed that a client can walk. + * + * @return The current allowed speed, from -1 to 1 + */ + public float getWalkSpeed(); + + /** + * Gets the entity's current position + * + * @return a new copy of Location containing the position of this offline player + */ + @Nullable + public Location getLocation(); + + /** + * Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleport implementation. + * + * @param destination + * @return true if teleportation was successful + */ + public boolean teleportOffline(@NotNull org.bukkit.Location destination); + + /** + * Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleport implementation. + * + * @param destination + * @param cause Teleport cause used if player is online + * @return true if teleportation was successful + */ + public boolean teleportOffline(@NotNull org.bukkit.Location destination, @NotNull org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause); + + /** + * Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleportAsync implementation. + * + * @param destination + * @return true if teleportation successful + */ + @NotNull + public java.util.concurrent.CompletableFuture teleportOfflineAsync(@NotNull Location destination); + + /** + * Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleportAsync implementation. + * + * @param destination + * @param cause Teleport cause used if player is online + * @return true if teleportation successful + */ + @NotNull + public java.util.concurrent.CompletableFuture teleportOfflineAsync(@NotNull Location destination, @NotNull org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause); + // Purpur end - OfflinePlayer API }