fixed some exceptions
This commit is contained in:
parent
94bd951a43
commit
7525b96ba1
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace ManiaControl\Bills;
|
namespace ManiaControl\Bills;
|
||||||
|
use ManiaControl\Players\Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ManiaControl BillData Structure
|
* ManiaControl BillData Structure
|
||||||
@ -22,9 +23,9 @@ class BillData {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct new BillData
|
* Construct new BillData
|
||||||
* @param unknown $function
|
* @param mixed $function
|
||||||
* @param unknown $player
|
* @param Player $player
|
||||||
* @param unknown $amount
|
* @param int $amount
|
||||||
* @param string $pay
|
* @param string $pay
|
||||||
* @param string $receiverLogin
|
* @param string $receiverLogin
|
||||||
*/
|
*/
|
||||||
|
@ -7,14 +7,13 @@ use ManiaControl\Callbacks\CallbackManager;
|
|||||||
use ManiaControl\ManiaControl;
|
use ManiaControl\ManiaControl;
|
||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
use Maniaplanet\DedicatedServer\Structures\Bill;
|
use Maniaplanet\DedicatedServer\Structures\Bill;
|
||||||
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ManiaControl Bill-Manager
|
* ManiaControl Bill-Manager
|
||||||
*
|
*
|
||||||
* @author kremsy
|
* @author kremsy
|
||||||
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
||||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||||
*/
|
*/
|
||||||
class BillManager implements CallbackListener {
|
class BillManager implements CallbackListener {
|
||||||
/*
|
/*
|
||||||
@ -58,16 +57,10 @@ class BillManager implements CallbackListener {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
if (!$receiver) {
|
||||||
if (!$receiver) {
|
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message);
|
||||||
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message);
|
} else {
|
||||||
} else {
|
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message, $receiver);
|
||||||
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message, $receiver);
|
|
||||||
}
|
|
||||||
} catch(Exception $e) {
|
|
||||||
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
|
||||||
$this->maniaControl->errorHandler->triggerDebugNotice("Couldn't create donation of {$amount} planets from '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->openBills[$bill] = new BillData($function, $player, $amount);
|
$this->openBills[$bill] = new BillData($function, $player, $amount);
|
||||||
@ -89,14 +82,7 @@ class BillManager implements CallbackListener {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
$bill = $this->maniaControl->client->pay($receiverLogin, $amount, $message);
|
||||||
$bill = $this->maniaControl->client->pay($receiverLogin, $amount, $message);
|
|
||||||
} catch(Exception $e) {
|
|
||||||
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
|
||||||
//trigger_error("Couldn't create payout of {$amount} planets by '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
|
||||||
$this->maniaControl->errorHandler->triggerDebugNotice("Couldn't create payout of {$amount} planets to '{$receiverLogin}' " . $e->getMessage());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->openBills[$bill] = new BillData($function, $receiverLogin, $amount, true);
|
$this->openBills[$bill] = new BillData($function, $receiverLogin, $amount, true);
|
||||||
|
|
||||||
|
@ -13,28 +13,29 @@ use ManiaControl\Admin\AuthenticationManager;
|
|||||||
use ManiaControl\Callbacks\CallbackListener;
|
use ManiaControl\Callbacks\CallbackListener;
|
||||||
use ManiaControl\Callbacks\CallbackManager;
|
use ManiaControl\Callbacks\CallbackManager;
|
||||||
use ManiaControl\ManiaControl;
|
use ManiaControl\ManiaControl;
|
||||||
|
use ManiaControl\Maps\Map;
|
||||||
use ManiaControl\Maps\MapManager;
|
use ManiaControl\Maps\MapManager;
|
||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
||||||
use ManiaControl\Maps\Map;
|
use Maniaplanet\DedicatedServer\Xmlrpc\NotInScriptModeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class offering a Configurator for Script Settings
|
* Class offering a Configurator for Script Settings
|
||||||
*
|
*
|
||||||
* @author steeffeen & kremsy
|
* @author steeffeen & kremsy
|
||||||
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
||||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||||
*/
|
*/
|
||||||
class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
||||||
/*
|
/*
|
||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
const ACTION_PREFIX_SETTING = 'ScriptSetting';
|
const ACTION_PREFIX_SETTING = 'ScriptSetting';
|
||||||
const ACTION_SETTING_BOOL = 'ScriptSetting.ActionBoolSetting.';
|
const ACTION_SETTING_BOOL = 'ScriptSetting.ActionBoolSetting.';
|
||||||
const CB_SCRIPTSETTING_CHANGED = 'ScriptSettings.SettingChanged';
|
const CB_SCRIPTSETTING_CHANGED = 'ScriptSettings.SettingChanged';
|
||||||
const CB_SCRIPTSETTINGS_CHANGED = 'ScriptSettings.SettingsChanged';
|
const CB_SCRIPTSETTINGS_CHANGED = 'ScriptSettings.SettingsChanged';
|
||||||
const TABLE_SCRIPT_SETTINGS = 'mc_scriptsettings';
|
const TABLE_SCRIPT_SETTINGS = 'mc_scriptsettings';
|
||||||
const SETTING_LOAD_DEFAULT_SETTINGS_MAP_BEGIN = 'Load Stored Script-Settings on Map-Begin';
|
const SETTING_LOAD_DEFAULT_SETTINGS_MAP_BEGIN = 'Load Stored Script-Settings on Map-Begin';
|
||||||
const SETTING_PERMISSION_CHANGE_SCRIPT_SETTINGS = 'Change Script-Settings';
|
const SETTING_PERMISSION_CHANGE_SCRIPT_SETTINGS = 'Change Script-Settings';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -117,11 +118,8 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
|||||||
public function loadSettingsFromDatabase() {
|
public function loadSettingsFromDatabase() {
|
||||||
try {
|
try {
|
||||||
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
||||||
} catch(Exception $e) {
|
} catch(NotInScriptModeException $e) {
|
||||||
if ($e->getMessage() == 'Not in script mode.') {
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
throw $e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$mysqli = $this->maniaControl->database->mysqli;
|
$mysqli = $this->maniaControl->database->mysqli;
|
||||||
@ -185,7 +183,7 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
||||||
} catch(Exception $e) {
|
} catch(NotInScriptModeException $e) {
|
||||||
//do nothing
|
//do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,11 +318,8 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
||||||
} catch(Exception $e) {
|
} catch(NotInScriptModeException $e) {
|
||||||
if ($e->getMessage() == 'Not in script mode.') {
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw $e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$prefixLength = strlen(self::ACTION_PREFIX_SETTING);
|
$prefixLength = strlen(self::ACTION_PREFIX_SETTING);
|
||||||
@ -389,11 +384,8 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
|||||||
public function toggleBooleanSetting($setting, Player $player) {
|
public function toggleBooleanSetting($setting, Player $player) {
|
||||||
try {
|
try {
|
||||||
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
$scriptSettings = $this->maniaControl->client->getModeScriptSettings();
|
||||||
} catch(Exception $e) {
|
} catch(NotInScriptModeException $e) {
|
||||||
if ($e->getMessage() == 'Not in script mode.') {
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw $e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($scriptSettings[$setting])) {
|
if (!isset($scriptSettings[$setting])) {
|
||||||
@ -415,11 +407,15 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener {
|
|||||||
* @param bool
|
* @param bool
|
||||||
*/
|
*/
|
||||||
private function applyNewScriptSettings(array $newSettings, Player $player) {
|
private function applyNewScriptSettings(array $newSettings, Player $player) {
|
||||||
if (!$newSettings) return true;
|
if (!$newSettings) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->maniaControl->client->setModeScriptSettings($newSettings);
|
$this->maniaControl->client->setModeScriptSettings($newSettings);
|
||||||
} catch(Exception $e) {
|
} catch(Exception $e) {
|
||||||
|
//TODO temp added 19.04.2014
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Exception line 416 ScriptSettings.php" . $e->getMessage());
|
||||||
$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login);
|
$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ class FaultException extends Exception
|
|||||||
return new CouldNotWritePlaylistFileException($faultString, $faultCode);
|
return new CouldNotWritePlaylistFileException($faultString, $faultCode);
|
||||||
case 'Start index out of bound.':
|
case 'Start index out of bound.':
|
||||||
return new StartIndexOutOfBoundException($faultString, $faultCode);
|
return new StartIndexOutOfBoundException($faultString, $faultCode);
|
||||||
|
case 'Not in script mode.':
|
||||||
|
return new NotInScriptModeException($faultString, $faultCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new self($faultString, $faultCode);
|
return new self($faultString, $faultCode);
|
||||||
@ -28,4 +30,5 @@ class FaultException extends Exception
|
|||||||
class LoginUnknownException extends FaultException {}
|
class LoginUnknownException extends FaultException {}
|
||||||
class CouldNotWritePlaylistFileException extends FaultException {}
|
class CouldNotWritePlaylistFileException extends FaultException {}
|
||||||
class StartIndexOutOfBoundException extends FaultException {}
|
class StartIndexOutOfBoundException extends FaultException {}
|
||||||
|
class NotInScriptModeException extends FaultException {}
|
||||||
?>
|
?>
|
||||||
|
@ -25,6 +25,7 @@ use ManiaControl\Update\UpdateManager;
|
|||||||
use Maniaplanet\DedicatedServer\Connection;
|
use Maniaplanet\DedicatedServer\Connection;
|
||||||
use Maniaplanet\DedicatedServer\Transport\TransportException;
|
use Maniaplanet\DedicatedServer\Transport\TransportException;
|
||||||
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
||||||
|
use Maniaplanet\DedicatedServer\Xmlrpc\NotInScriptModeException;
|
||||||
|
|
||||||
require_once __DIR__ . '/Libs/Maniaplanet/DedicatedServer/Connection.php';
|
require_once __DIR__ . '/Libs/Maniaplanet/DedicatedServer/Connection.php';
|
||||||
require_once __DIR__ . '/Libs/GbxDataFetcher/gbxdatafetcher.inc.php';
|
require_once __DIR__ . '/Libs/GbxDataFetcher/gbxdatafetcher.inc.php';
|
||||||
@ -132,10 +133,11 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks connection every xxx Minutes
|
* Checks connection every xxx Minutes
|
||||||
|
*
|
||||||
* @param $time
|
* @param $time
|
||||||
*/
|
*/
|
||||||
public function checkConnection($time){
|
public function checkConnection($time) {
|
||||||
if($this->client->getIdleTime() > 180){
|
if ($this->client->getIdleTime() > 180) {
|
||||||
$this->client->getServerName();
|
$this->client->getServerName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,7 +245,7 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
$this->client->sendHideManialinkPage();
|
$this->client->sendHideManialinkPage();
|
||||||
// Close the client connection
|
// Close the client connection
|
||||||
$this->client->delete($this->server->ip, $this->server->port);
|
$this->client->delete($this->server->ip, $this->server->port);
|
||||||
} catch(FatalException $e) {
|
} catch(TransportException $e) {
|
||||||
$this->errorHandler->triggerDebugNotice($e->getMessage() . " File: " . $e->getFile() . " Line: " . $e->getLine());
|
$this->errorHandler->triggerDebugNotice($e->getMessage() . " File: " . $e->getFile() . " Line: " . $e->getLine());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,7 +401,7 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
if (!$this->server->waitForStatus(4)) {
|
if (!$this->server->waitForStatus(4)) {
|
||||||
trigger_error("Server couldn't get ready!", E_USER_ERROR);
|
trigger_error("Server couldn't get ready!", E_USER_ERROR);
|
||||||
}
|
}
|
||||||
} catch(FatalException $e) {
|
} catch(Exception $e) {
|
||||||
// TODO remove
|
// TODO remove
|
||||||
if ($this->errorHandler) {
|
if ($this->errorHandler) {
|
||||||
$this->errorHandler->triggerDebugNotice("Fatal Exception: " . $e->getMessage() . " Trace: " . $e->getTraceAsString());
|
$this->errorHandler->triggerDebugNotice("Fatal Exception: " . $e->getMessage() . " Trace: " . $e->getTraceAsString());
|
||||||
@ -420,11 +422,8 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$scriptSettings = $this->client->getModeScriptSettings();
|
$scriptSettings = $this->client->getModeScriptSettings();
|
||||||
} catch(Exception $e) {
|
} catch(NotInScriptModeException $e) {
|
||||||
if ($e->getMessage() == 'Not in script mode.') {
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw $e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!array_key_exists('S_UseScriptCallbacks', $scriptSettings)) {
|
if (!array_key_exists('S_UseScriptCallbacks', $scriptSettings)) {
|
||||||
@ -435,6 +434,9 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
try {
|
try {
|
||||||
$this->client->setModeScriptSettings($scriptSettings);
|
$this->client->setModeScriptSettings($scriptSettings);
|
||||||
} catch(Exception $e) {
|
} catch(Exception $e) {
|
||||||
|
//TODO temp added 19.04.2014
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Exception line 437 ManiaControl.php " . $e->getMessage());
|
||||||
|
|
||||||
trigger_error("Couldn't set mode script settings to enable script callbacks. " . $e->getMessage());
|
trigger_error("Couldn't set mode script settings to enable script callbacks. " . $e->getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -10,17 +10,17 @@ use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
|||||||
/**
|
/**
|
||||||
* Class providing Access to the connected ManiaPlanet Server
|
* Class providing Access to the connected ManiaPlanet Server
|
||||||
*
|
*
|
||||||
* @author steeffeen & kremsy
|
* @author steeffeen & kremsy
|
||||||
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
* @copyright ManiaControl Copyright © 2014 ManiaControl Team
|
||||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||||
*/
|
*/
|
||||||
class Server implements CallbackListener {
|
class Server implements CallbackListener {
|
||||||
/*
|
/*
|
||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
const TABLE_SERVERS = 'mc_servers';
|
const TABLE_SERVERS = 'mc_servers';
|
||||||
const CB_TEAM_MODE_CHANGED = 'ServerCallback.TeamModeChanged';
|
const CB_TEAM_MODE_CHANGED = 'ServerCallback.TeamModeChanged';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public Properties
|
* Public Properties
|
||||||
*/
|
*/
|
||||||
@ -35,7 +35,7 @@ class Server implements CallbackListener {
|
|||||||
public $serverCommands = null;
|
public $serverCommands = null;
|
||||||
public $usageReporter = null;
|
public $usageReporter = null;
|
||||||
public $rankingManager = null;
|
public $rankingManager = null;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Private Properties
|
* Private Properties
|
||||||
*/
|
*/
|
||||||
@ -50,11 +50,11 @@ class Server implements CallbackListener {
|
|||||||
public function __construct(ManiaControl $maniaControl) {
|
public function __construct(ManiaControl $maniaControl) {
|
||||||
$this->maniaControl = $maniaControl;
|
$this->maniaControl = $maniaControl;
|
||||||
$this->initTables();
|
$this->initTables();
|
||||||
|
|
||||||
$this->serverCommands = new ServerCommands($maniaControl);
|
$this->serverCommands = new ServerCommands($maniaControl);
|
||||||
$this->usageReporter = new UsageReporter($maniaControl);
|
$this->usageReporter = new UsageReporter($maniaControl);
|
||||||
$this->rankingManager = new RankingManager($maniaControl);
|
$this->rankingManager = new RankingManager($maniaControl);
|
||||||
|
|
||||||
// Register for callbacks
|
// Register for callbacks
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_ONINIT, $this, 'onInit');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_ONINIT, $this, 'onInit');
|
||||||
}
|
}
|
||||||
@ -63,52 +63,67 @@ class Server implements CallbackListener {
|
|||||||
* Load the Server Configuration from the Config XML
|
* Load the Server Configuration from the Config XML
|
||||||
*/
|
*/
|
||||||
public function loadConfig() {
|
public function loadConfig() {
|
||||||
if (!$this->maniaControl->config) trigger_error('Error loading Server Config!', E_USER_ERROR);
|
if (!$this->maniaControl->config) {
|
||||||
|
trigger_error('Error loading Server Config!', E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
// Config id
|
// Config id
|
||||||
$id = null;
|
$id = null;
|
||||||
global $argv;
|
global $argv;
|
||||||
foreach ($argv as $arg) {
|
foreach($argv as $arg) {
|
||||||
$parts = explode('=', $arg);
|
$parts = explode('=', $arg);
|
||||||
if (count($parts) < 2) continue;
|
if (count($parts) < 2)
|
||||||
if ($parts[0] != '-id') continue;
|
continue;
|
||||||
|
if ($parts[0] != '-id')
|
||||||
|
continue;
|
||||||
$id = $parts[1];
|
$id = $parts[1];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Xml server tag with given id
|
// Xml server tag with given id
|
||||||
$serverTag = null;
|
$serverTag = null;
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$serverTags = $this->maniaControl->config->xpath("server[@id='{$id}']");
|
$serverTags = $this->maniaControl->config->xpath("server[@id='{$id}']");
|
||||||
if ($serverTags) $serverTag = $serverTags[0];
|
if ($serverTags)
|
||||||
if (!$serverTag) trigger_error("No Server configured with the ID '{$id}'!", E_USER_ERROR);
|
$serverTag = $serverTags[0];
|
||||||
}
|
if (!$serverTag)
|
||||||
else {
|
trigger_error("No Server configured with the ID '{$id}'!", E_USER_ERROR);
|
||||||
|
} else {
|
||||||
$serverTags = $this->maniaControl->config->xpath('server');
|
$serverTags = $this->maniaControl->config->xpath('server');
|
||||||
if ($serverTags) $serverTag = $serverTags[0];
|
if ($serverTags)
|
||||||
if (!$serverTag) trigger_error('No Server configured!', E_USER_ERROR);
|
$serverTag = $serverTags[0];
|
||||||
|
if (!$serverTag)
|
||||||
|
trigger_error('No Server configured!', E_USER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host
|
// Host
|
||||||
$host = $serverTag->xpath('host');
|
$host = $serverTag->xpath('host');
|
||||||
if ($host) $host = (string) $host[0];
|
if ($host)
|
||||||
if (!$host) trigger_error("Invalid server configuration (host).", E_USER_ERROR);
|
$host = (string)$host[0];
|
||||||
|
if (!$host)
|
||||||
|
trigger_error("Invalid server configuration (host).", E_USER_ERROR);
|
||||||
|
|
||||||
// Port
|
// Port
|
||||||
$port = $serverTag->xpath('port');
|
$port = $serverTag->xpath('port');
|
||||||
if ($port) $port = (string) $port[0];
|
if ($port)
|
||||||
if (!$port) trigger_error("Invalid server configuration (port).", E_USER_ERROR);
|
$port = (string)$port[0];
|
||||||
|
if (!$port)
|
||||||
|
trigger_error("Invalid server configuration (port).", E_USER_ERROR);
|
||||||
|
|
||||||
// Login
|
// Login
|
||||||
$login = $serverTag->xpath('login');
|
$login = $serverTag->xpath('login');
|
||||||
if ($login) $login = (string) $login[0];
|
if ($login)
|
||||||
if (!$login) trigger_error("Invalid server configuration (login).", E_USER_ERROR);
|
$login = (string)$login[0];
|
||||||
|
if (!$login)
|
||||||
|
trigger_error("Invalid server configuration (login).", E_USER_ERROR);
|
||||||
|
|
||||||
// Pass
|
// Pass
|
||||||
$pass = $serverTag->xpath('pass');
|
$pass = $serverTag->xpath('pass');
|
||||||
if ($pass) $pass = (string) $pass[0];
|
if ($pass)
|
||||||
if (!$pass) trigger_error("Invalid server configuration (password).", E_USER_ERROR);
|
$pass = (string)$pass[0];
|
||||||
|
if (!$pass)
|
||||||
|
trigger_error("Invalid server configuration (password).", E_USER_ERROR);
|
||||||
|
|
||||||
// Create config object
|
// Create config object
|
||||||
$this->config = new Config($id, $host, $port, $login, $pass);
|
$this->config = new Config($id, $host, $port, $login, $pass);
|
||||||
}
|
}
|
||||||
@ -118,16 +133,16 @@ class Server implements CallbackListener {
|
|||||||
*/
|
*/
|
||||||
private function updateProperties() {
|
private function updateProperties() {
|
||||||
// System info
|
// System info
|
||||||
$systemInfo = $this->maniaControl->client->getSystemInfo();
|
$systemInfo = $this->maniaControl->client->getSystemInfo();
|
||||||
$this->ip = $systemInfo->publishedIp;
|
$this->ip = $systemInfo->publishedIp;
|
||||||
$this->port = $systemInfo->port;
|
$this->port = $systemInfo->port;
|
||||||
$this->p2pPort = $systemInfo->p2PPort;
|
$this->p2pPort = $systemInfo->p2PPort;
|
||||||
$this->login = $systemInfo->serverLogin;
|
$this->login = $systemInfo->serverLogin;
|
||||||
$this->titleId = $systemInfo->titleId;
|
$this->titleId = $systemInfo->titleId;
|
||||||
|
|
||||||
// Database index
|
// Database index
|
||||||
$mysqli = $this->maniaControl->database->mysqli;
|
$mysqli = $this->maniaControl->database->mysqli;
|
||||||
$query = "INSERT INTO `" . self::TABLE_SERVERS . "` (
|
$query = "INSERT INTO `" . self::TABLE_SERVERS . "` (
|
||||||
`login`
|
`login`
|
||||||
) VALUES (
|
) VALUES (
|
||||||
?
|
?
|
||||||
@ -155,8 +170,8 @@ class Server implements CallbackListener {
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private function initTables() {
|
private function initTables() {
|
||||||
$mysqli = $this->maniaControl->database->mysqli;
|
$mysqli = $this->maniaControl->database->mysqli;
|
||||||
$query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_SERVERS . "` (
|
$query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_SERVERS . "` (
|
||||||
`index` int(11) NOT NULL AUTO_INCREMENT,
|
`index` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`login` varchar(100) NOT NULL,
|
`login` varchar(100) NOT NULL,
|
||||||
PRIMARY KEY (`index`),
|
PRIMARY KEY (`index`),
|
||||||
@ -183,19 +198,19 @@ class Server implements CallbackListener {
|
|||||||
*/
|
*/
|
||||||
public function getAllServers() {
|
public function getAllServers() {
|
||||||
$mysqli = $this->maniaControl->database->mysqli;
|
$mysqli = $this->maniaControl->database->mysqli;
|
||||||
$query = "SELECT * FROM `" . self::TABLE_SERVERS . "`";
|
$query = "SELECT * FROM `" . self::TABLE_SERVERS . "`";
|
||||||
$result = $mysqli->query($query);
|
$result = $mysqli->query($query);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
trigger_error($mysqli->error);
|
trigger_error($mysqli->error);
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$servers = array();
|
$servers = array();
|
||||||
while ($row = $result->fetch_object()) {
|
while($row = $result->fetch_object()) {
|
||||||
array_push($servers, $row);
|
array_push($servers, $row);
|
||||||
}
|
}
|
||||||
$result->close();
|
$result->close();
|
||||||
|
|
||||||
return $servers;
|
return $servers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,9 +227,9 @@ class Server implements CallbackListener {
|
|||||||
* @param bool $teamMode
|
* @param bool $teamMode
|
||||||
*/
|
*/
|
||||||
public function setTeamMode($teamMode = true) {
|
public function setTeamMode($teamMode = true) {
|
||||||
$oldStatus = $this->teamMode;
|
$oldStatus = $this->teamMode;
|
||||||
$this->teamMode = $teamMode;
|
$this->teamMode = $teamMode;
|
||||||
|
|
||||||
// Trigger callback
|
// Trigger callback
|
||||||
if ($oldStatus != $this->teamMode) {
|
if ($oldStatus != $this->teamMode) {
|
||||||
$this->maniaControl->callbackManager->triggerCallback(self::CB_TEAM_MODE_CHANGED, $teamMode);
|
$this->maniaControl->callbackManager->triggerCallback(self::CB_TEAM_MODE_CHANGED, $teamMode);
|
||||||
@ -281,18 +296,17 @@ class Server implements CallbackListener {
|
|||||||
* Fetch current Game Mode
|
* Fetch current Game Mode
|
||||||
*
|
*
|
||||||
* @param bool $stringValue
|
* @param bool $stringValue
|
||||||
* @param int $parseValue
|
* @param int $parseValue
|
||||||
* @return int | string
|
* @return int | string
|
||||||
*/
|
*/
|
||||||
public function getGameMode($stringValue = false, $parseValue = null) {
|
public function getGameMode($stringValue = false, $parseValue = null) {
|
||||||
if (is_int($parseValue)) {
|
if (is_int($parseValue)) {
|
||||||
$gameMode = $parseValue;
|
$gameMode = $parseValue;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$gameMode = $this->maniaControl->client->getGameMode();
|
$gameMode = $this->maniaControl->client->getGameMode();
|
||||||
}
|
}
|
||||||
if ($stringValue) {
|
if ($stringValue) {
|
||||||
switch ($gameMode) {
|
switch($gameMode) {
|
||||||
case 0:
|
case 0:
|
||||||
return 'Script';
|
return 'Script';
|
||||||
case 1:
|
case 1:
|
||||||
@ -323,8 +337,10 @@ class Server implements CallbackListener {
|
|||||||
public function getValidationReplay($login) {
|
public function getValidationReplay($login) {
|
||||||
try {
|
try {
|
||||||
$replay = $this->maniaControl->client->getValidationReplay($login);
|
$replay = $this->maniaControl->client->getValidationReplay($login);
|
||||||
}
|
} catch(Exception $e) {
|
||||||
catch (Exception $e) {
|
//TODO temp added 19.04.2014
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Exception line 330 Server.php" . $e->getMessage());
|
||||||
|
|
||||||
trigger_error("Couldn't get validation replay of '{$login}'. " . $e->getMessage());
|
trigger_error("Couldn't get validation replay of '{$login}'. " . $e->getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -342,22 +358,24 @@ class Server implements CallbackListener {
|
|||||||
if (!$this->checkAccess($dataDir)) {
|
if (!$this->checkAccess($dataDir)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build file name
|
// Build file name
|
||||||
$map = $this->maniaControl->mapManager->getCurrentMap();
|
$map = $this->maniaControl->mapManager->getCurrentMap();
|
||||||
$gameMode = $this->getGameMode();
|
$gameMode = $this->getGameMode();
|
||||||
$time = time();
|
$time = time();
|
||||||
$fileName = "GhostReplays/Ghost.{$login}.{$gameMode}.{$time}.{$map->uid}.Replay.Gbx";
|
$fileName = "GhostReplays/Ghost.{$login}.{$gameMode}.{$time}.{$map->uid}.Replay.Gbx";
|
||||||
|
|
||||||
// Save ghost replay
|
// Save ghost replay
|
||||||
try {
|
try {
|
||||||
$this->maniaControl->client->saveBestGhostsReplay($login, $fileName);
|
$this->maniaControl->client->saveBestGhostsReplay($login, $fileName);
|
||||||
}
|
} catch(Exception $e) {
|
||||||
catch (Exception $e) {
|
//TODO temp added 19.04.2014
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Exception line 360 Server.php" . $e->getMessage());
|
||||||
|
|
||||||
trigger_error("Couldn't save ghost replay. " . $e->getMessage());
|
trigger_error("Couldn't save ghost replay. " . $e->getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load replay file
|
// Load replay file
|
||||||
$ghostReplay = file_get_contents("{$dataDir}Replays/{$fileName}");
|
$ghostReplay = file_get_contents("{$dataDir}Replays/{$fileName}");
|
||||||
if (!$ghostReplay) {
|
if (!$ghostReplay) {
|
||||||
@ -380,12 +398,12 @@ class Server implements CallbackListener {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Server not yet in given status - Wait for it...
|
// Server not yet in given status - Wait for it...
|
||||||
$waitBegin = time();
|
$waitBegin = time();
|
||||||
$maxWaitTime = 50;
|
$maxWaitTime = 50;
|
||||||
$lastStatus = $response->name;
|
$lastStatus = $response->name;
|
||||||
$this->maniaControl->log("Waiting for server to reach status {$statusCode}...");
|
$this->maniaControl->log("Waiting for server to reach status {$statusCode}...");
|
||||||
$this->maniaControl->log("Current Status: {$lastStatus}");
|
$this->maniaControl->log("Current Status: {$lastStatus}");
|
||||||
while ($response->code !== 4) {
|
while($response->code !== 4) {
|
||||||
sleep(1);
|
sleep(1);
|
||||||
$response = $this->maniaControl->client->getStatus();
|
$response = $this->maniaControl->client->getStatus();
|
||||||
if ($lastStatus !== $response->name) {
|
if ($lastStatus !== $response->name) {
|
||||||
|
Loading…
Reference in New Issue
Block a user