Inheritance: extends BlockEvent, implements pocketmine\event\Cancellable
コード例 #1
0
ファイル: Leaves.php プロジェクト: iTXTech/Genisys
 public function onUpdate($type)
 {
     if ($type === Level::BLOCK_UPDATE_NORMAL) {
         if (($this->meta & 0b1100) === 0) {
             $this->meta |= 0x8;
             $this->getLevel()->setBlock($this, $this, false, false, true);
         }
     } elseif ($type === Level::BLOCK_UPDATE_RANDOM) {
         if (($this->meta & 0b1100) === 0x8) {
             $this->meta &= 0x3;
             $visited = [];
             $check = 0;
             Server::getInstance()->getPluginManager()->callEvent($ev = new LeavesDecayEvent($this));
             if ($ev->isCancelled() or $this->findLog($this, $visited, 0, $check) === true) {
                 $this->getLevel()->setBlock($this, $this, false, false);
             } else {
                 $this->getLevel()->useBreakOn($this);
                 return Level::BLOCK_UPDATE_NORMAL;
             }
         }
     }
     return false;
 }
コード例 #2
0
 /**
  * @param LeavesDecayEvent $event
  * @priority HIGHEST
  * @ignoreCancelled true
  */
 public function onLeavesDecay(LeavesDecayEvent $event)
 {
     if (!$this->plugin->getStorage()->getShield($event->getBlock()->getLevel())->isAllowed(Shield::DECAYING)) {
         $event->setCancelled(true);
     }
 }