Added replay votes + admin replay
This commit is contained in:
		
				
					committed by
					
						 Steffen Schröder
						Steffen Schröder
					
				
			
			
				
	
			
			
			
						parent
						
							e6fdb070a1
						
					
				
				
					commit
					74d963cca5
				
			| @@ -46,6 +46,7 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb | ||||
| 		// Register for admin chat commands | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('nextmap', 'next', 'skip'), $this, 'command_NextMap', true); | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('restartmap', 'resmap', 'res'), $this, 'command_RestartMap', true); | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('replaymap', 'replay'), $this, 'command_ReplayMap', true); | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('addmap', 'add'), $this, 'command_AddMap', true); | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('removemap', 'removethis', 'erasemap', 'erasethis'), $this, 'command_RemoveMap', true); | ||||
| 		$this->maniaControl->commandManager->registerCommandListener(array('shufflemaps', 'shuffle'), $this, 'command_ShuffleMaps', true); | ||||
| @@ -215,6 +216,25 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	////$this->maniaControl->mapManager->mapQueue->addFirstMapToMapQueue($this->currentVote->voter, $this->maniaControl->mapManager->getCurrentMap()); | ||||
| 	/** | ||||
| 	 * Handle replaymap command | ||||
| 	 * | ||||
| 	 * @param array                        $chat | ||||
| 	 * @param \ManiaControl\Players\Player $player | ||||
| 	 */ | ||||
| 	public function command_ReplayMap(array $chat, Player $player) { | ||||
| 		if (!$this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_RESTART_MAP)) { | ||||
| 			$this->maniaControl->authenticationManager->sendNotAllowed($player); | ||||
| 			return; | ||||
| 		} | ||||
| 		$message = '$<' . $player->nickname . '$> replays the current Map!'; | ||||
| 		$this->maniaControl->chat->sendSuccess($message); | ||||
| 		$this->maniaControl->log($message, true); | ||||
|  | ||||
| 		$this->maniaControl->mapManager->mapQueue->addFirstMapToMapQueue($player, $this->maniaControl->mapManager->getCurrentMap()); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Handle /maps command | ||||
| 	 * | ||||
|   | ||||
| @@ -91,6 +91,16 @@ class MapQueue implements CallbackListener, CommandListener { | ||||
| 		$this->maniaControl->callbackManager->triggerCallback(self::CB_MAPQUEUE_CHANGED, array('clear')); | ||||
| 	} | ||||
|  | ||||
| 	public function addFirstMapToMapQueue($player, $map) { | ||||
| 		if ($map) { | ||||
| 			if (array_key_exists($map->uid, $this->queuedMaps)) { | ||||
| 				unset($this->queuedMaps[$map->uid]); | ||||
| 			} | ||||
|  | ||||
| 			array_unshift($this->queuedMaps, array($player, $map)); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	/** | ||||
| 	 * Adds a Map to the map-queue | ||||
|   | ||||
| @@ -136,6 +136,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP | ||||
| 		$this->defineVote("restartmap", "Vote for Restart Map"); | ||||
| 		$this->defineVote("restart", "Vote for Restart Map"); | ||||
| 		$this->defineVote("pausegame", "Vote for Pause Game"); | ||||
| 		$this->defineVote("replay", "Vote to replay current map"); | ||||
|  | ||||
| 		foreach($this->voteCommands as $name => $voteCommand) { | ||||
| 			$this->maniaControl->commandManager->registerCommandListener($name, $this, 'handleChatVote'); | ||||
| @@ -330,6 +331,10 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP | ||||
| 					$this->maniaControl->client->sendModeScriptCommands(array('Command_ForceWarmUp' => True)); | ||||
| 					$this->maniaControl->chat->sendInformation('$s$f8fVote to $fffpause the current game$f8f has been successfull!'); | ||||
| 					break; | ||||
| 				case 'replay': | ||||
| 					$this->maniaControl->mapManager->mapQueue->addFirstMapToMapQueue($this->currentVote->voter, $this->maniaControl->mapManager->getCurrentMap()); | ||||
| 					$this->maniaControl->chat->sendInformation('$s$f8fVote to $fffreplay the map$f8f has been successfull!'); | ||||
| 					break; | ||||
| 			} | ||||
| 		} else { | ||||
| 			$this->maniaControl->chat->sendError('Vote Failed!'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user