Fixed a few player-respawn issues. This should resolve BUKKIT-28 (Dupe bug), BUKKIT-29 (Poisons lasting), and BUKKIT-46 (XP resetting)

This commit is contained in:
Nathan Adams 2011-12-04 12:10:02 +00:00
parent 55a532c251
commit 98e062f0cf
2 changed files with 16 additions and 9 deletions

View File

@ -630,5 +630,20 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public String toString() {
return super.toString() + "(" + this.name + " at " + this.locX + "," + this.locY + "," + this.locZ + ")";
}
public void reset() {
this.health = 20;
this.fireTicks = 0;
this.fallDistance = 0;
this.foodData = new FoodMetaData();
this.expLevel = 0;
this.expTotal = 0;
this.exp = 0;
this.deathTicks = 0;
effects.clear();
this.activeContainer = this.defaultContainer;
this.cf = -1; // lastSentExp. Find line: "if (this.expTotal != this.XXXX) {"
this.giveExp(this.newExp);
}
// CraftBukkit end
}

View File

@ -262,15 +262,7 @@ public class ServerConfigurationManager {
this.cserver.getPluginManager().callEvent(respawnEvent);
location = respawnEvent.getRespawnLocation();
entityplayer.health = 20;
entityplayer.fireTicks = 0;
entityplayer.fallDistance = 0;
entityplayer.foodData = new FoodMetaData();
entityplayer.expLevel = 0;
entityplayer.expTotal = 0;
entityplayer.exp = 0;
entityplayer.deathTicks = 0;
entityplayer.d(entityplayer.newExp);
entityplayer.reset();
} else {
location.setWorld(this.server.getWorldServer(i).getWorld());
}