From b99b83d66870091bb32249b4bfce65cafad68409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Schro=CC=88der?= Date: Tue, 31 Dec 2013 18:42:54 +0100 Subject: [PATCH] Working Update Function! --- application/core/UpdateManager.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/application/core/UpdateManager.php b/application/core/UpdateManager.php index 3360b1e7..18d4ef09 100644 --- a/application/core/UpdateManager.php +++ b/application/core/UpdateManager.php @@ -10,7 +10,7 @@ use ManiaControl\Players\Player; use ManiaControl\Players\PlayerManager; /** - * Class checking for ManiaControl Core and Plugin Updates + * Manager checking for ManiaControl Core and Plugin Updates * * @author steeffeen & kremsy */ @@ -132,7 +132,11 @@ class UpdateManager implements CallbackListener, CommandListener { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } - $updateData = $this->checkCoreUpdate(); + $updateData = $this->checkCoreUpdate(true); + if (!$updateData) { + $this->maniaControl->chat->sendError('Update is currently not possible!', $player->login); + return; + } $this->maniaControl->chat->sendInformation("Starting Update to Version v{$updateData->version}...", $player->login); $performBackup = $this->maniaControl->settingManager->getSetting($this, self::SETTING_PERFORM_BACKUPS); if ($performBackup && !$this->performBackup()) { @@ -175,16 +179,16 @@ class UpdateManager implements CallbackListener, CommandListener { * * @return mixed */ - private function checkCoreUpdate() { + private function checkCoreUpdate($ignoreVersion = false) { $updateChannel = $this->getCurrentUpdateChannelSetting(); - $url = self::URL_WEBSERVICE . 'versions?current=1&channel=' . $updateChannel; + $url = self::URL_WEBSERVICE . 'versions?update=1¤t=1&channel=' . $updateChannel; $dataJson = file_get_contents($url); $versions = json_decode($dataJson); if (!$versions || !isset($versions[0])) { return false; } $updateData = $versions[0]; - if ($updateData->version <= ManiaControl::VERSION) { + if (!$ignoreVersion && $updateData->version <= ManiaControl::VERSION) { return false; } return $updateData; @@ -275,7 +279,7 @@ class UpdateManager implements CallbackListener, CommandListener { trigger_error("Couldn't open Update Zip. ({$result})"); return false; } - $zip->extractTo(ManiaControlDir . '/test/'); + $zip->extractTo(ManiaControlDir); $zip->close(); unlink($updateFileName); @rmdir($tempDir);