Fixed logging into the correct world

This commit is contained in:
Dinnerbone 2011-02-07 01:10:55 +00:00
parent 3f8d9c0e1f
commit 7a71347cdf
2 changed files with 20 additions and 1 deletions

View File

@ -809,6 +809,7 @@ public abstract class Entity {
nbttagcompound.a("Fire", (short) this.fireTicks); nbttagcompound.a("Fire", (short) this.fireTicks);
nbttagcompound.a("Air", (short) this.airTicks); nbttagcompound.a("Air", (short) this.airTicks);
nbttagcompound.a("OnGround", this.onGround); nbttagcompound.a("OnGround", this.onGround);
nbttagcompound.a("World", world.w); // Craftbukkit
this.a(nbttagcompound); this.a(nbttagcompound);
} }
@ -830,6 +831,20 @@ public abstract class Entity {
this.fireTicks = nbttagcompound.c("Fire"); this.fireTicks = nbttagcompound.c("Fire");
this.airTicks = nbttagcompound.c("Air"); this.airTicks = nbttagcompound.c("Air");
this.onGround = nbttagcompound.l("OnGround"); this.onGround = nbttagcompound.l("OnGround");
// Craftbukkit start
if (nbttagcompound.a("World")) {
String worldName = nbttagcompound.h("World");
for (WorldServer world : ((WorldServer)this.world).getServer().getServer().worlds) {
if (world.w.equals(worldName)) {
this.world = world;
break;
}
}
}
// Craftbukkit end
this.a(this.locX, this.locY, this.locZ); this.a(this.locX, this.locY, this.locZ);
this.b(nbttagcompound); this.b(nbttagcompound);
} }

View File

@ -65,7 +65,11 @@ public class ServerConfigurationManager {
} }
public void a(WorldServer worldserver) { public void a(WorldServer worldserver) {
this.l = new PlayerNBTManager(new File(worldserver.t, "players")); // Craftbukkit start
if (this.l == null) {
this.l = new PlayerNBTManager(new File(worldserver.t, "players"));
}
// Craftbukkit end
} }
public int a() { public int a() {