Possible Player.dat fixes to address issues with switching between Vanilla and Bukkit or vice versa.

This commit is contained in:
Rigby 2011-06-16 04:24:31 +01:00 committed by EvilSeph
parent 7aadc3d666
commit 0c56bfb62f
2 changed files with 18 additions and 2 deletions

View File

@ -980,7 +980,17 @@ public abstract class Entity {
// CraftBukkit end
// CraftBukkit Start - reset world
org.bukkit.World world = Bukkit.getServer().getWorld(nbttagcompound.getString("World"));
org.bukkit.World world = null;
if (this instanceof EntityPlayer) {
EntityPlayer entityPlayer = (EntityPlayer) this;
String worldName = nbttagcompound.getString("World");
if (worldName == "") {
world = (org.bukkit.World) ((CraftServer) Bukkit.getServer()).getServer().a(entityPlayer.dimension);
} else {
world = Bukkit.getServer().getWorld(worldName);
}
}
a(world == null ? null : ((CraftWorld) world).getHandle());
// CraftBukkit End
}

View File

@ -341,7 +341,13 @@ public abstract class EntityHuman extends EntityLiving {
this.a(true, true, false);
}
this.spawnWorld = nbttagcompound.getString("SpawnWorld"); // CraftBukkit
// CraftBukkit - Start
this.spawnWorld = nbttagcompound.getString("SpawnWorld");
if (this.spawnWorld == "") {
CraftServer server = ((WorldServer) world).getServer();
this.spawnWorld = server.getWorlds().get(0).getName();
}
// CraftBukkit - End
if (nbttagcompound.hasKey("SpawnX") && nbttagcompound.hasKey("SpawnY") && nbttagcompound.hasKey("SpawnZ")) {
this.b = new ChunkCoordinates(nbttagcompound.e("SpawnX"), nbttagcompound.e("SpawnY"), nbttagcompound.e("SpawnZ"));