mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 07:39:16 +01:00
Update from upstream SpigotMC
Skip online mode UUID lookups when in offline mode and not using Bungee. SpigotMC/Spigot@25b673fd7e
This commit is contained in:
parent
42ade2a7bb
commit
7cab612cfb
1 changed files with 36 additions and 0 deletions
|
@ -0,0 +1,36 @@
|
|||
From db76316cbb4f5749d66b616f879d7707983a5b0c 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 79d4d99..2c3a140 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1396,8 +1396,14 @@ 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));
|
||||
--
|
||||
1.9.1
|
Loading…
Reference in a new issue