From a513406005d4aae3b710d76386948ca56b7bd09a Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Wed, 30 Nov 2011 22:31:03 +0000 Subject: [PATCH] Fixed exp methods returning wrong values --- .../craftbukkit/entity/CraftPlayer.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index a26ac0d1fa..1e980b0407 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -458,28 +458,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return GameMode.getByValue(getHandle().itemInWorldManager.a()); } + public void giveExp(int exp) { + getHandle().giveExp(exp); + } + + public float getExp() { + return getHandle().exp; + } + + public void setExp(float exp) { + getHandle().exp = exp; + + giveExp(0); + } + public int getExperience() { - return getHandle().expTotal; + return (int)(getExp() * 100); } public void setExperience(int exp) { - getHandle().d(exp - getExperience()); + setExp(exp / 100); } public int getLevel() { - return (int)getHandle().exp; + return (int)getHandle().expLevel; } public void setLevel(int level) { - getHandle().exp = level; + getHandle().expLevel = level; } public int getTotalExperience() { - return getHandle().expLevel; + return getHandle().expTotal; } public void setTotalExperience(int exp) { - getHandle().expLevel = exp; + getHandle().expTotal = exp; if (getTotalExperience() > getExperience()) { getHandle().expTotal = getTotalExperience();