Fixed DevTools getting disabled when a plugin throws an exception during load (#1025)

This commit is contained in:
Dylan K. Taylor 2017-06-07 11:12:47 +01:00 committed by GitHub
parent f0d12a0b30
commit 3f03d9e683

View File

@ -140,7 +140,7 @@ class PluginManager{
* @param string $path * @param string $path
* @param PluginLoader[] $loaders * @param PluginLoader[] $loaders
* *
* @return Plugin * @return Plugin|null
*/ */
public function loadPlugin($path, $loaders = null){ public function loadPlugin($path, $loaders = null){
foreach(($loaders === null ? $this->fileAssociations : $loaders) as $loader){ foreach(($loaders === null ? $this->fileAssociations : $loaders) as $loader){
@ -154,6 +154,7 @@ class PluginManager{
return null; return null;
} }
try{
if(($plugin = $loader->loadPlugin($path)) instanceof Plugin){ if(($plugin = $loader->loadPlugin($path)) instanceof Plugin){
$this->plugins[$plugin->getDescription()->getName()] = $plugin; $this->plugins[$plugin->getDescription()->getName()] = $plugin;
@ -165,6 +166,10 @@ class PluginManager{
return $plugin; return $plugin;
} }
}catch(\Throwable $e){
$this->server->getLogger()->logException($e);
return null;
}
} }
} }
} }