From 144f5612037527ba3158e7f1935eff0286bc616b Mon Sep 17 00:00:00 2001 From: kremsy Date: Mon, 30 Dec 2013 13:10:26 +0100 Subject: [PATCH] chat message plugin --- application/core/Maps/Jukebox.php | 2 +- application/plugins/ChatMessagePlugin.php | 395 ++++++++++++++++++++++ application/plugins/WidgetPlugin.php | 7 +- 3 files changed, 402 insertions(+), 2 deletions(-) create mode 100644 application/plugins/ChatMessagePlugin.php diff --git a/application/core/Maps/Jukebox.php b/application/core/Maps/Jukebox.php index dc5640b6..dfe9c99a 100644 --- a/application/core/Maps/Jukebox.php +++ b/application/core/Maps/Jukebox.php @@ -72,7 +72,7 @@ class Jukebox implements CallbackListener, CommandListener { * @param $login * @param $uid */ - public function addMapToJukebox($login, $uid){ + public function addMapToJukebox($login, $uid){ //TODO if from MX other message $player = $this->maniaControl->playerManager->getPlayer($login); //Check if the map is already juked diff --git a/application/plugins/ChatMessagePlugin.php b/application/plugins/ChatMessagePlugin.php new file mode 100644 index 00000000..fabbae1c --- /dev/null +++ b/application/plugins/ChatMessagePlugin.php @@ -0,0 +1,395 @@ +maniaControl = $maniaControl; + + $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->callbackManager->unregisterCallbackListener($this); + unset($this->maniaControl); + } + + + /** + * 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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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 $<' . $this->getTarget($command[1]) . '$>!'; + }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, please come back soon!$z'; + $success = $this->maniaControl->client->query('Kick', $player->login, $message); + if (!$success) { + $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $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'; + $success = $this->maniaControl->client->query('Kick', $player->login, $message); + if (!$success) { + $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $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)){ + //force into spec + $success = $this->maniaControl->client->query('ForceSpectator', $player->login, 3); + if (!$success) { + $this->maniaControl->chat->sendError('Error occurred: ' . $this->maniaControl->getClientErrorText(), $player->login); + return; + } + + //free player slot + $this->maniaControl->client->query('SpectatorReleasePlayerSlot', $player->login); + } + } + + /** + * 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') + 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 null; + } + +} \ No newline at end of file diff --git a/application/plugins/WidgetPlugin.php b/application/plugins/WidgetPlugin.php index 12153e66..494abe53 100644 --- a/application/plugins/WidgetPlugin.php +++ b/application/plugins/WidgetPlugin.php @@ -1,6 +1,5 @@