summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/Entity.java15
-rw-r--r--src/main/java/net/minecraft/server/ServerConfigurationManager.java6
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() {