Ejemplo n.º 1
0
 private function postMessage($msg)
 {
     // Fetch the prefix
     $group = self::CHAT_GROUP_ALL;
     $mtype = self::CHAT_CLASS_REGULAR;
     $id = $this->channel;
     $msg = trim($msg);
     $shortcuts = array('#' => '/clan ', '@' => '/msg ');
     foreach ($shortcuts as $k => $v) {
         if (substr($msg, 0, 1) == $k) {
             $msg = $v . substr($msg, 1);
         }
     }
     if (substr($msg, 0, 1) == '/') {
         $params = explode(' ', substr($msg, 1));
         $length = strlen($params[0]) + 1;
         switch (strtolower($params[0])) {
             case 'join':
                 $channel = isset($params[1]) ? $params[1] : false;
                 if ($channel) {
                     $this->switchChannel($channel);
                 }
                 return;
                 break;
             case 'msg':
                 // Fetch the user
                 $username = isset($params[1]) ? $params[1] : false;
                 $objUser = isset($params[1]) ? Dolumar_Players_Player::getFromName($params[1]) : false;
                 if ($username && $objUser) {
                     $length += strlen($username) + 2;
                     $group = self::CHAT_GROUP_USER;
                     $id = $objUser->getId();
                 }
                 break;
             case 'clan':
                 $clan = $this->user->getMainClan();
                 if ($clan) {
                     $group = self::CHAT_GROUP_CLAN;
                     $id = $clan->getId();
                 }
                 break;
             case 'me':
                 $msg = Neuron_Core_Tools::output_varchar($this->user->getNickname()) . ' ' . substr($msg, $length);
                 $length = 0;
                 $mtype = self::CHAT_CLASS_ME;
                 break;
         }
         if ($length > 0) {
             $msg = substr($msg, $length);
         }
     }
     if (!empty($msg)) {
         $mtype = intval($mtype);
         $db = Neuron_DB_Database::getInstance();
         $biggest = $db->query("\n\t\t\t\tINSERT INTO\n\t\t\t\t\tchat\n\t\t\t\tSET\n\t\t\t\t\tmsg = '{$db->escape($msg)}',\n\t\t\t\t\tdatum = '" . time() . "',\n\t\t\t\t\tplid = {$this->user->getId()},\n\t\t\t\t\ttarget_group = '{$db->escape($group)}',\n\t\t\t\t\ttarget_id = '{$db->escape($id)}',\n\t\t\t\t\tmtype = {$mtype}\n\t\t\t");
         /*
         $biggest = $db->insert
         (
         	'chat',
         	array
         	(
         		'msg' => $msg,
         		'datum' => time (),
         		'plid' => $this->user->getId (),
         		'target_group' => $group,
         		'target_id' => $id
         	)
         );
         */
         $this->objCache->setCache($this->sCacheKey, $biggest);
     }
 }