diff --git a/CraftBukkit-Patches/0170-Only-fetch-an-online-UUID-in-online-mode.patch b/CraftBukkit-Patches/0170-Only-fetch-an-online-UUID-in-online-mode.patch new file mode 100644 index 0000000000..90aa0daa8a --- /dev/null +++ b/CraftBukkit-Patches/0170-Only-fetch-an-online-UUID-in-online-mode.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxim Van de Wynckel <maxim_vdw@hotmail.com> +Date: Wed, 30 Jul 2014 01:19:51 +0200 +Subject: [PATCH] Only fetch an online UUID in online mode + +The previous code would get an online UUID even in offline mode that +breaks plugins if the player joins. + +Example: +You want to store data for player "Test" who never joined. An online UUID is created and you save it using that UUID. + +The player Test joins with an offline UUID but that will not match the online UUID of the saved data. + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -0,0 +0,0 @@ public final class CraftServer implements Server { + + OfflinePlayer result = getPlayerExact(name); + if (result == null) { +- // This is potentially blocking :( +- GameProfile profile = MinecraftServer.getServer().getUserCache().getProfile(name); ++ // Spigot Start ++ GameProfile profile = null; ++ // Only fetch an online UUID in online mode ++ if ( MinecraftServer.getServer().getOnlineMode() || org.spigotmc.SpigotConfig.bungee ) ++ { ++ profile = MinecraftServer.getServer().getUserCache().getProfile( name ); ++ } ++ // Spigot end + if (profile == null) { + // Make an OfflinePlayer using an offline mode UUID since the name has no profile + result = getOfflinePlayer(new GameProfile(UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8)), name)); +-- \ No newline at end of file