diff --git a/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php b/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php index f0232673..936fd5df 100644 --- a/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php +++ b/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php @@ -25,6 +25,8 @@ class FaultException extends Exception return new ChangeInProgressException($faultString, $faultCode); case 'The player is not a spectator': return new PlayerIsNotSpectatorException($faultString, $faultCode); + case 'Not in Team mode.': + return new NotInTeamModeException($faultString, $faultCode); } return new self($faultString, $faultCode); @@ -37,4 +39,5 @@ class StartIndexOutOfBoundException extends FaultException {} class NotInScriptModeException extends FaultException {} class ChangeInProgressException extends FaultException {} class PlayerIsNotSpectatorException extends FaultException {} +class NotInTeamModeException extends FaultException {} ?> diff --git a/application/core/Players/PlayerActions.php b/application/core/Players/PlayerActions.php index d223238b..c7241980 100644 --- a/application/core/Players/PlayerActions.php +++ b/application/core/Players/PlayerActions.php @@ -12,6 +12,8 @@ use ManiaControl\Formatter; use ManiaControl\ManiaControl; use ManiaControl\Manialinks\ManialinkManager; use Maniaplanet\DedicatedServer\Xmlrpc\Exception; +use Maniaplanet\DedicatedServer\Xmlrpc\NotInTeamModeException; +use Maniaplanet\DedicatedServer\Xmlrpc\PlayerIsNotSpectatorException; /** * Player Actions Class @@ -132,13 +134,9 @@ class PlayerActions { 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; - } + } catch(NotInTeamModeException $e) { + $this->forcePlayerToPlay($adminLogin, $targetLogin); + return; } $chatMessage = false; @@ -191,10 +189,7 @@ class PlayerActions { // Free player slot try { $this->maniaControl->client->spectatorReleasePlayerSlot($target->login); - } catch(Exception $e) { - if($e->getMessage() != "The player is not a spectator"){ - throw $e; - } + } catch(PlayerIsNotSpectatorException $e) { } } }