age < 7){ $block = clone $this; ++$block->age; $ev = new BlockGrowEvent($this, $block); $ev->call(); if(!$ev->isCancelled()){ $this->getLevel()->setBlock($this, $ev->getNewState()); } }else{ $grow = $this->getPlant(); foreach(Facing::HORIZONTAL as $side){ if($this->getSide($side)->isSameType($grow)){ return; } } $side = $this->getSide(Facing::HORIZONTAL[array_rand(Facing::HORIZONTAL)]); $d = $side->getSide(Facing::DOWN); if($side->getId() === self::AIR and ($d->getId() === self::FARMLAND or $d->getId() === self::GRASS or $d->getId() === self::DIRT)){ $ev = new BlockGrowEvent($side, $grow); $ev->call(); if(!$ev->isCancelled()){ $this->getLevel()->setBlock($side, $ev->getNewState()); } } } } } public function getDropsForCompatibleTool(Item $item) : array{ return [ $this->asItem()->setCount(mt_rand(0, 2)) ]; } }