diff options
-rw-r--r-- | src/main/java/net/minecraft/server/Entity.java | 15 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/ServerConfigurationManager.java | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 5a58da0e..fa74527a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -809,6 +809,7 @@ public abstract class Entity { nbttagcompound.a("Fire", (short) this.fireTicks); nbttagcompound.a("Air", (short) this.airTicks); nbttagcompound.a("OnGround", this.onGround); + nbttagcompound.a("World", world.w); // Craftbukkit this.a(nbttagcompound); } @@ -830,6 +831,20 @@ public abstract class Entity { this.fireTicks = nbttagcompound.c("Fire"); this.airTicks = nbttagcompound.c("Air"); 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.b(nbttagcompound); } diff --git a/src/main/java/net/minecraft/server/ServerConfigurationManager.java b/src/main/java/net/minecraft/server/ServerConfigurationManager.java index 4e725672..70e3ea39 100644 --- a/src/main/java/net/minecraft/server/ServerConfigurationManager.java +++ b/src/main/java/net/minecraft/server/ServerConfigurationManager.java @@ -65,7 +65,11 @@ public class ServerConfigurationManager { } 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() { |