From a9e7b56ef26df7dbe63e65d054b82b37e5abf046 Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Fri, 10 Jun 2011 06:33:25 -0400 Subject: [PATCH] Improved handling of being sent to your bed spawn if the world saved in your player.dat no longer exists. --- src/main/java/net/minecraft/server/EntityPlayer.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index dbc6edc160..305132bfa3 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -64,22 +64,22 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void a(World world) { super.a(world); // CraftBukkit - world fallback code, either respawn location or global spawn - if(world == null) { + if (world == null) { dead = false; ChunkCoordinates position = null; if (!spawnWorld.isEmpty()) { CraftWorld cw = (CraftWorld)Bukkit.getServer().getWorld(spawnWorld); - if (cw != null) { + if (cw != null && M() != null) { world = cw.getHandle(); - position = M(); + position = EntityHuman.getBed(cw.getHandle(), M()); } } - if (world == null) { + if (world == null || position == null) { world = ((CraftWorld)Bukkit.getServer().getWorlds().get(0)).getHandle(); position = world.getSpawn(); } this.world = world; - setPosition(position.x, position.y, position.z); + setPosition(position.x + 0.5, position.y, position.z + 0.5); } this.dimension = ((WorldServer)this.world).dimension; // CraftBukkit end