maniaControl = $maniaControl; $this->maniaControl->commandManager->registerCommandListener('me', $this, 'chat_me'); $this->maniaControl->commandManager->registerCommandListener('hi', $this, 'chat_hi'); $this->maniaControl->commandManager->registerCommandListener('bye', $this, 'chat_bye'); $this->maniaControl->commandManager->registerCommandListener('bb', $this, 'chat_bye'); $this->maniaControl->commandManager->registerCommandListener('thx', $this, 'chat_thx'); $this->maniaControl->commandManager->registerCommandListener('gg', $this, 'chat_gg'); $this->maniaControl->commandManager->registerCommandListener('gl', $this, 'chat_gl'); $this->maniaControl->commandManager->registerCommandListener('hf', $this, 'chat_hf'); $this->maniaControl->commandManager->registerCommandListener('glhf', $this, 'chat_glhf'); $this->maniaControl->commandManager->registerCommandListener('ns', $this, 'chat_ns'); $this->maniaControl->commandManager->registerCommandListener('n1', $this, 'chat_n1'); $this->maniaControl->commandManager->registerCommandListener('lol', $this, 'chat_lol'); $this->maniaControl->commandManager->registerCommandListener('lool', $this, 'chat_lool'); $this->maniaControl->commandManager->registerCommandListener('brb', $this, 'chat_brb'); $this->maniaControl->commandManager->registerCommandListener('bgm', $this, 'chat_bgm'); $this->maniaControl->commandManager->registerCommandListener('afk', $this, 'chat_afk'); $this->maniaControl->commandManager->registerCommandListener('bootme', $this, 'chat_bootme'); $this->maniaControl->commandManager->registerCommandListener('ragequit', $this, 'chat_ragequit'); $this->maniaControl->commandManager->registerCommandListener('rq', $this, 'chat_ragequit'); $this->maniaControl->settingManager->initSetting($this, self::SETTING_AFK_FORCE_SPEC, true); return true; } /** * Unload the plugin and its resources */ public function unload() { $this->maniaControl->commandManager->unregisterCommandListener($this); unset($this->maniaControl); } /** * Builds a chat message starting with the player's nickname, can used to express emotions * * @param array $chat * @param Player $player */ public function chat_me(array $chat, Player $player) { $message = substr($chat[1][2], 4); $msg = '$<' . $player->nickname . '$>$s$i$fa0 ' . $message; $this->maniaControl->chat->sendChat($msg, null, false); } /** * Hello Message * * @param array $chat * @param Player $player */ public function chat_hi(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iHello $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iHello All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Bye Message * * @param array $chat * @param Player $player */ public function chat_bye(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iBye $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iI have to go... Bye All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Thx Message * * @param array $chat * @param Player $player */ public function chat_thx(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iThanks $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iThanks All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Good Game Message * * @param array $chat * @param Player $player */ public function chat_gg(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Game $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Game All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Good Luck Message * * @param array $chat * @param Player $player */ public function chat_gl(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Luck $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Luck All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Have Fun Message * * @param array $chat * @param Player $player */ public function chat_hf(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iHave Fun $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iHave Fun All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Good Luck and Have Fun Message * * @param array $chat * @param Player $player */ public function chat_glhf(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Luck and Have Fun $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iGood Luck and Have Fun All!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Nice Shot Message * * @param array $chat * @param Player $player */ public function chat_ns(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iNice Shot $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iNice Shot!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Nice one Message * * @param array $chat * @param Player $player */ public function chat_n1(array $chat, Player $player) { $command = explode(" ", $chat[1][2]); if (isset($command[1])) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iNice One $z$<' . $this->getTarget($command[1]) . '$>$i!'; } else { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iNice One!'; } $this->maniaControl->chat->sendChat($msg, null, false); } /** * Lol! Message * * @param array $chat * @param Player $player */ public function chat_lol(array $chat, Player $player) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iLoL!'; $this->maniaControl->chat->sendChat($msg, null, false); } /** * LooOOooL! Message * * @param array $chat * @param Player $player */ public function chat_lool(array $chat, Player $player) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iLooOOooL!'; $this->maniaControl->chat->sendChat($msg, null, false); } /** * Be right back Message * * @param array $chat * @param Player $player */ public function chat_brb(array $chat, Player $player) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iBe Right Back!'; $this->maniaControl->chat->sendChat($msg, null, false); } /** * Bad game for me Message * * @param array $chat * @param Player $player */ public function chat_bgm(array $chat, Player $player) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iBad Game for me :('; $this->maniaControl->chat->sendChat($msg, null, false); } /** * Leave the server with an Bootme Message * * @param array $chat * @param Player $player */ public function chat_bootme(array $chat, Player $player) { $msg = '$i$ff0 $<' . $player->nickname . '$>$s$39f chooses to boot back to the real world!'; $this->maniaControl->chat->sendChat($msg, null, true); $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; } } /** * Leave the server with an Ragequit * * @param array $chat * @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 { $this->maniaControl->client->kick($player->login, $message); } 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; } } /** * Afk Message and force player to spec * * @param array $chat * @param Player $player */ public function chat_afk(array $chat, Player $player) { $msg = '$g[$<' . $player->nickname . '$>$s] $ff0$iAway From Keyboard!'; $this->maniaControl->chat->sendChat($msg, null, false); if ($this->maniaControl->settingManager->getSetting($this, self::SETTING_AFK_FORCE_SPEC)) { 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 } } } } /** * Checks if a Player is in the PlayerList and returns the nickname if he is, can be called per login, pid or nickname or lj for * (last joined) * * @param $login * @return mixed */ private function getTarget($login) { $pid = 1; foreach($this->maniaControl->playerManager->getPlayers() as $player) { if ($login == $player->login || $login == $pid || $login == $player->nickname) { return $player->nickname; } $pid++; } if ($login == 'lj' && $pid > 1) { return $player->nickname; } return $login; } /** * Get plugin id * * @return int */ public static function getId() { return self::PLUGIN_ID; } /** * Get Plugin Name * * @return string */ public static function getName() { return self::PLUGIN_NAME; } /** * Get Plugin Version * * @return float,, */ public static function getVersion() { return self::PLUGIN_VERSION; } /** * Get Plugin Author * * @return string */ public static function getAuthor() { return self::PLUGIN_AUTHOR; } /** * Get Plugin Description * * @return string */ public static function getDescription() { return "Plugin offers various Chat-Commands like /gg /hi /afk /rq..."; } }