19972e09b8
5a0150f586ed3eb15fe6f1f596d1a5a7d806f0f9 Fix ITEM_BREAK e6a3911057bd94d8bd7021cbb4923fb84fb106d1 Upstream merge d1cdcf8d4c3639f956474f02ed662517cffbe23e Remove old patch 068df64aeee368377e1673667bffc7a6dcf90554 Rebuild all patches
43 lines
2 KiB
Diff
43 lines
2 KiB
Diff
From 7ec105c3413b800da05393ab7a8cbdd3371f23e7 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 6fa10cc..ee79cbd 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
@@ -200,10 +200,28 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData {
|
|
|
|
try {
|
|
File file = new File(this.playerDir, entityhuman.getUniqueID().toString() + ".dat");
|
|
+ // Spigot Start
|
|
+ boolean usingWrongFile = false;
|
|
+ if ( !file.exists() )
|
|
+ {
|
|
+ file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
|
|
+ if ( file.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 (file.exists() && file.isFile()) {
|
|
nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file)));
|
|
}
|
|
+ // Spigot Start
|
|
+ if ( usingWrongFile )
|
|
+ {
|
|
+ file.renameTo( new File( file.getPath() + ".offline-read" ) );
|
|
+ }
|
|
+ // Spigot End
|
|
} catch (Exception exception) {
|
|
WorldNBTStorage.a.warn("Failed to load player data for " + entityhuman.getName());
|
|
}
|
|
--
|
|
2.1.0
|
|
|