mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-03 21:44:40 +01:00
cfa5b37fa8
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 03b725233 SPIGOT-6823: Fix loading custom world in combination with superflat 359d0533a #970: Correct typo in README.md 110492932 Fix per-world worldborder command
40 lines
1.7 KiB
Diff
40 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 22 Mar 2018 01:40:24 -0400
|
|
Subject: [PATCH] getPlayerUniqueId API
|
|
|
|
Gets the unique ID of the player currently known as the specified player name
|
|
In Offline Mode, will return an Offline UUID
|
|
|
|
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 57feb89a7dffb14f1e006b62e131604bd67797f9..03cd3fa77ca0f4c6c1f84a7866c7cd72c8f81f2e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1710,6 +1710,25 @@ public final class CraftServer implements Server {
|
|
return recipients.size();
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Nullable
|
|
+ public UUID getPlayerUniqueId(String name) {
|
|
+ Player player = Bukkit.getPlayerExact(name);
|
|
+ if (player != null) {
|
|
+ return player.getUniqueId();
|
|
+ }
|
|
+ GameProfile profile;
|
|
+ // Only fetch an online UUID in online mode
|
|
+ if (com.destroystokyo.paper.PaperConfig.isProxyOnlineMode()) {
|
|
+ profile = console.getProfileCache().get(name).orElse(null);
|
|
+ } else {
|
|
+ // Make an OfflinePlayer using an offline mode UUID since the name has no profile
|
|
+ profile = new GameProfile(UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8)), name);
|
|
+ }
|
|
+ return profile != null ? profile.getId() : null;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
@Deprecated
|
|
public OfflinePlayer getOfflinePlayer(String name) {
|