Plugininstallation now fixed
This commit is contained in:
parent
31e03730a8
commit
4f4f46c56f
@ -561,7 +561,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
|||||||
$self = $this;
|
$self = $this;
|
||||||
$this->maniaControl->fileReader->loadFile($pluginData->currentVersion->url, function ($installFileContent, $error) use(&$self, &$updateData, &$player, &$pluginData, &$reopen) {
|
$this->maniaControl->fileReader->loadFile($pluginData->currentVersion->url, function ($installFileContent, $error) use(&$self, &$updateData, &$player, &$pluginData, &$reopen) {
|
||||||
$pluginsDirectory = ManiaControlDir . '/plugins/';
|
$pluginsDirectory = ManiaControlDir . '/plugins/';
|
||||||
$pluginFiles = scandir($pluginsDirectory);
|
$pluginFiles = $this->scanDirectory($pluginsDirectory);
|
||||||
|
|
||||||
$self->maniaControl->log('[UPDATE] Now installing ' . $pluginData->name . ' ...');
|
$self->maniaControl->log('[UPDATE] Now installing ' . $pluginData->name . ' ...');
|
||||||
$self->maniaControl->chat->sendInformation('Now installing ' . $pluginData->name . ' ...', $player->login);
|
$self->maniaControl->chat->sendInformation('Now installing ' . $pluginData->name . ' ...', $player->login);
|
||||||
@ -591,14 +591,14 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
|||||||
unlink($installFileName);
|
unlink($installFileName);
|
||||||
@rmdir($tempDir);
|
@rmdir($tempDir);
|
||||||
|
|
||||||
$pluginFilesAfter = scandir($pluginsDirectory);
|
$pluginFilesAfter = $this->scanDirectory($pluginsDirectory);
|
||||||
$newFiles = array_diff($pluginFilesAfter, $pluginFiles);
|
$newFiles = array_diff($pluginFilesAfter, $pluginFiles);
|
||||||
|
|
||||||
$classesBefore = get_declared_classes();
|
$classesBefore = get_declared_classes();
|
||||||
foreach ($newFiles as $newFile) {
|
foreach ($newFiles as $newFile) {
|
||||||
$filePath = $pluginsDirectory . $newFile;
|
$filePath = $pluginsDirectory . $newFile;
|
||||||
|
|
||||||
if (is_file($filePath)) {
|
if (is_file($filePath) && strstr($filePath, '.php')) {
|
||||||
$success = include_once $filePath;
|
$success = include_once $filePath;
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
trigger_error("Error loading File '{$filePath}'!");
|
trigger_error("Error loading File '{$filePath}'!");
|
||||||
@ -645,6 +645,31 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scans the plugindirectory recursively.
|
||||||
|
*
|
||||||
|
* @param $dir
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function scanDirectory($dir) {
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$cdir = scandir($dir);
|
||||||
|
foreach($cdir as $key => $value) {
|
||||||
|
if(!in_array($value,array(".",".."))) {
|
||||||
|
if(is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
|
||||||
|
foreach($this->scanDirectory($dir . DIRECTORY_SEPARATOR . $value) as $dirValue) {
|
||||||
|
$result[] = $value.DIRECTORY_SEPARATOR.$dirValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result[] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Core Update Data
|
* Set Core Update Data
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user