diff --git a/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php b/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php index 7337563e..c7bff0b0 100644 --- a/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php +++ b/application/core/Libs/Maniaplanet/DedicatedServer/Xmlrpc/FaultException.php @@ -26,6 +26,10 @@ class FaultException extends Exception case 'The player is not a spectator': case 'The player is not a spectator.': return new PlayerIsNotSpectatorException($faultString, $faultCode); + case 'Player already ignored.': + return new PlayerAlreadyIgnoredException($faultString, $faultCode); + case 'Player not ignored.': + return new PlayerNotIgnoredException($faultString, $faultCode); case 'Not in Team mode.': return new NotInTeamModeException($faultString, $faultCode); case 'The map isn\'t in the current selection.': @@ -51,5 +55,7 @@ class NotInTeamModeException extends FaultException {} class MapNotInCurrentSelectionException extends FaultException{} class MapNotCompatibleOrCompleteException extends FaultException{} class LadderModeUnknownException extends FaultException{} +class PlayerAlreadyIgnoredException extends FaultException{} +class PlayerNotIgnoredException extends FaultException{} ?> diff --git a/application/core/Players/PlayerActions.php b/application/core/Players/PlayerActions.php index c7241980..0579f612 100644 --- a/application/core/Players/PlayerActions.php +++ b/application/core/Players/PlayerActions.php @@ -13,6 +13,7 @@ use ManiaControl\ManiaControl; use ManiaControl\Manialinks\ManialinkManager; use Maniaplanet\DedicatedServer\Xmlrpc\Exception; use Maniaplanet\DedicatedServer\Xmlrpc\NotInTeamModeException; +use Maniaplanet\DedicatedServer\Xmlrpc\PlayerAlreadyIgnoredException; use Maniaplanet\DedicatedServer\Xmlrpc\PlayerIsNotSpectatorException; /** @@ -242,7 +243,10 @@ class PlayerActions { return; } - $this->maniaControl->client->ignore($targetLogin); + try{ + $this->maniaControl->client->ignore($targetLogin); + }catch(PlayerAlreadyIgnoredException $e){ + } $title = $this->maniaControl->authenticationManager->getAuthLevelName($admin->authLevel); $chatMessage = $title . ' $<' . $admin->nickname . '$> muted $<' . $target->nickname . '$>!';