From 114153ae9719e95bd6490807e10be771231b68ee Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Sun, 12 Oct 2014 13:37:45 +0200 Subject: [PATCH] Added EntityBlockChangeEvent --- src/pocketmine/entity/FallingBlock.php | 8 ++- .../event/entity/EntityBlockChangeEvent.php | 57 +++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 src/pocketmine/event/entity/EntityBlockChangeEvent.php diff --git a/src/pocketmine/entity/FallingBlock.php b/src/pocketmine/entity/FallingBlock.php index 62c99bf93..fac159185 100644 --- a/src/pocketmine/entity/FallingBlock.php +++ b/src/pocketmine/entity/FallingBlock.php @@ -23,6 +23,7 @@ namespace pocketmine\entity; use pocketmine\block\Block; +use pocketmine\event\entity\EntityBlockChangeEvent; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\event\entity\EntityRegainHealthEvent; use pocketmine\item\Item; @@ -82,7 +83,7 @@ class FallingBlock extends Entity{ $this->kill(); return true; } - $this->level->setBlock($this->floor(), Block::get(0, true)); + $this->level->setBlock($this->floor(), Block::get(0), true); } @@ -104,7 +105,10 @@ class FallingBlock extends Entity{ if(!$block->isFullBlock){ $this->getLevel()->dropItem($this, Item::get($this->getBlock(), 0, 1)); }else{ - $this->getLevel()->setBlock($pos, Block::get($this->getBlock(), 0), true); + $this->server->getPluginManager()->callEvent($ev = new EntityBlockChangeEvent($this, $block, Block::get($this->getBlock(), 0))); + if(!$ev->isCancelled()){ + $this->getLevel()->setBlock($pos, $ev->getTo(), true); + } } } diff --git a/src/pocketmine/event/entity/EntityBlockChangeEvent.php b/src/pocketmine/event/entity/EntityBlockChangeEvent.php new file mode 100644 index 000000000..3d19301d0 --- /dev/null +++ b/src/pocketmine/event/entity/EntityBlockChangeEvent.php @@ -0,0 +1,57 @@ +entity = $entity; + $this->from = $from; + $this->to = $to; + } + + /** + * @return Block + */ + public function getBlock(){ + return $this->from; + } + + /** + * @return Block + */ + public function getTo(){ + return $this->to; + } + +} \ No newline at end of file