From e4a0ac2207c4543eea24ef336ea56c4ffa54b438 Mon Sep 17 00:00:00 2001 From: kremsy Date: Fri, 14 Feb 2014 18:17:05 +0100 Subject: [PATCH] pluginmanager fix --- application/core/ManiaControl.php | 10 +++++----- application/core/Plugins/PluginManager.php | 12 ++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/application/core/ManiaControl.php b/application/core/ManiaControl.php index 0a7d6b10..9d2a343a 100644 --- a/application/core/ManiaControl.php +++ b/application/core/ManiaControl.php @@ -304,12 +304,12 @@ class ManiaControl implements CommandListener { $this->callbackManager->manageCallbacks(); } catch(Exception $e) { - if ($e->getMessage() == 'Connection interupted' || $e->getMessage() == 'transport error - connection interrupted!') { - $this->quit($e->getMessage()); - return; - } - throw $e; + if ($e->getMessage() == 'Connection interupted' || $e->getMessage() == 'transport error - connection interrupted!') { + $this->quit($e->getMessage()); + return; } + throw $e; + } // Manage FileReader $this->fileReader->appendData(); diff --git a/application/core/Plugins/PluginManager.php b/application/core/Plugins/PluginManager.php index 2bec73df..517a11c8 100644 --- a/application/core/Plugins/PluginManager.php +++ b/application/core/Plugins/PluginManager.php @@ -180,16 +180,23 @@ class PluginManager { return true; } + /** * Load complete plugins directory and start all configured plugins */ - public function loadPlugins() { - $pluginsDirectory = ManiaControlDir . '/plugins/'; + public function loadPlugins($dir = '') { + $pluginsDirectory = ManiaControlDir . '/plugins/' . $dir . '/'; $pluginFiles = scandir($pluginsDirectory, 0); foreach($pluginFiles as $pluginFile) { if (stripos($pluginFile, '.') === 0) { continue; } + + if (is_dir($pluginsDirectory . $pluginFile)) { + $this->loadPlugins($pluginFile); + continue; + } + $classesBefore = get_declared_classes(); $success = include_once $pluginsDirectory . $pluginFile; if (!$success) { @@ -201,6 +208,7 @@ class PluginManager { if (!$this->isPluginClass($className)) { continue; } + //Prepare Plugin $className::prepare($this->maniaControl);