2023-04-19 20:03:29 +10:00
|
|
|
From 5a957a0fc1eace4e4a7a8fa2b7df1c2c78122189 Mon Sep 17 00:00:00 2001
|
2014-07-30 17:08:36 +10:00
|
|
|
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
|
2023-04-19 20:03:29 +10:00
|
|
|
index 75fc0e4aa..eba59887f 100644
|
2014-07-30 17:08:36 +10:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
2023-04-19 20:03:29 +10:00
|
|
|
@@ -1640,8 +1640,14 @@ public final class CraftServer implements Server {
|
2014-07-30 17:08:36 +10:00
|
|
|
|
|
|
|
OfflinePlayer result = getPlayerExact(name);
|
|
|
|
if (result == null) {
|
|
|
|
- // This is potentially blocking :(
|
2021-11-22 09:00:00 +11:00
|
|
|
- GameProfile profile = console.getProfileCache().get(name).orElse(null);
|
2014-07-30 17:08:36 +10:00
|
|
|
+ // Spigot Start
|
|
|
|
+ GameProfile profile = null;
|
|
|
|
+ // Only fetch an online UUID in online mode
|
2019-04-23 15:12:43 +10:00
|
|
|
+ if ( getOnlineMode() || org.spigotmc.SpigotConfig.bungee )
|
2014-07-30 17:08:36 +10:00
|
|
|
+ {
|
2021-11-22 09:00:00 +11:00
|
|
|
+ profile = console.getProfileCache().get(name).orElse(null);
|
2014-07-30 17:08:36 +10:00
|
|
|
+ }
|
|
|
|
+ // 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));
|
|
|
|
--
|
2023-04-10 08:30:55 +10:00
|
|
|
2.40.0
|
2014-07-30 17:08:36 +10:00
|
|
|
|