EntityDeathEvent: add XP amount API, closes #2690

This commit is contained in:
Dylan K. Taylor
2019-03-21 19:53:14 +00:00
parent 89c0836047
commit b8d1eb20b0
3 changed files with 29 additions and 7 deletions

View File

@ -29,14 +29,18 @@ use pocketmine\item\Item;
class EntityDeathEvent extends EntityEvent{
/** @var Item[] */
private $drops = [];
/** @var int */
private $xp;
/**
* @param Living $entity
* @param Item[] $drops
* @param int $xp
*/
public function __construct(Living $entity, array $drops = []){
public function __construct(Living $entity, array $drops = [], int $xp = 0){
$this->entity = $entity;
$this->drops = $drops;
$this->xp = $xp;
}
/**
@ -59,4 +63,24 @@ class EntityDeathEvent extends EntityEvent{
public function setDrops(array $drops) : void{
$this->drops = $drops;
}
/**
* Returns how much experience is dropped due to this entity's death.
* @return int
*/
public function getXpDropAmount() : int{
return $this->xp;
}
/**
* @param int $xp
*
* @throws \InvalidArgumentException
*/
public function setXpDropAmount(int $xp) : void{
if($xp < 0){
throw new \InvalidArgumentException("XP drop amount must not be negative");
}
$this->xp = $xp;
}
}