d8e07590e3
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 Bukkit Changes: 5dbedae1 PR-864: Fix Registry#match() failing namespaced inputs 49256865 PR-863: Fix boolean PersistentDataType 9f15450b SPIGOT-7195, SPIGOT-7197: Add DataPack API ebef5b6a Disable InterfaceIsType Checkstyle check 01d577f5 Slight tweak to boolean PersistentDataType javadoc d2b99e56 PR-857: Add boolean PersistentDataType CraftBukkit Changes: 2270366cd PR-1196: Test Registry instances more thoroughly 863dacb7a PR-1191: Do not start on pre-release Java 17 1f2dd8e12 SPIGOT-7362: Properly handle null in CraftBlock#blockFaceToNotch() dbc70bed5 SPIGOT-7195, SPIGOT-7197: Add DataPack API
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 5dcbb06370cdf6a5f700ebd09a9a765c9587a688..cb70820fd96624c2378e98d48ac31a11dc9e25e3 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1740,6 +1740,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 (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.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) {
|