diff --git a/application/core/Players/PlayerCommands.php b/application/core/Players/PlayerCommands.php index 624ce2a5..7dbf724a 100644 --- a/application/core/Players/PlayerCommands.php +++ b/application/core/Players/PlayerCommands.php @@ -2,9 +2,7 @@ namespace ManiaControl\Players; -use FML\Controls\Quads\Quad_Icons128x128_1; use FML\Controls\Quads\Quad_Icons128x32_1; -use FML\Controls\Quads\Quad_Icons64x64_1; use FML\Controls\Quads\Quad_UIConstruction_Buttons; use ManiaControl\Admin\AuthenticationManager; use ManiaControl\Commands\CommandListener; @@ -20,10 +18,9 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Constants */ - const ACTION_BALANCE_TEAMS = 'PlayerCommands.BalanceTeams'; + const ACTION_BALANCE_TEAMS = 'PlayerCommands.BalanceTeams'; const ACTION_OPEN_PLAYERLIST = 'PlayerCommands.OpenPlayerList'; - const ACTION_CANCEL_VOTE = 'PlayerCommands.CancelVote'; - + /** * Private Properties */ @@ -36,7 +33,7 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { */ public function __construct(ManiaControl $maniaControl) { $this->maniaControl = $maniaControl; - + // Register for admin commands $this->maniaControl->commandManager->registerCommandListener('balance', $this, 'command_TeamBalance', true); $this->maniaControl->commandManager->registerCommandListener('teambalance', $this, 'command_TeamBalance', true); @@ -53,27 +50,18 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { $this->maniaControl->commandManager->registerCommandListener('removebots', $this, 'command_RemoveFakePlayers', true); $this->maniaControl->commandManager->registerCommandListener('mute', $this, 'command_MutePlayer', true); $this->maniaControl->commandManager->registerCommandListener('unmute', $this, 'command_UnmutePlayer', true); - // TODO: Move into another class - $this->maniaControl->commandManager->registerCommandListener('cancel', $this, 'command_CancelVote', true); - + // Register for player chat commands $this->maniaControl->commandManager->registerCommandListener('player', $this, 'command_playerList'); $this->maniaControl->commandManager->registerCommandListener('players', $this, 'command_playerList'); - + // Action Balance Teams $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_BALANCE_TEAMS, $this, 'command_TeamBalance'); $itemQuad = new Quad_Icons128x32_1(); $itemQuad->setSubStyle($itemQuad::SUBSTYLE_RT_Team); $itemQuad->setAction(self::ACTION_BALANCE_TEAMS); $this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 9, 'Balance Teams'); - - // Action cancel Vote - $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote'); - $itemQuad = new Quad_Icons64x64_1(); - $itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowRed); - $itemQuad->setAction(self::ACTION_CANCEL_VOTE); - $this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 6, 'Cancel Vote'); - + // Action Open Playerlist $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_OPEN_PLAYERLIST, $this, 'command_playerList'); $itemQuad = new Quad_UIConstruction_Buttons(); @@ -82,38 +70,20 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { $this->maniaControl->actionsMenu->addMenuItem($itemQuad, true, 15, 'Open Playerlist'); } - /** - * Handle //cancelvote command - * - * @param array $chatCallback - * @param Player $player - */ - public function command_CancelVote(array $chatCallback, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { - $this->maniaControl->authenticationManager->sendNotAllowed($player); - return; - } - $success = $this->maniaControl->client->query('CancelVote'); - if (!$success) { - $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); - return; - } - $this->maniaControl->chat->sendInformation('$<' . $player->nickname . '$> canceled the Vote!'); - } /** * Handle //teambalance command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function command_TeamBalance(array $chatCallback, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $success = $this->maniaControl->client->query('AutoTeamBalance'); - if (!$success) { + if(!$success) { $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); return; } @@ -123,22 +93,22 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //kick command * - * @param array $chat + * @param array $chat * @param Player $player */ public function command_Kick(array $chat, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $params = explode(' ', $chat[1][2], 3); - if (count($params) <= 1) { + if(count($params) <= 1) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//kick login'", $player->login); return; } $targetLogin = $params[1]; - $message = ''; - if (isset($params[2])) { + $message = ''; + if(isset($params[2])) { $message = $params[2]; } $this->maniaControl->playerManager->playerActions->kickPlayer($player->login, $targetLogin, $message); @@ -147,12 +117,12 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //warn Command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function command_Warn(array $chatCallback, Player $player) { $params = explode(' ', $chat[1][2], 3); - if (count($params) <= 1) { + if(count($params) <= 1) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//kick login'", $player->login); return; } @@ -163,26 +133,25 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //forcespec command * - * @param array $chat + * @param array $chat * @param Player $player */ public function command_ForceSpectator(array $chat, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $params = explode(' ', $chat[1][2]); - if (count($params) <= 1) { + if(count($params) <= 1) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//forcespec login'", $player->login); return; } $targetLogin = $params[1]; - - if (isset($params[2]) && is_numeric($params[2])) { - $type = (int) $params[2]; + + if(isset($params[2]) && is_numeric($params[2])) { + $type = (int)$params[2]; $this->maniaControl->playerManager->playerActions->forcePlayerToSpectator($player->login, $targetLogin, $type); - } - else { + } else { $this->maniaControl->playerManager->playerActions->forcePlayerToSpectator($player->login, $targetLogin); } } @@ -190,23 +159,23 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //forceplay command * - * @param array $chat + * @param array $chat * @param Player $player */ public function command_ForcePlay(array $chat, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $params = explode(' ', $chat[1][2]); - if (!isset($params[1])) { + if(!isset($params[1])) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//forceplay login'", $player->login); return; } $targetLogin = $params[1]; - + $type = 2; - if (isset($params[2]) && is_numeric($params[2])) { + if(isset($params[2]) && is_numeric($params[2])) { $type = intval($params[2]); } $this->maniaControl->playerManager->playerActions->forcePlayerToPlay($player->login, $targetLogin, $type); @@ -215,68 +184,68 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //forceblue command * - * @param array $chat + * @param array $chat * @param Player $player */ public function command_ForceBlue(array $chat, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $params = explode(' ', $chat[1][2]); - if (!isset($params[1])) { + if(!isset($params[1])) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//forceblue login'", $player->login); return; } $targetLogin = $params[1]; - + $this->maniaControl->playerManager->playerActions->forcePlayerToTeam($player->login, $targetLogin, PlayerActions::TEAM_BLUE); } /** * Handle //forcered command * - * @param array $chat + * @param array $chat * @param Player $player */ public function command_ForceRed(array $chat, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $params = explode(' ', $chat[1][2]); - if (!isset($params[1])) { + if(!isset($params[1])) { $this->maniaControl->chat->sendUsageInfo("No Login given! Example: '//forcered login'", $player->login); return; } $targetLogin = $params[1]; - + $this->maniaControl->playerManager->playerActions->forcePlayerToTeam($player->login, $targetLogin, PlayerActions::TEAM_RED); } /** * Handle //addfakeplayers command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function command_AddFakePlayers(array $chatCallback, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } - $amount = 1; + $amount = 1; $messageParts = explode(' ', $chatCallback[1][2]); - if (isset($messageParts[1]) && is_numeric($messageParts[1])) { + if(isset($messageParts[1]) && is_numeric($messageParts[1])) { $amount = intval($messageParts[1]); } $success = true; - for ($i = 0; $i < $amount; $i++) { - if (!$this->maniaControl->client->query('ConnectFakePlayer')) { + for($i = 0; $i < $amount; $i++) { + if(!$this->maniaControl->client->query('ConnectFakePlayer')) { $success = false; } } - if (!$success) { + if(!$success) { $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); return; } @@ -286,16 +255,16 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //removefakeplayers command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function command_RemoveFakePlayers(array $chatCallback, Player $player) { - if (!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)) { $this->maniaControl->authenticationManager->sendNotAllowed($player); return; } $success = $this->maniaControl->client->query('DisconnectFakePlayer', '*'); - if (!$success) { + if(!$success) { $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); return; } @@ -305,12 +274,12 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //mute Command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $admin */ public function command_MutePlayer(array $chatCallback, Player $admin) { $commandParts = explode(' ', $chatCallback[1][2]); - if (count($commandParts) <= 1) { + if(count($commandParts) <= 1) { $this->maniaControl->chat->sendUsageInfo("No login specified! Example: '//mute login'"); return; } @@ -321,12 +290,12 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle //unmute Command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $admin */ public function command_UnmutePlayer(array $chatCallback, Player $admin) { $commandParts = explode(' ', $chatCallback[1][2]); - if (count($commandParts) <= 1) { + if(count($commandParts) <= 1) { $this->maniaControl->chat->sendUsageInfo("No login specified! Example: '//unmute login'"); return; } @@ -337,7 +306,7 @@ class PlayerCommands implements CommandListener, ManialinkPageAnswerListener { /** * Handle Player list command * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function command_playerList(array $chatCallback, Player $player) { diff --git a/application/core/Server/ServerCommands.php b/application/core/Server/ServerCommands.php index f725e30a..b7c4d41b 100644 --- a/application/core/Server/ServerCommands.php +++ b/application/core/Server/ServerCommands.php @@ -3,6 +3,7 @@ namespace ManiaControl\Server; use FML\Controls\Quads\Quad_Icons128x32_1; +use FML\Controls\Quads\Quad_Icons64x64_1; use ManiaControl\Admin\AuthenticationManager; use ManiaControl\Callbacks\CallbackListener; use ManiaControl\Callbacks\CallbackManager; @@ -20,8 +21,8 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage /** * Constants */ - const ACTION_SET_PAUSE = 'ServerCommands.SetPause'; - + const ACTION_SET_PAUSE = 'ServerCommands.SetPause'; + const ACTION_CANCEL_VOTE = 'ServerCommands.CancelVote'; /** * Private properties */ @@ -55,16 +56,40 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage $this->maniaControl->commandManager->registerCommandListener('enablehorns', $this, 'command_EnableHorns', true); $this->maniaControl->commandManager->registerCommandListener('disablehorns', $this, 'command_DisableHorns', true); - + $this->maniaControl->commandManager->registerCommandListener('cancel', $this, 'command_CancelVote', true); $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_SET_PAUSE, $this, 'setPause'); - //TODO correct class? // Set Pause $itemQuad = new Quad_Icons128x32_1(); //TODO check if mode supports it $itemQuad->setSubStyle($itemQuad::SUBSTYLE_ManiaLinkSwitch); $itemQuad->setAction(self::ACTION_SET_PAUSE); $this->maniaControl->actionsMenu->addAdminMenuItem($itemQuad, 1, 'Pauses the current game.'); + // Action cancel Vote + $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote'); + $itemQuad = new Quad_Icons64x64_1(); + $itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowRed); + $itemQuad->setAction(self::ACTION_CANCEL_VOTE); + $this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 6, 'Cancel Vote'); + } + + /** + * Handle //cancelvote command + * + * @param array $chatCallback + * @param Player $player + */ + public function command_CancelVote(array $chatCallback, Player $player) { + if(!$this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + $this->maniaControl->authenticationManager->sendNotAllowed($player); + return; + } + $success = $this->maniaControl->client->query('CancelVote'); + if(!$success) { + $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); + return; + } + $this->maniaControl->chat->sendInformation('$<' . $player->nickname . '$> canceled the Vote!'); } /**