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 PluginLoader[] $loaders
*
* @return Plugin
* @return Plugin|null
*/
public function loadPlugin($path, $loaders = null){
foreach(($loaders === null ? $this->fileAssociations : $loaders) as $loader){
@ -154,16 +154,21 @@ class PluginManager{
return null;
}
if(($plugin = $loader->loadPlugin($path)) instanceof Plugin){
$this->plugins[$plugin->getDescription()->getName()] = $plugin;
try{
if(($plugin = $loader->loadPlugin($path)) instanceof Plugin){
$this->plugins[$plugin->getDescription()->getName()] = $plugin;
$pluginCommands = $this->parseYamlCommands($plugin);
$pluginCommands = $this->parseYamlCommands($plugin);
if(count($pluginCommands) > 0){
$this->commandMap->registerAll($plugin->getDescription()->getName(), $pluginCommands);
if(count($pluginCommands) > 0){
$this->commandMap->registerAll($plugin->getDescription()->getName(), $pluginCommands);
}
return $plugin;
}
return $plugin;
}catch(\Throwable $e){
$this->server->getLogger()->logException($e);
return null;
}
}
}