Added methods to control dropped EXP from EntityDeathEvent, and made a subevent for setting players respawned-exp

This commit is contained in:
Dinnerbone 2011-09-21 15:40:00 +01:00
parent e61bc9093d
commit 8473229607
2 changed files with 72 additions and 1 deletions

View File

@ -9,10 +9,40 @@ import org.bukkit.inventory.ItemStack;
*/
public class EntityDeathEvent extends EntityEvent {
private List<ItemStack> drops;
private int dropExp = 0;
public EntityDeathEvent(final Entity what, final List<ItemStack> drops) {
public EntityDeathEvent(final Entity entity, final List<ItemStack> drops) {
this(entity, drops, 0);
}
public EntityDeathEvent(final Entity what, final List<ItemStack> drops, int droppedExp) {
super(Type.ENTITY_DEATH, what);
this.drops = drops;
this.dropExp = droppedExp;
}
/**
* Gets how much EXP should be dropped from this death.
* <p>
* 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.
* <p>
* 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;
}
/**

View File

@ -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<ItemStack> drops, int droppedExp, int newExp) {
super(player, drops, droppedExp);
this.newExp = newExp;
}
/**
* Gets how much EXP the Player should have at respawn.
* <p>
* 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.
* <p>
* 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;
}
}