From 84732296073fa18a6d838c07ceeed85b8f20c314 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Wed, 21 Sep 2011 15:40:00 +0100 Subject: Added methods to control dropped EXP from EntityDeathEvent, and made a subevent for setting players respawned-exp --- .../org/bukkit/event/entity/EntityDeathEvent.java | 32 ++++++++++++++++- .../org/bukkit/event/entity/PlayerDeathEvent.java | 41 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java (limited to 'src/main/java/org') diff --git a/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java index 8f8cfbae..34e5348f 100644 --- a/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java @@ -9,10 +9,40 @@ import org.bukkit.inventory.ItemStack; */ public class EntityDeathEvent extends EntityEvent { private List drops; + private int dropExp = 0; - public EntityDeathEvent(final Entity what, final List drops) { + public EntityDeathEvent(final Entity entity, final List drops) { + this(entity, drops, 0); + } + + public EntityDeathEvent(final Entity what, final List drops, int droppedExp) { super(Type.ENTITY_DEATH, what); this.drops = drops; + this.dropExp = droppedExp; + } + + /** + * Gets how much EXP should be dropped from this death. + *

+ * This does not indicate how much EXP should be taken from the entity in question, + * merely how much should be created after its death. + * + * @return Amount of EXP to drop. + */ + public int getDroppedExp() { + return dropExp; + } + + /** + * Sets how much EXP should be dropped from this death. + *

+ * This does not indicate how much EXP should be taken from the entity in question, + * merely how much should be created after its death. + * + * @param exp Amount of EXP to drop. + */ + public void setDropedExp(int exp) { + this.dropExp = exp; } /** diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java new file mode 100644 index 00000000..112996e6 --- /dev/null +++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java @@ -0,0 +1,41 @@ +package org.bukkit.event.entity; + +import java.util.List; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +/** + * Thrown whenever a {@link Player} dies + */ +public class PlayerDeathEvent extends EntityDeathEvent { + private int newExp = 0; + + public PlayerDeathEvent(Player player, List drops, int droppedExp, int newExp) { + super(player, drops, droppedExp); + this.newExp = newExp; + } + + /** + * Gets how much EXP the Player should have at respawn. + *

+ * This does not indicate how much EXP should be dropped, please see + * {@link #getDroppedExp()} for that. + * + * @return New EXP of the respawned player + */ + public int getNewExp() { + return newExp; + } + + /** + * Sets how much EXP the Player should have at respawn. + *

+ * This does not indicate how much EXP should be dropped, please see + * {@link #setDropedExp(int)} for that. + * + * @get exp New EXP of the respawned player + */ + public void setNewExp(int exp) { + this.newExp = exp; + } +} -- cgit v1.2.3