improved mc quit handling
This commit is contained in:
		| @@ -89,7 +89,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener { | |||||||
| 	/* | 	/* | ||||||
| 	 * Private Properties | 	 * Private Properties | ||||||
| 	 */ | 	 */ | ||||||
| 	private $shutdownRequested = false; | 	private $requestQuitMessage = null; | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Construct ManiaControl | 	 * Construct ManiaControl | ||||||
| @@ -280,7 +280,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener { | |||||||
| 			$this->authenticationManager->sendNotAllowed($player); | 			$this->authenticationManager->sendNotAllowed($player); | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 		$this->quit("ManiaControl Shutdown requested by '{$player->login}'!"); | 		$this->requestQuit("ManiaControl Shutdown requested by '{$player->login}'!"); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -317,12 +317,12 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener { | |||||||
| 		$this->chat->sendInformation('ManiaControl v' . self::VERSION . ' successfully started!'); | 		$this->chat->sendInformation('ManiaControl v' . self::VERSION . ' successfully started!'); | ||||||
|  |  | ||||||
| 		// Main loop | 		// Main loop | ||||||
| 		while (!$this->shutdownRequested) { | 		while (!$this->requestQuitMessage) { | ||||||
| 			$this->loop(); | 			$this->loop(); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		// Shutdown | 		// Shutdown | ||||||
| 		$this->quit(); | 		$this->quit($this->requestQuitMessage); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -399,6 +399,15 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener { | |||||||
| 	 * Handle Server Stop Callback | 	 * Handle Server Stop Callback | ||||||
| 	 */ | 	 */ | ||||||
| 	public function handleServerStopCallback() { | 	public function handleServerStopCallback() { | ||||||
| 		$this->quit('The Server has been shut down!'); | 		$this->requestQuit('The Server has been shut down!'); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Request ManiaControl to quit | ||||||
|  | 	 * | ||||||
|  | 	 * @param mixed $message | ||||||
|  | 	 */ | ||||||
|  | 	public function requestQuit($message = true) { | ||||||
|  | 		$this->requestQuitMessage = $message; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -233,9 +233,9 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | |||||||
| 	 * | 	 * | ||||||
| 	 * @param string $login | 	 * @param string $login | ||||||
| 	 */ | 	 */ | ||||||
| 	private function shutdownServer($login = '#') { | 	private function shutdownServer($login = '-') { | ||||||
|  | 		$this->maniaControl->log("Server shutdown requested by '{$login}'!"); | ||||||
| 		$this->maniaControl->client->stopServer(); | 		$this->maniaControl->client->stopServer(); | ||||||
| 		$this->maniaControl->quit("Server shutdown requested by '{$login}'"); |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user