getPosition() public method

public getPosition ( ) : Position
return pocketmine\level\Position
Esempio n. 1
0
 public function onExplosion(EntityExplodeEvent $event)
 {
     $levelName = $event->getEntity()->getLevel()->getName();
     if (!$this->plugin->isLevelLoaded($levelName)) {
         return;
     }
     $plot = $this->plugin->getPlotByPosition($event->getPosition());
     if ($plot === null) {
         $event->setCancelled(true);
         return;
     }
     $beginPos = $this->plugin->getPlotPosition($plot);
     $endPos = clone $beginPos;
     $plotSize = $this->plugin->getLevelSettings($levelName)->plotSize;
     $endPos->x += $plotSize;
     $endPos->z += $plotSize;
     $blocks = array_filter($event->getBlockList(), function ($block) use($beginPos, $endPos) {
         if ($block->x >= $beginPos->x and $block->z >= $beginPos->z and $block->x < $endPos->x and $block->z < $endPos->z) {
             return true;
         }
         return false;
     });
     $event->setBlockList($blocks);
 }
Esempio n. 2
0
 /**
  * @param EntityExplodeEvent $event
  *
  * @priority        HIGH
  * @ignoreCancelled true
  */
 public function onEntityExplode(EntityExplodeEvent $event)
 {
     if ($this->plugin->getConfig()->get("protect-from-explosion", true) != true) {
         return;
     }
     $radius = $this->plugin->getConfig()->get("explosion-radius", 8);
     foreach ($this->plugin->getAllZones() as $zone) {
         if ($zone->isOnRadius($event->getPosition(), $radius)) {
             $owner = $this->plugin->getServer()->getPlayer($zone->getOwner());
             if ($owner instanceof Player) {
                 $owner->sendMessage('[iZone] Something explode near zone: ' . $zone->getName());
             }
             $event->setCancelled(true);
             break;
         }
     }
     return;
 }