task = $task; $this->taskId = $taskId; $this->delay = $delay; $this->period = $period; $this->timingName = $timingName === null ? "Unknown" : $timingName; $this->timings = Timings::getPluginTaskTimings($this, $period); $this->task->setHandler($this); } /** * @return bool */ public function isCancelled(){ return $this->cancelled === true; } /** * @return int */ public function getNextRun(){ return $this->nextRun; } /** * @param int $ticks */ public function setNextRun($ticks){ $this->nextRun = $ticks; } /** * @return int */ public function getTaskId(){ return $this->taskId; } /** * @return Task */ public function getTask(){ return $this->task; } /** * @return int */ public function getDelay(){ return $this->delay; } /** * @return bool */ public function isDelayed(){ return $this->delay > 0; } /** * @return bool */ public function isRepeating(){ return $this->period > 0; } /** * @return int */ public function getPeriod(){ return $this->period; } /** * WARNING: Do not use this, it's only for internal use. * Changes to this function won't be recorded on the version. */ public function cancel(){ if(!$this->isCancelled()){ $this->task->onCancel(); } $this->remove(); } public function remove(){ $this->cancelled = true; $this->task->setHandler(null); } /** * @param int $currentTick */ public function run($currentTick){ $this->task->onRun($currentTick); } /** * @return string */ public function getTaskName(){ if($this->timingName !== null){ return $this->timingName; } return get_class($this->task); } }