extend / end warmup
This commit is contained in:
		
				
					committed by
					
						 Steffen Schröder
						Steffen Schröder
					
				
			
			
				
	
			
			
			
						parent
						
							b889bd9329
						
					
				
				
					commit
					3e06870f12
				
			| @@ -57,7 +57,7 @@ class AdminLists implements ManialinkPageAnswerListener, CallbackListener { | |||||||
| 		$itemQuad = new Quad_UIConstruction_Buttons(); | 		$itemQuad = new Quad_UIConstruction_Buttons(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Author); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Author); | ||||||
| 		$itemQuad->setAction(self::ACTION_OPEN_ADMINLISTS); | 		$itemQuad->setAction(self::ACTION_OPEN_ADMINLISTS); | ||||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Open Adminlist'); | 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 50, 'Open Adminlist'); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public function openAdminList(array $callback, Player $player) { | 	public function openAdminList(array $callback, Player $player) { | ||||||
|   | |||||||
| @@ -362,6 +362,6 @@ class Configurator implements CallbackListener, CommandListener, ManialinkPageAn | |||||||
| 		$itemQuad = new Quad_UIConstruction_Buttons(); | 		$itemQuad = new Quad_UIConstruction_Buttons(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Tools); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Tools); | ||||||
| 		$itemQuad->setAction(self::ACTION_TOGGLEMENU); | 		$itemQuad->setAction(self::ACTION_TOGGLEMENU); | ||||||
| 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 20, 'Settings'); | 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 100, 'Settings'); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -80,13 +80,13 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb | |||||||
| 		$itemQuad = new Quad_UIConstruction_Buttons(); | 		$itemQuad = new Quad_UIConstruction_Buttons(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Reload); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_Reload); | ||||||
| 		$itemQuad->setAction(self::ACTION_RESTART_MAP); | 		$itemQuad->setAction(self::ACTION_RESTART_MAP); | ||||||
| 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 0, 'Restart Map'); | 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 10, 'Restart Map'); | ||||||
|  |  | ||||||
| 		// Menu NextMap | 		// Menu NextMap | ||||||
| 		$itemQuad = new Quad_Icons64x64_1(); | 		$itemQuad = new Quad_Icons64x64_1(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastNext); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowFastNext); | ||||||
| 		$itemQuad->setAction(self::ACTION_SKIP_MAP); | 		$itemQuad->setAction(self::ACTION_SKIP_MAP); | ||||||
| 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 2, 'Skip Map'); | 		$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 20, 'Skip Map'); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { | |||||||
| 		$itemQuad = new Quad_Icons128x32_1(); | 		$itemQuad = new Quad_Icons128x32_1(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_RT_Team); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_RT_Team); | ||||||
| 		$itemQuad->setAction(self::ACTION_BALANCE_TEAMS); | 		$itemQuad->setAction(self::ACTION_BALANCE_TEAMS); | ||||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 9, 'Balance Teams'); | 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 40, 'Balance Teams'); | ||||||
|  |  | ||||||
| 		// Action Open Playerlist | 		// Action Open Playerlist | ||||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_PLAYERLIST, $this, 'command_playerList'); | 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_PLAYERLIST, $this, 'command_playerList'); | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
|  |  | ||||||
| namespace ManiaControl\Server; | namespace ManiaControl\Server; | ||||||
|  |  | ||||||
|  | use FML\Controls\Quads\Quad_BgRaceScore2; | ||||||
| use FML\Controls\Quads\Quad_Icons128x32_1; | use FML\Controls\Quads\Quad_Icons128x32_1; | ||||||
| use FML\Controls\Quads\Quad_Icons64x64_1; | use FML\Controls\Quads\Quad_Icons64x64_1; | ||||||
| use ManiaControl\Admin\AuthenticationManager; | use ManiaControl\Admin\AuthenticationManager; | ||||||
| @@ -23,10 +24,13 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | |||||||
| 	 * Constants | 	 * Constants | ||||||
| 	 */ | 	 */ | ||||||
| 	const ACTION_SET_PAUSE                         = 'ServerCommands.SetPause'; | 	const ACTION_SET_PAUSE                         = 'ServerCommands.SetPause'; | ||||||
|  | 	const ACTION_EXTEND_WARMUP                     = 'ServerCommands.ExtendWarmup'; | ||||||
|  | 	const ACTION_END_WARMUP                        = 'ServerCommands.EndWarmup'; | ||||||
| 	const ACTION_CANCEL_VOTE                       = 'ServerCommands.CancelVote'; | 	const ACTION_CANCEL_VOTE                       = 'ServerCommands.CancelVote'; | ||||||
| 	const CB_VOTE_CANCELED                         = 'ServerCommands.VoteCanceled'; | 	const CB_VOTE_CANCELED                         = 'ServerCommands.VoteCanceled'; | ||||||
| 	const SETTING_PERMISSION_CANCEL_VOTE           = 'Cancel Vote'; | 	const SETTING_PERMISSION_CANCEL_VOTE           = 'Cancel Vote'; | ||||||
| 	const SETTING_PERMISSION_SET_PAUSE             = 'Set Pause'; | 	const SETTING_PERMISSION_SET_PAUSE             = 'Set Pause'; | ||||||
|  | 	const SETTING_PERMISSION_HANDLE_WARMUP         = 'Handle Warmup'; | ||||||
| 	const SETTING_PERMISSION_SHOW_SYSTEMINFO       = 'Show SystemInfo'; | 	const SETTING_PERMISSION_SHOW_SYSTEMINFO       = 'Show SystemInfo'; | ||||||
| 	const SETTING_PERMISSION_SHUTDOWN_SERVER       = 'Shutdown Server'; | 	const SETTING_PERMISSION_SHUTDOWN_SERVER       = 'Shutdown Server'; | ||||||
| 	const SETTING_PERMISSION_CHANGE_SERVERSETTINGS = 'Change ServerSettings'; | 	const SETTING_PERMISSION_CHANGE_SERVERSETTINGS = 'Change ServerSettings'; | ||||||
| @@ -75,6 +79,7 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | |||||||
| 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CHANGE_SERVERSETTINGS, AuthenticationManager::AUTH_LEVEL_ADMIN); | 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CHANGE_SERVERSETTINGS, AuthenticationManager::AUTH_LEVEL_ADMIN); | ||||||
| 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_SET_PAUSE, AuthenticationManager::AUTH_LEVEL_MODERATOR); | 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_SET_PAUSE, AuthenticationManager::AUTH_LEVEL_MODERATOR); | ||||||
| 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CANCEL_VOTE, AuthenticationManager::AUTH_LEVEL_MODERATOR); | 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CANCEL_VOTE, AuthenticationManager::AUTH_LEVEL_MODERATOR); | ||||||
|  | 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_HANDLE_WARMUP, AuthenticationManager::AUTH_LEVEL_MODERATOR); | ||||||
|  |  | ||||||
| 		//Check if Pause exists in current GameMode | 		//Check if Pause exists in current GameMode | ||||||
| 		$scriptInfos = $this->maniaControl->client->getModeScriptInfo(); | 		$scriptInfos = $this->maniaControl->client->getModeScriptInfo(); | ||||||
| @@ -92,15 +97,29 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | |||||||
| 			$itemQuad = new Quad_Icons128x32_1(); | 			$itemQuad = new Quad_Icons128x32_1(); | ||||||
| 			$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ManiaLinkSwitch); | 			$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ManiaLinkSwitch); | ||||||
| 			$itemQuad->setAction(self::ACTION_SET_PAUSE); | 			$itemQuad->setAction(self::ACTION_SET_PAUSE); | ||||||
| 			$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 1, 'Pauses the current game'); | 			$this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 13, 'Pauses the current game'); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		// Extend WarmUp | ||||||
|  | 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_EXTEND_WARMUP, $this, 'command_extendWarmup'); | ||||||
|  | 		$itemQuad = new Quad_BgRaceScore2(); | ||||||
|  | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_SendScore); | ||||||
|  | 		$itemQuad->setAction(self::ACTION_EXTEND_WARMUP); | ||||||
|  | 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Extend Warmup'); | ||||||
|  |  | ||||||
|  | 		// Stop WarmUp | ||||||
|  | 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_END_WARMUP, $this, 'command_endWarmup'); | ||||||
|  | 		$itemQuad = new Quad_Icons64x64_1(); | ||||||
|  | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowGreen); | ||||||
|  | 		$itemQuad->setAction(self::ACTION_END_WARMUP); | ||||||
|  | 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 15, 'End Warmup'); | ||||||
|  |  | ||||||
| 		// Action cancel Vote | 		// Action cancel Vote | ||||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote'); | 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote'); | ||||||
| 		$itemQuad = new Quad_Icons64x64_1(); | 		$itemQuad = new Quad_Icons64x64_1(); | ||||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowRed); | 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowRed); | ||||||
| 		$itemQuad->setAction(self::ACTION_CANCEL_VOTE); | 		$itemQuad->setAction(self::ACTION_CANCEL_VOTE); | ||||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 6, 'Cancel Vote'); | 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 30, 'Cancel Vote'); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -122,6 +141,51 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | |||||||
| 		$this->maniaControl->callbackManager->triggerCallback(self::CB_VOTE_CANCELED, array(self::CB_VOTE_CANCELED, $player)); | 		$this->maniaControl->callbackManager->triggerCallback(self::CB_VOTE_CANCELED, array(self::CB_VOTE_CANCELED, $player)); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Extends the Warmup | ||||||
|  | 	 * | ||||||
|  | 	 * @param array  $callback | ||||||
|  | 	 * @param Player $player | ||||||
|  | 	 */ | ||||||
|  | 	public function command_extendWarmup(array $callback, Player $player) { | ||||||
|  | 		if (!$this->maniaControl->authenticationManager->checkPermission($player, self::SETTING_PERMISSION_HANDLE_WARMUP)) { | ||||||
|  | 			$this->maniaControl->authenticationManager->sendNotAllowed($player); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		try { | ||||||
|  | 			$this->maniaControl->client->triggerModeScriptEvent('WarmUp_Extend', '10'); | ||||||
|  | 		} catch(\Exception $e) { | ||||||
|  | 			$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->maniaControl->chat->sendInformation('$<' . $player->nickname . '$> extended the WarmUp by 10 seconds!'); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Ends the Warmup | ||||||
|  | 	 * | ||||||
|  | 	 * @param array  $callback | ||||||
|  | 	 * @param Player $player | ||||||
|  | 	 */ | ||||||
|  | 	public function command_endWarmup(array $callback, Player $player) { | ||||||
|  | 		if (!$this->maniaControl->authenticationManager->checkPermission($player, self::SETTING_PERMISSION_HANDLE_WARMUP)) { | ||||||
|  | 			$this->maniaControl->authenticationManager->sendNotAllowed($player); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		try { | ||||||
|  | 			$this->maniaControl->client->triggerModeScriptEvent('WarmUp_Stop', ''); | ||||||
|  | 		} catch(\Exception $e) { | ||||||
|  | 			$this->maniaControl->chat->sendError('Error occurred: ' . $e->getMessage(), $player->login); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->maniaControl->chat->sendInformation('$<' . $player->nickname . '$> stopped the WarmUp!'); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Breaks the current game | 	 * Breaks the current game | ||||||
| 	 * | 	 * | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user