Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace SOFe\YieldTask;
- use pocketmine\plugin\Plugin;
- use pocketmine\scheduler\PluginTask;
- class YieldTask extends PluginTask{
- const UNIT_TICKS = 1;
- const UNIT_SECONDS = 20;
- const UNIT_MINUTES = 1200;
- private $generator;
- private $factor;
- public function __construct(Plugin $owner, $generator, int $unit = self::UNIT_SECONDS){
- if(is_callable($generator)) $generator = $generator();
- if(!($generator instanceof \Generator)) throw new \InvalidArgumentException;
- parent::__construct($owner);
- $this->generator = $generator;
- $this->factor = $unit;
- $this->owner->getServer()->getScheduler()->scheduleDelayedTask($this, $this->generator->current() * $this->factor);
- }
- public function onRun(int $tick){
- $this->generator->next();
- $this->owner->getServer()->getScheduler()->scheduleDelayedTask($this, $this->generator->current() * $this->factor);
- }
- }
Add Comment
Please, Sign In to add comment