From 57f7d57c760f78bd2d2bbccabbcde24aeb5705de Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 8 Oct 2014 16:45:55 +0200 Subject: [PATCH] Added ExplosionPrimeEvent --- src/pocketmine/entity/PrimedTNT.php | 10 +++- .../event/entity/ExplosionPrimeEvent.php | 57 +++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/pocketmine/event/entity/ExplosionPrimeEvent.php diff --git a/src/pocketmine/entity/PrimedTNT.php b/src/pocketmine/entity/PrimedTNT.php index 2e6627d99..11818774b 100644 --- a/src/pocketmine/entity/PrimedTNT.php +++ b/src/pocketmine/entity/PrimedTNT.php @@ -23,6 +23,8 @@ namespace pocketmine\entity; use pocketmine\event\entity\EntityDamageEvent; +use pocketmine\event\entity\EntityRegainHealthEvent; +use pocketmine\event\entity\ExplosionPrimeEvent; use pocketmine\level\Explosion; use pocketmine\nbt\tag\Byte; use pocketmine\nbt\tag\String; @@ -116,12 +118,16 @@ class PrimedTNT extends Entity implements Explosive{ } - public function heal($amount){ + public function heal($amount, $source = EntityRegainHealthEvent::CAUSE_MAGIC){ } public function explode(){ - (new Explosion($this, 4, $this))->explode(); + $this->server->getPluginManager()->callEvent($ev = new ExplosionPrimeEvent($this, 4)); + + if(!$ev->isCancelled()){ + (new Explosion($this, $ev->getForce(), $this))->explode(); + } } public function spawnTo(Player $player){ diff --git a/src/pocketmine/event/entity/ExplosionPrimeEvent.php b/src/pocketmine/event/entity/ExplosionPrimeEvent.php new file mode 100644 index 000000000..f33ec51a4 --- /dev/null +++ b/src/pocketmine/event/entity/ExplosionPrimeEvent.php @@ -0,0 +1,57 @@ +entity = $entity; + $this->force = $force; + } + + /** + * @return float + */ + public function getForce(){ + return $this->force; + } + + public function setForce($force){ + $this->force = (float) $force; + } + +} \ No newline at end of file