mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@26734e8 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#7454) PaperMC/Paper@4a745f9 Optimize Util#sequence (#7115) PaperMC/Paper@2c8d48c Make Panda implement Sittable (#7414) PaperMC/Paper@2c4a589 Fix issues with LimitedRegion (#7343) PaperMC/Paper@3d91eca Fix cancelled snow bucket placement (#6751) PaperMC/Paper@9567753 Don't load plugins prefixed with a dot (#7392) PaperMC/Paper@92c777d Fix PlayerProfile BukkitObject serialization, deprecate setName and setId for removal (#7471) PaperMC/Paper@e6898ff Fix IllegalArgumentException for /paper mobcaps command (#7472) PaperMC/Paper@a8f2d67 - properly fix IllegalArgumentException in `/paper mobcaps` command Pufferfish Changes: pufferfish-gg/Pufferfish@22f20b2 Fix sentry bug
126 lines
4.4 KiB
Diff
126 lines
4.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: YouHaveTrouble <youhavetrouble@youhavetrouble.me>
|
|
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 6df8e7b6672a26f123efc3aac1541b870c57e1b5..409aa7c39ce28f275390e11b917040039f31f1d3 100644
|
|
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
|
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
|
@@ -450,4 +450,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
|
* for the statistic
|
|
*/
|
|
public void setStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int newValue);
|
|
+
|
|
+ // 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 <code>true</code> if teleportation successful
|
|
+ */
|
|
+ @NotNull
|
|
+ public java.util.concurrent.CompletableFuture<Boolean> 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 <code>true</code> if teleportation successful
|
|
+ */
|
|
+ @NotNull
|
|
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(@NotNull Location destination, @NotNull org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause);
|
|
+ // Purpur end - OfflinePlayer API
|
|
}
|