fixed exceptions

This commit is contained in:
kremsy 2014-03-13 18:25:29 +01:00 committed by Steffen Schröder
parent 689e572c62
commit d3cc9db29c
5 changed files with 44 additions and 11 deletions

View File

@ -98,7 +98,9 @@ class ManiaExchangeManager {
* @param $mxId * @param $mxId
*/ */
public function unsetMap($mxId) { public function unsetMap($mxId) {
unset($this->mxIdUidVector[$mxId]); if (isset($this->mxIdUidVector[$mxId])) {
unset($this->mxIdUidVector[$mxId]);
}
} }
/** /**
@ -272,9 +274,9 @@ class ManiaExchangeManager {
// compile search URL // compile search URL
$url = 'http://' . $titlePrefix . '.mania-exchange.com/tracksearch?api=on'; $url = 'http://' . $titlePrefix . '.mania-exchange.com/tracksearch?api=on';
$game = explode('@', $titleId); $game = explode('@', $titleId);
$envNumber = $this->getEnvironment($game[0]); $envNumber = $this->getEnvironment($game[0]);
if($env != '' || $envNumber != -1){ if ($env != '' || $envNumber != -1) {
$url .= '&environments=' . $envNumber; $url .= '&environments=' . $envNumber;
} }
if ($name != '') { if ($name != '') {

View File

@ -11,6 +11,7 @@ use ManiaControl\ManiaControl;
use ManiaControl\Manialinks\IconManager; use ManiaControl\Manialinks\IconManager;
use ManiaControl\Manialinks\ManialinkPageAnswerListener; use ManiaControl\Manialinks\ManialinkPageAnswerListener;
use ManiaControl\Players\Player; use ManiaControl\Players\Player;
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
/** /**
* Class offering commands to manage maps * Class offering commands to manage maps
@ -205,7 +206,13 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb
$this->maniaControl->chat->sendSuccess($message); $this->maniaControl->chat->sendSuccess($message);
$this->maniaControl->log($message, true); $this->maniaControl->log($message, true);
$this->maniaControl->client->restartMap(); try {
$this->maniaControl->client->restartMap();
} catch(Exception $e) {
if ($e->getMessage() != 'Change in progress.') {
throw $e;
}
}
} }
/** /**

View File

@ -368,8 +368,16 @@ class MapManager implements CallbackListener {
$this->maniaControl->callbackManager->triggerCallback(self::CB_MAPS_UPDATED); $this->maniaControl->callbackManager->triggerCallback(self::CB_MAPS_UPDATED);
//Write MapList //Write MapList
if($this->maniaControl->settingManager->getSetting($this, self::SETTING_AUTOSAVE_MAPLIST)){ if ($this->maniaControl->settingManager->getSetting($this, self::SETTING_AUTOSAVE_MAPLIST)) {
$this->maniaControl->client->saveMatchSettings($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAPLIST_FILE)); try {
$this->maniaControl->client->saveMatchSettings($this->maniaControl->settingManager->getSetting($this, self::SETTING_MAPLIST_FILE));
} catch(Exception $e) {
if ($e->getMessage() == 'Unable to write the playlist file.') {
$this->maniaControl->log("Unable to write the playlist file, please checkout your MX-Folders File permissions!");
} else {
throw $e;
}
}
} }
} }

View File

@ -132,7 +132,16 @@ class PlayerActions {
$this->forcePlayerToPlay($adminLogin, $targetLogin, true, false); $this->forcePlayerToPlay($adminLogin, $targetLogin, true, false);
} }
$this->maniaControl->client->forcePlayerTeam($target->login, $teamId); try {
$this->maniaControl->client->forcePlayerTeam($target->login, $teamId);
} catch(Exception $e) {
if ($e->getMessage() == "Not in Team mode.") {
$this->forcePlayerToPlay($adminLogin, $targetLogin);
return;
} else {
throw $e;
}
}
$chatMessage = false; $chatMessage = false;
$title = $this->maniaControl->authenticationManager->getAuthLevelName($admin->authLevel); $title = $this->maniaControl->authenticationManager->getAuthLevelName($admin->authLevel);

View File

@ -9,6 +9,7 @@ use ManiaControl\Callbacks\TimerListener;
use ManiaControl\Formatter; use ManiaControl\Formatter;
use ManiaControl\ManiaControl; use ManiaControl\ManiaControl;
use ManiaControl\Statistics\StatisticManager; use ManiaControl\Statistics\StatisticManager;
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
/** /**
* Class managing Players * Class managing Players
@ -143,11 +144,17 @@ class PlayerManager implements CallbackListener, TimerListener {
* @param array $callback * @param array $callback
*/ */
public function playerConnect(array $callback) { public function playerConnect(array $callback) {
$login = $callback[1][0]; $login = $callback[1][0];
$playerInfo = $this->maniaControl->client->getDetailedPlayerInfo($login); try {
$player = new Player($playerInfo); $playerInfo = $this->maniaControl->client->getDetailedPlayerInfo($login);
$player = new Player($playerInfo);
$this->addPlayer($player); $this->addPlayer($player);
} catch(Exception $e) {
if ($e->getMessage() != 'Login unknown.') {
throw $e;
}
}
} }
/** /**