diff options
Diffstat (limited to 'CraftBukkit-Patches/0122-Use-Offline-Player-Data-Once-if-Required.patch')
-rw-r--r-- | CraftBukkit-Patches/0122-Use-Offline-Player-Data-Once-if-Required.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/CraftBukkit-Patches/0122-Use-Offline-Player-Data-Once-if-Required.patch b/CraftBukkit-Patches/0122-Use-Offline-Player-Data-Once-if-Required.patch new file mode 100644 index 0000000000..e85fedaab9 --- /dev/null +++ b/CraftBukkit-Patches/0122-Use-Offline-Player-Data-Once-if-Required.patch @@ -0,0 +1,43 @@ +From bc602d48baa44477814f087b0130a07c22f10a10 Mon Sep 17 00:00:00 2001 +From: md_5 <[email protected]> +Date: Sun, 13 Apr 2014 14:41:23 +1000 +Subject: [PATCH] Use Offline Player Data Once if Required. + +If we are online mode and the only copy of player data we can find is the player's offline mode data, we will attempt a once off conversion by reading this data and then renaming the file so it won't be used again. + +diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java +index 93ff8d3..efdcad7 100644 +--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java ++++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java +@@ -196,10 +196,28 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { + + try { + File file1 = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat"); ++ // Spigot Start ++ boolean usingWrongFile = false; ++ if ( !file1.exists() ) ++ { ++ file1 = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat"); ++ if ( file1.exists() ) ++ { ++ usingWrongFile = true; ++ org.bukkit.Bukkit.getServer().getLogger().warning( "Using offline mode UUID file for player " + entityhuman.getName() + " as it is the only copy we can find." ); ++ } ++ } ++ // Spigot End + + if (file1.exists() && file1.isFile()) { + nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file1))); + } ++ // Spigot Start ++ if ( usingWrongFile ) ++ { ++ file1.renameTo( new File( file1.getPath() + ".offline-read" ) ); ++ } ++ // Spigot End + } catch (Exception exception) { + a.warn("Failed to load player data for " + entityhuman.getName()); + } +-- +1.9.1 + |