mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 21:17:00 +01:00
Persist PlayerDeathEvent values. Fixes BUKKIT-1521
This commit is contained in:
parent
e8b6eb717a
commit
1dcb39074d
2 changed files with 16 additions and 3 deletions
|
@ -687,6 +687,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
firstPlayed = data.getLong("firstPlayed");
|
firstPlayed = data.getLong("firstPlayed");
|
||||||
lastPlayed = data.getLong("lastPlayed");
|
lastPlayed = data.getLong("lastPlayed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.hasKey("newExp")) {
|
||||||
|
EntityPlayer handle = getHandle();
|
||||||
|
handle.newExp = data.getInt("newExp");
|
||||||
|
handle.newTotalExp = data.getInt("newTotalExp");
|
||||||
|
handle.newLevel = data.getInt("newLevel");
|
||||||
|
handle.expToDrop = data.getInt("expToDrop");
|
||||||
|
handle.keepLevel = data.getBoolean("keepLevel");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -696,6 +705,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
}
|
}
|
||||||
|
|
||||||
NBTTagCompound data = nbttagcompound.getCompound("bukkit");
|
NBTTagCompound data = nbttagcompound.getCompound("bukkit");
|
||||||
|
EntityPlayer handle = getHandle();
|
||||||
|
data.setInt("newExp", handle.newExp);
|
||||||
|
data.setInt("newTotalExp", handle.newTotalExp);
|
||||||
|
data.setInt("newLevel", handle.newLevel);
|
||||||
|
data.setInt("expToDrop", handle.expToDrop);
|
||||||
|
data.setBoolean("keepLevel", handle.keepLevel);
|
||||||
data.setLong("firstPlayed", getFirstPlayed());
|
data.setLong("firstPlayed", getFirstPlayed());
|
||||||
data.setLong("lastPlayed", System.currentTimeMillis());
|
data.setLong("lastPlayed", System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
|
@ -316,7 +316,6 @@ public class CraftEventFactory {
|
||||||
org.bukkit.World world = entity.getWorld();
|
org.bukkit.World world = entity.getWorld();
|
||||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
// TODO: Possibly a way to persist this incase of disconnect
|
|
||||||
victim.keepLevel = event.getKeepLevel();
|
victim.keepLevel = event.getKeepLevel();
|
||||||
victim.newLevel = event.getNewLevel();
|
victim.newLevel = event.getNewLevel();
|
||||||
victim.newTotalExp = event.getNewTotalExp();
|
victim.newTotalExp = event.getNewTotalExp();
|
||||||
|
@ -329,8 +328,7 @@ public class CraftEventFactory {
|
||||||
if (stack instanceof CraftItemStack) {
|
if (stack instanceof CraftItemStack) {
|
||||||
// Use the internal item to preserve possible data.
|
// Use the internal item to preserve possible data.
|
||||||
victim.a(((CraftItemStack) stack).getHandle(), 0.0f);
|
victim.a(((CraftItemStack) stack).getHandle(), 0.0f);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
world.dropItemNaturally(entity.getLocation(), stack);
|
world.dropItemNaturally(entity.getLocation(), stack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue