151 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| /**
 | |
|  * ManiaPlanet dedicated server Xml-RPC client
 | |
|  *
 | |
|  * @license     http://www.gnu.org/licenses/lgpl.html LGPL License 3
 | |
|  */
 | |
| 
 | |
| namespace Maniaplanet\DedicatedServer\Xmlrpc;
 | |
| 
 | |
| class FaultException extends Exception {
 | |
| 	static function create($faultString, $faultCode) {
 | |
| 		switch ($faultString) {
 | |
| 			case 'Password incorrect.':
 | |
| 			case 'Permission denied.':
 | |
| 				return new AuthenticationException($faultString, $faultCode);
 | |
| 			case 'not connected to the internet':
 | |
| 			case 'Not connected to the masterserver.':
 | |
| 			case 'Not a game server.':
 | |
| 			case 'Not a server.':
 | |
| 			case 'Couldn\'t create the fake player.':
 | |
| 			case 'Only server can receive a callvote':
 | |
| 			case 'No map currently loaded.':
 | |
| 			case 'No replay to save':
 | |
| 			case 'Internal error.':
 | |
| 			case 'Unable to retrieve validation data. ':
 | |
| 			case 'No new replay.':
 | |
| 				return new UnavailableFeatureException($faultString, $faultCode);
 | |
| 			case 'You must enable the callbacks to be able to do chat routing.':
 | |
| 			case 'Chat routing not enabled.':
 | |
| 			case 'Script cloud disabled.':
 | |
| 			case 'Already waiting for a vote.':
 | |
| 			case 'You must stop server first.':
 | |
| 				return new LockedFeatureException($faultString, $faultCode);
 | |
| 			case 'Login or Uid unknown.':
 | |
| 			case 'Login unknown.':
 | |
| 			case 'Payer login unknown.':
 | |
| 				return new UnknownPlayerException($faultString, $faultCode);
 | |
| 			case 'The player is not a spectator':
 | |
| 			case 'The player is not a spectator.':
 | |
| 			case 'Not a network player.':
 | |
| 			case 'Player is not a fake player':
 | |
| 				return new PlayerStateException($faultString, $faultCode);
 | |
| 			case 'Player already ignored.':
 | |
| 			case 'Player already black listed.':
 | |
| 			case 'Player already on guest list.':
 | |
| 			case 'Map already added.':
 | |
| 				return new AlreadyInListException($faultString, $faultCode);
 | |
| 			case 'Login not banned.':
 | |
| 			case 'Player not ignored.':
 | |
| 			case 'Player not black listed.':
 | |
| 			case 'Player not on guest list.':
 | |
| 			case 'Map not in the selection.':
 | |
| 			case 'The map isn\'t in the current selection.':
 | |
| 			case 'Map not found.':
 | |
| 				return new NotInListException($faultString, $faultCode);
 | |
| 			case 'Start index out of bound.':
 | |
| 			case 'invalid index':
 | |
| 				return new IndexOutOfBoundException($faultString, $faultCode);
 | |
| 			case 'the next map must be different from the current one.':
 | |
| 			case 'No next map currently defined.':
 | |
| 				return new NextMapException($faultString, $faultCode);
 | |
| 			case 'Change in progress.':
 | |
| 				return new ChangeInProgressException($faultString, $faultCode);
 | |
| 			case 'Incompatible map type.':
 | |
| 			case 'Map not complete.':
 | |
| 			case 'Map corrupted.':
 | |
| 			case 'Map lightmap is not up to date.':
 | |
| 			case 'Map lightmap is not up to date. (will still load for now)':
 | |
| 			case 'The map doesn\'t match the server packmask.':
 | |
| 			case 'The map environment is not available on the server (doesn\'t match the server packmask).':
 | |
| 				return new InvalidMapException($faultString, $faultCode);
 | |
| 			case 'Ladder mode unknown.':
 | |
| 			case 'You cannot change the max players count: AllowSpectatorRelays is activated.':
 | |
| 			case 'You cannot change the max spectators count: AllowSpectatorRelays is activated.':
 | |
| 			case 'There are too many players':
 | |
| 			case 'There are too many spectators':
 | |
| 			case 'Unknown hideserver value':
 | |
| 				return new ServerOptionsException($faultString, $faultCode);
 | |
| 			case 'New mode unknown.':
 | |
| 			case 'You need to stop the server to change to/from script mode.':
 | |
| 			case 'Not in script mode.':
 | |
| 			case 'Not in Team mode.':
 | |
| 			case 'Not in Rounds or Laps mode.':
 | |
| 			case 'The scores must be decreasing.':
 | |
| 			case 'No current script.':
 | |
| 				return new GameModeException($faultString, $faultCode);
 | |
| 			case 'couldn\'t write file.':
 | |
| 			case 'Unable to write the black list file.':
 | |
| 			case 'Unable to write the guest list file.':
 | |
| 			case 'Unable to write the playlist file.':
 | |
| 			case 'Could not save file.':
 | |
| 			case 'Map unknown.':
 | |
| 			case 'The playlist file does not exist.':
 | |
| 			case 'Invalid url or file.':
 | |
| 			case 'Invalid url.':
 | |
| 			case 'No map to export in playlist.':
 | |
| 				return new FileException($faultString, $faultCode);
 | |
| 		}
 | |
| 		if (preg_match('~^Unknown setting \'.*\'\.$~iu', $faultString)) {
 | |
| 			return new GameModeException($faultString, $faultCode);
 | |
| 		}
 | |
| 		if (preg_match('~^Couldn\'t load \'.*\'\.$~iu', $faultString)) {
 | |
| 			return new FileException($faultString, $faultCode);
 | |
| 		}
 | |
| 
 | |
| 		return new self($faultString, $faultCode);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| class AuthenticationException extends FaultException {
 | |
| }
 | |
| 
 | |
| class UnavailableFeatureException extends FaultException {
 | |
| }
 | |
| 
 | |
| class LockedFeatureException extends FaultException {
 | |
| }
 | |
| 
 | |
| class UnknownPlayerException extends FaultException {
 | |
| }
 | |
| 
 | |
| class PlayerStateException extends FaultException {
 | |
| }
 | |
| 
 | |
| class AlreadyInListException extends FaultException {
 | |
| }
 | |
| 
 | |
| class NotInListException extends FaultException {
 | |
| }
 | |
| 
 | |
| class IndexOutOfBoundException extends FaultException {
 | |
| }
 | |
| 
 | |
| class NextMapException extends FaultException {
 | |
| }
 | |
| 
 | |
| class ChangeInProgressException extends FaultException {
 | |
| }
 | |
| 
 | |
| class InvalidMapException extends FaultException {
 | |
| }
 | |
| 
 | |
| class GameModeException extends FaultException {
 | |
| }
 | |
| 
 | |
| class ServerOptionsException extends FaultException {
 | |
| }
 | |
| 
 | |
| class FileException extends FaultException {
 | |
| }
 |