diff --git a/src/pocketmine/plugin/PluginManager.php b/src/pocketmine/plugin/PluginManager.php index f7dfb1d49..7244c4113 100644 --- a/src/pocketmine/plugin/PluginManager.php +++ b/src/pocketmine/plugin/PluginManager.php @@ -575,6 +575,7 @@ class PluginManager{ foreach($plugin->getDescription()->getPermissions() as $perm){ $this->addPermission($perm); } + $plugin->getScheduler()->setEnabled(true); $plugin->getPluginLoader()->enablePlugin($plugin); }catch(\Throwable $e){ $this->server->getLogger()->logException($e); diff --git a/src/pocketmine/scheduler/TaskScheduler.php b/src/pocketmine/scheduler/TaskScheduler.php index 9cec744e8..77c37fa1b 100644 --- a/src/pocketmine/scheduler/TaskScheduler.php +++ b/src/pocketmine/scheduler/TaskScheduler.php @@ -36,7 +36,7 @@ class TaskScheduler{ private $owner; /** @var bool */ - private $shutdown = false; + private $enabled = true; /** * @var ReversePriorityQueue @@ -146,7 +146,7 @@ class TaskScheduler{ * @throws \InvalidStateException */ private function addTask(Task $task, int $delay, int $period){ - if($this->shutdown){ + if(!$this->enabled){ throw new \InvalidStateException("Tried to schedule task after scheduler shutdown"); } @@ -178,10 +178,14 @@ class TaskScheduler{ } public function shutdown() : void{ - $this->shutdown = true; + $this->enabled = false; $this->cancelAllTasks(); } + public function setEnabled(bool $enabled) : void{ + $this->enabled = $enabled; + } + /** * @param int $currentTick */