diff options
Diffstat (limited to 'patches/server/0181-getPlayerUniqueId-API.patch')
-rw-r--r-- | patches/server/0181-getPlayerUniqueId-API.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/patches/server/0181-getPlayerUniqueId-API.patch b/patches/server/0181-getPlayerUniqueId-API.patch new file mode 100644 index 0000000000..251356f545 --- /dev/null +++ b/patches/server/0181-getPlayerUniqueId-API.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +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 d9dce9ada23473af6920bedd6d28739cf62e4744..eb5a7b302b027ab19d42326683f93671a40c64d6 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -1699,6 +1699,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) { |