2017-08-05 14:35:25 +10:00
From 80e9ab2b4f9ab2a408eaaee5b4c1617536f36068 Mon Sep 17 00:00:00 2001
2014-04-13 14:41:33 +10:00
From: md_5 <git@md-5.net>
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
2017-08-03 23:00:00 +10:00
index d6eff926..f5d5940e 100644
2014-04-13 14:41:33 +10:00
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
2016-12-21 07:00:00 +11:00
@@ -165,10 +165,28 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData {
2014-04-13 14:41:33 +10:00
try {
2017-06-08 18:00:00 +10:00
File file = new File(this.playerDir, entityhuman.bn() + ".dat");
2014-04-13 14:41:33 +10:00
+ // Spigot Start
+ boolean usingWrongFile = false;
2014-11-26 08:27:08 +11:00
+ if ( !file.exists() )
2014-04-13 14:41:33 +10:00
+ {
2014-11-26 08:27:08 +11:00
+ file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
+ if ( file.exists() )
2014-04-13 14:41:33 +10:00
+ {
+ 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
2014-11-26 08:27:08 +11:00
if (file.exists() && file.isFile()) {
nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file)));
2014-04-13 14:41:33 +10:00
}
+ // Spigot Start
+ if ( usingWrongFile )
+ {
2014-11-26 08:27:08 +11:00
+ file.renameTo( new File( file.getPath() + ".offline-read" ) );
2014-04-13 14:41:33 +10:00
+ }
+ // Spigot End
} catch (Exception exception) {
2017-05-14 12:00:00 +10:00
WorldNBTStorage.b.warn("Failed to load player data for {}", entityhuman.getName());
2014-04-13 14:41:33 +10:00
}
--
2017-04-30 09:32:32 +10:00
2.11.0
2014-04-13 14:41:33 +10:00