diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index f996e58e4..4fff88cb0 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -471,8 +471,12 @@ class PluginManager{ } public function tickSchedulers(int $currentTick) : void{ - foreach($this->enabledPlugins as $p){ - $p->getScheduler()->mainThreadHeartbeat($currentTick); + foreach($this->enabledPlugins as $pluginName => $p){ + if(isset($this->enabledPlugins[$pluginName])){ + //the plugin may have been disabled as a result of updating other plugins' schedulers, and therefore + //removed from enabledPlugins; however, foreach will still see it due to copy-on-write + $p->getScheduler()->mainThreadHeartbeat($currentTick); + } } }