maniacontrol.php exception handling

This commit is contained in:
kremsy 2014-01-17 16:32:53 +01:00 committed by Steffen Schröder
parent a69d5d0f84
commit f021084a90

View File

@ -16,6 +16,7 @@ use ManiaControl\Plugins\PluginManager;
use ManiaControl\Server\Server; use ManiaControl\Server\Server;
use ManiaControl\Statistics\StatisticManager; use ManiaControl\Statistics\StatisticManager;
use Maniaplanet\DedicatedServer\Connection; use Maniaplanet\DedicatedServer\Connection;
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
require_once __DIR__ . '/Maniaplanet/DedicatedServer/Connection.php'; require_once __DIR__ . '/Maniaplanet/DedicatedServer/Connection.php';
require_once __DIR__ . '/Callbacks/CallbackListener.php'; require_once __DIR__ . '/Callbacks/CallbackListener.php';
@ -356,14 +357,17 @@ class ManiaControl implements CommandListener {
$pass = (string)$pass[0]; $pass = (string)$pass[0];
//TODO timeout as constant //TODO timeout as constant
$this->client = Connection::factory($host, $port, 20, $login, $pass); try {
if($this->client == null) { $this->client = Connection::factory($host, $port, 20, $login, $pass);
trigger_error("Couldn't authenticate on server with user '{$login}'! " . $this->getClientErrorText(), E_USER_ERROR); } catch(Exception $e) {
trigger_error("Couldn't authenticate on server with user '{$login}'! " . $e->getMessage(), E_USER_ERROR);
} }
// Enable callback system // Enable callback system
if(!$this->client->enableCallbacks(true)) { try {
trigger_error("Couldn't enable callbacks! " . $this->getClientErrorText(), E_USER_ERROR); $this->client->enableCallbacks(true);
} catch(Exception $e) {
trigger_error("Couldn't enable callbacks! " . $e->getMessage(), E_USER_ERROR);
} }
// Wait for server to be ready // Wait for server to be ready
@ -381,14 +385,16 @@ class ManiaControl implements CommandListener {
// Hide old widgets // Hide old widgets
$this->client->sendHideManialinkPage(); $this->client->sendHideManialinkPage();
//$this->client->query('SendHideManialinkPage');
// Enable script callbacks if needed // Enable script callbacks if needed
if($this->server->getGameMode() != 0) { if($this->server->getGameMode() != 0) {
return; return;
} }
if(!$scriptSettings = $this->client->getModeScriptSettings()) {
trigger_error("Couldn't get mode script settings. " . $this->getClientErrorText()); try {
$scriptSettings = $this->client->getModeScriptSettings();
} catch(Exception $e) {
trigger_error("Couldn't get mode script settings. " . $e->getMessage());
return; return;
} }
@ -397,7 +403,9 @@ class ManiaControl implements CommandListener {
} }
$scriptSettings['S_UseScriptCallbacks'] = true; $scriptSettings['S_UseScriptCallbacks'] = true;
if(!$this->client->setModeScriptSettings($scriptSettings)) { try {
$this->client->setModeScriptSettings($scriptSettings);
} catch(Exception $e) {
trigger_error("Couldn't set mode script settings to enable script callbacks. " . $this->getClientErrorText()); trigger_error("Couldn't set mode script settings to enable script callbacks. " . $this->getClientErrorText());
return; return;
} }