summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server
diff options
context:
space:
mode:
authorNathan Adams <dinnerbone@dinnerbone.com>2012-01-19 16:06:27 +0000
committerNathan Adams <dinnerbone@dinnerbone.com>2012-01-19 16:07:18 +0000
commitb0f29b1755d5fcc97be5b508ed5c467a0f4f845b (patch)
tree68dc26a49beda0928bee6fac79a7535eec5754bf /src/main/java/net/minecraft/server
parent1f1c9c0d4b074fff3e21826a655b1b77adedf351 (diff)
downloadcraftbukkit-b0f29b1755d5fcc97be5b508ed5c467a0f4f845b.tar
craftbukkit-b0f29b1755d5fcc97be5b508ed5c467a0f4f845b.tar.gz
craftbukkit-b0f29b1755d5fcc97be5b508ed5c467a0f4f845b.tar.lz
craftbukkit-b0f29b1755d5fcc97be5b508ed5c467a0f4f845b.tar.xz
craftbukkit-b0f29b1755d5fcc97be5b508ed5c467a0f4f845b.zip
Throw PlayerLevelChangeEvent and PlayerExpChangeEvent events. Thanks to feildmaster for the PR.
Diffstat (limited to 'src/main/java/net/minecraft/server')
-rw-r--r--src/main/java/net/minecraft/server/EntityExperienceOrb.java4
-rw-r--r--src/main/java/net/minecraft/server/EntityHuman.java1
-rw-r--r--src/main/java/net/minecraft/server/EntityPlayer.java11
3 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index 8a7476b0..26e2204b 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@@ -1,5 +1,7 @@
package net.minecraft.server;
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
public class EntityExperienceOrb extends Entity {
public int a;
@@ -130,7 +132,7 @@ public class EntityExperienceOrb extends Entity {
entityhuman.x = 2;
this.world.makeSound(this, "random.orb", 0.1F, 0.5F * ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.8F));
entityhuman.receive(this, 1);
- entityhuman.giveExp(this.value);
+ entityhuman.giveExp(CraftEventFactory.callPlayerExpChangeEvent(entityhuman, this.value).getAmount()); // CraftBukkit - this.value to event.getAmount()
this.die();
}
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index d7156aeb..69f6e621 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -57,6 +57,7 @@ public abstract class EntityHuman extends EntityLiving {
protected boolean J = false;
public float K;
public PlayerAbilities abilities = new PlayerAbilities();
+ public int oldLevel = -1; // CraftBukkit
public int expLevel;
public int expTotal;
public float exp;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index dd0e90a4..a3a13f2d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -319,6 +319,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.lastSentExp = this.expTotal;
this.netServerHandler.sendPacket(new Packet43SetExperience(this.exp, this.expTotal, this.expLevel));
}
+
+ // CraftBukkit start
+ if (this.oldLevel == -1) {
+ this.oldLevel = this.expLevel;
+ }
+
+ if (this.oldLevel != this.expLevel) {
+ CraftEventFactory.callPlayerLevelChangeEvent(this.world.getServer().getPlayer((EntityPlayer) this), this.oldLevel, this.expLevel);
+ this.oldLevel = this.expLevel;
+ }
+ // CraftBukkit end
}
public void e(int i) {