mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Extended OfflinePlayer API
This commit is contained in:
@@ -1,14 +1,6 @@
|
|||||||
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 5622fe3165baad8138c22cfc016ed6c3834cf702..6d31b561d915180fcd473b317721064feed28f37 100644
|
|
||||||
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||||
@@ -573,4 +573,106 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
@@ -573,4 +_,106 @@
|
||||||
@Override
|
@Override
|
||||||
io.papermc.paper.persistence.@NotNull PersistentDataContainerView getPersistentDataContainer();
|
io.papermc.paper.persistence.@NotNull PersistentDataContainerView getPersistentDataContainer();
|
||||||
// Paper end - add pdc to offline player
|
// Paper end - add pdc to offline player
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
// Paper start
|
// Paper start
|
||||||
if (version.startsWith("null")) { // running from ide?
|
if (version.startsWith("null")) { // running from ide?
|
||||||
- setVersionMessage(Component.text("Unknown version, custom build?", NamedTextColor.YELLOW));
|
- setVersionMessage(Component.text("Unknown version, custom build?", NamedTextColor.YELLOW));
|
||||||
+ setVersionMessage(Component.text("* Unknown version, custom build?", NamedTextColor.RED)); // Purpur - Clean up version command output
|
+ setVersionMessage(Component.text("* Unknown version, custom build?", NamedTextColor.RED)); // Purpur
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setVersionMessage(getVersionFetcher().getVersionMessage(version));
|
setVersionMessage(getVersionFetcher().getVersionMessage(version));
|
||||||
@@ -16,11 +16,11 @@
|
|||||||
- final Component message = Component.textOfChildren(
|
- final Component message = Component.textOfChildren(
|
||||||
- Component.text(Bukkit.getVersionMessage(), NamedTextColor.WHITE),
|
- Component.text(Bukkit.getVersionMessage(), NamedTextColor.WHITE),
|
||||||
- Component.newline(),
|
- Component.newline(),
|
||||||
+ // Purpur start - Clean up version command output
|
+ // Purpur start
|
||||||
+ int distance = getVersionFetcher().distance();
|
+ int distance = getVersionFetcher().distance();
|
||||||
+ final Component message = Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()),
|
+ final Component message = Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()),
|
||||||
+ ChatColor.parseMM("<grey>Current Purpur Version: %s%s*", distance == 0 ? "<green>" : distance > 0 ? "<yellow>" : "<red>", Bukkit.getVersion()),
|
+ ChatColor.parseMM("<grey>Current Purpur Version: %s%s*", distance == 0 ? "<green>" : distance > 0 ? "<yellow>" : "<red>", Bukkit.getVersion()),
|
||||||
+ // Purpur end - Clean up version command output
|
+ // Purpur end
|
||||||
msg
|
msg
|
||||||
);
|
);
|
||||||
this.versionMessage = Component.text()
|
this.versionMessage = Component.text()
|
||||||
|
|||||||
@@ -1,22 +1,14 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: YouHaveTrouble <youhavetrouble@youhavetrouble.me>
|
|
||||||
Date: Sun, 22 Aug 2021 05:12:05 +0200
|
|
||||||
Subject: [PATCH] Extended OfflinePlayer API
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
|
||||||
index 94ca0407303c4493ab4928b12ec6ecc75aaca549..a138e1b6b66d99f2035de054137a607aa6b7f0b9 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
|
||||||
@@ -363,14 +363,26 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
|
@@ -363,14 +_,26 @@
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
+ // Purpur start
|
+ // Purpur start - OfflinePlayer API
|
||||||
+ if (this.isOnline()) {
|
+ if (this.isOnline()) {
|
||||||
+ return this.getPlayer().getLocation();
|
+ return this.getPlayer().getLocation();
|
||||||
+ }
|
+ }
|
||||||
+ // Purpur end
|
+ // Purpur end - OfflinePlayer API
|
||||||
+
|
+
|
||||||
CompoundTag data = this.getData();
|
CompoundTag data = this.getData();
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@@ -38,7 +30,7 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..a138e1b6b66d99f2035de054137a607a
|
|||||||
|
|
||||||
UUID uuid = new UUID(data.getLong("WorldUUIDMost"), data.getLong("WorldUUIDLeast"));
|
UUID uuid = new UUID(data.getLong("WorldUUIDMost"), data.getLong("WorldUUIDLeast"));
|
||||||
|
|
||||||
@@ -381,9 +393,9 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
|
@@ -381,9 +_,9 @@
|
||||||
rotation.getFloat(0),
|
rotation.getFloat(0),
|
||||||
rotation.getFloat(1)
|
rotation.getFloat(1)
|
||||||
);
|
);
|
||||||
@@ -50,7 +42,7 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..a138e1b6b66d99f2035de054137a607a
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -626,4 +638,191 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
|
@@ -626,4 +_,191 @@
|
||||||
manager.save();
|
manager.save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,36 +234,3 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..a138e1b6b66d99f2035de054137a607a
|
|||||||
+ }
|
+ }
|
||||||
+ // Purpur end - OfflinePlayer API
|
+ // Purpur end - OfflinePlayer API
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
index ea8b1f01b2dd626c422649488c1e605a8054dbf2..da20ebe8858b4ab5bf8ac62aeac1942320bfa91c 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
@@ -2769,6 +2769,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
||||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Purpur start - OfflinePlayer API
|
|
||||||
+ @Override
|
|
||||||
+ public boolean teleportOffline(@NotNull Location destination) {
|
|
||||||
+ return this.teleport(destination);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public boolean teleportOffline(Location destination, PlayerTeleportEvent.TeleportCause cause) {
|
|
||||||
+ return this.teleport(destination, cause);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(@NotNull Location destination) {
|
|
||||||
+ return this.teleportAsync(destination);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ @Override
|
|
||||||
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(@NotNull Location destination, PlayerTeleportEvent.TeleportCause cause) {
|
|
||||||
+ return this.teleportAsync(destination, cause);
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - OfflinePlayer API
|
|
||||||
+
|
|
||||||
private void validateSpeed(float value) {
|
|
||||||
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
|
||||||
}
|
|
||||||
@@ -17,6 +17,35 @@
|
|||||||
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
||||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||||
if (player.getBukkitEntity().canSee(this)) {
|
if (player.getBukkitEntity().canSee(this)) {
|
||||||
|
@@ -2763,6 +_,28 @@
|
||||||
|
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Purpur start - OfflinePlayer API
|
||||||
|
+ @Override
|
||||||
|
+ public boolean teleportOffline(@NotNull Location destination) {
|
||||||
|
+ return this.teleport(destination);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean teleportOffline(Location destination, PlayerTeleportEvent.TeleportCause cause) {
|
||||||
|
+ return this.teleport(destination, cause);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(@NotNull Location destination) {
|
||||||
|
+ return this.teleportAsync(destination);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(@NotNull Location destination, PlayerTeleportEvent.TeleportCause cause) {
|
||||||
|
+ return this.teleportAsync(destination, cause);
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - OfflinePlayer API
|
||||||
|
+
|
||||||
|
private void validateSpeed(float value) {
|
||||||
|
Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value);
|
||||||
|
}
|
||||||
@@ -3559,4 +_,26 @@
|
@@ -3559,4 +_,26 @@
|
||||||
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData()));
|
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData()));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user