Upstream merge

By: md_5 <git@md-5.net>
This commit is contained in:
Spigot
2014-04-24 16:27:12 +10:00
parent a8030addd9
commit b56d35552d
78 changed files with 483 additions and 218 deletions

View File

@@ -0,0 +1,43 @@
From 4a59045ce2abba675a931fc1c645a6bf8506dc9f Mon Sep 17 00:00:00 2001
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
index 93ff8d3..cc4d487 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() );
+ 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