scheduleTask(new ClosureTask(function(int $currentTick) : void{ * echo "HI on $currentTick\n"; * }); * ``` */ class ClosureTask extends Task{ /** * @var \Closure * @phpstan-var \Closure(int) : void */ private $closure; /** * @param \Closure $closure Must accept only ONE parameter, $currentTick * @phpstan-param \Closure(int) : void $closure */ public function __construct(\Closure $closure){ Utils::validateCallableSignature(function(int $currentTick) : void{}, $closure); $this->closure = $closure; } public function getName() : string{ return Utils::getNiceClosureName($this->closure); } public function onRun(int $currentTick) : void{ ($this->closure)($currentTick); } }