improvements update manager
This commit is contained in:
parent
dcadd1c1f6
commit
00529d111d
@ -55,9 +55,9 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
|
||||
|
||||
// Register for callbacks
|
||||
$this->maniaControl->timerManager->registerTimerListening($this, 'handle1Minute', 1000 * 60);
|
||||
$this->maniaControl->timerManager->registerTimerListening($this, 'hourlyUpdateCheck', 1000 * 60 * 60);
|
||||
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERJOINED, $this, 'handlePlayerJoined');
|
||||
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECTED, $this, 'handlePlayerDisconnected');
|
||||
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECTED, $this, 'autoUpdate');
|
||||
|
||||
//define Permissions
|
||||
$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_UPDATE, AuthenticationManager::AUTH_LEVEL_ADMIN);
|
||||
@ -69,11 +69,11 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle ManiaControl 1Minute callback
|
||||
* Perform Hourly Update Che
|
||||
*
|
||||
* @param $time
|
||||
*/
|
||||
public function handle1Minute($time) {
|
||||
public function hourlyUpdateCheck($time) {
|
||||
$updateCheckEnabled = $this->maniaControl->settingManager->getSetting($this, self::SETTING_ENABLEUPDATECHECK);
|
||||
if (!$updateCheckEnabled) {
|
||||
// Automatic update check disabled
|
||||
@ -82,9 +82,10 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Only check once per hour
|
||||
$updateInterval = $this->maniaControl->settingManager->getSetting($this, self::SETTING_UPDATECHECK_INTERVAL);
|
||||
if ($this->lastUpdateCheck > time() - $updateInterval * 3600.) {
|
||||
if ($this->lastUpdateCheck > time() - $updateInterval * 3600) {
|
||||
return;
|
||||
}
|
||||
$this->lastUpdateCheck = time();
|
||||
@ -94,6 +95,8 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
}
|
||||
$this->maniaControl->log('New ManiaControl Version ' . $updateData->version . ' available!');
|
||||
$this->coreUpdateData = $updateData;
|
||||
|
||||
$this->autoUpdate($time);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,18 +116,18 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
$this->maniaControl->chat->sendInformation('New ManiaControl Version ' . $this->coreUpdateData->version . ' available!', $player->login);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Perform automatic update as soon as a the Server is empty
|
||||
* Perform automatic update as soon as a the Server is empty (also every hour got checked when its empty)
|
||||
*
|
||||
* @param array $callback
|
||||
* @param mixed $callback
|
||||
*/
|
||||
public function handlePlayerDisconnected(array $callback) {
|
||||
$performBackup = $this->maniaControl->settingManager->getSetting($this, self::SETTING_AUTO_UPDATE);
|
||||
if (!$performBackup) {
|
||||
public function autoUpdate($callback) {
|
||||
$autoUpdate = $this->maniaControl->settingManager->getSetting($this, self::SETTING_AUTO_UPDATE);
|
||||
if (!$autoUpdate) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (count($this->maniaControl->playerManager->getPlayers()) > 0) {
|
||||
return;
|
||||
}
|
||||
@ -148,6 +151,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
$this->maniaControl->restart();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle //checkupdate command
|
||||
*
|
||||
@ -175,7 +179,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
||||
$releaseTime = strtotime($updateData->release_date);
|
||||
if ($buildDate) {
|
||||
$buildTime = strtotime($buildDate);
|
||||
if ($buildTime >= $releaseTime) {
|
||||
if ($buildTime >= $releaseTime) { //FIXME will ever fail, releaseTime > buildTime (because releaseTime "2014-02-01 14:59:49")
|
||||
$this->maniaControl->chat->sendInformation('No new Build available, current build: ' . date("Y-m-d", $buildTime) . '!', $player->login);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user