improved error handling
This commit is contained in:
		@@ -6,7 +6,6 @@ use ManiaControl\Commands\CommandListener;
 | 
			
		||||
use ManiaControl\ManiaControl;
 | 
			
		||||
use ManiaControl\Players\Player;
 | 
			
		||||
use ManiaControl\Plugins\Plugin;
 | 
			
		||||
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
 | 
			
		||||
use Maniaplanet\DedicatedServer\Xmlrpc\UnknownPlayerException;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -362,11 +361,8 @@ class ChatMessagePlugin implements CommandListener, Plugin {
 | 
			
		||||
		$message = '$39F Thanks for Playing, see you around!$z';
 | 
			
		||||
		try {
 | 
			
		||||
			$this->maniaControl->client->kick($player->login, $message);
 | 
			
		||||
		} catch (Exception $e) {
 | 
			
		||||
			$this->maniaControl->errorHandler->triggerDebugNotice("ChatMessagePlugin Debug Line 316: " . $e->getMessage());
 | 
			
		||||
			// TODO: only possible valid exception should be "wrong login" - throw others (like connection error)
 | 
			
		||||
			$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login);
 | 
			
		||||
			return;
 | 
			
		||||
		} catch (UnknownPlayerException $exception) {
 | 
			
		||||
			$this->maniaControl->chat->sendException($exception, $player);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -377,12 +373,11 @@ class ChatMessagePlugin implements CommandListener, Plugin {
 | 
			
		||||
	 * @param Player $player
 | 
			
		||||
	 */
 | 
			
		||||
	public function chat_ragequit(array $chat, Player $player) {
 | 
			
		||||
		$msg = '$i$ff0 $<' . $player->nickname . '$>$s$f00 said: "@"#!" and ragequitted!';
 | 
			
		||||
		$this->maniaControl->chat->sendChat($msg, null, true);
 | 
			
		||||
 | 
			
		||||
		$message = '$39F Thanks for Playing, please come back soon!$z ';
 | 
			
		||||
		try {
 | 
			
		||||
			$message = '$39F Thanks for Playing, please come back soon!$z ';
 | 
			
		||||
			$this->maniaControl->client->kick($player->login, $message);
 | 
			
		||||
			$msg = '$i$ff0 $<' . $player->nickname . '$>$s$f00 said: "@"#!" and ragequitted!';
 | 
			
		||||
			$this->maniaControl->chat->sendChat($msg, null, true);
 | 
			
		||||
		} catch (UnknownPlayerException $e) {
 | 
			
		||||
			$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player);
 | 
			
		||||
		}
 | 
			
		||||
@@ -398,31 +393,21 @@ class ChatMessagePlugin implements CommandListener, Plugin {
 | 
			
		||||
		$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iAway From Keyboard!';
 | 
			
		||||
		$this->maniaControl->chat->sendChat($msg, null, false);
 | 
			
		||||
 | 
			
		||||
		if ($this->maniaControl->settingManager->getSettingValue($this, self::SETTING_AFK_FORCE_SPEC)) {
 | 
			
		||||
			if ($player->isSpectator) {
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
		if (!$this->maniaControl->settingManager->getSettingValue($this, self::SETTING_AFK_FORCE_SPEC)) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		if ($player->isSpectator) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
			// force into spec
 | 
			
		||||
			try {
 | 
			
		||||
				$this->maniaControl->client->forceSpectator($player->login, 3);
 | 
			
		||||
			} catch (Exception $e) {
 | 
			
		||||
				$this->maniaControl->errorHandler->triggerDebugNotice("ChatMessagePlugin Debug Line " . $e->getLine() . ": " . $e->getMessage());
 | 
			
		||||
				// TODO: only possible valid exception should be "wrong login" - throw others (like connection error)
 | 
			
		||||
				$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login);
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// free player slot
 | 
			
		||||
			try {
 | 
			
		||||
				$this->maniaControl->client->spectatorReleasePlayerSlot($player->login);
 | 
			
		||||
			} catch (Exception $e) {
 | 
			
		||||
				if ($e->getMessage() !== 'The player is not a spectator') {
 | 
			
		||||
					$this->maniaControl->errorHandler->triggerDebugNotice("ChatMessagePlugin Debug Line " . $e->getLine() . ": " . $e->getMessage());
 | 
			
		||||
					// TODO: only possible valid exception should be "wrong login" - throw others (like connection error)
 | 
			
		||||
					//to nothing
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		try {
 | 
			
		||||
			// Force into spec
 | 
			
		||||
			$this->maniaControl->client->forceSpectator($player->login, 3);
 | 
			
		||||
			// Free player slot
 | 
			
		||||
			$this->maniaControl->client->spectatorReleasePlayerSlot($player->login);
 | 
			
		||||
		} catch (UnknownPlayerException $exception) {
 | 
			
		||||
			$this->maniaControl->chat->sendException($exception, $player);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user