Пример #1
0
 public function getContent()
 {
     $text = Neuron_Core_Text::__getInstance();
     $player = Neuron_GameServer::getPlayer();
     if (!$player) {
         return $this->throwError($text->get('login', 'login', 'account'));
     }
     $input = $this->getInputData();
     $request = $this->getRequestData();
     $mapper = Neuron_GameServer_Mappers_BlockingChatMapper::getInstance();
     $total = $mapper->countPrivateMessages($player);
     if (isset($input['page'])) {
         $current = $input['page'];
         $request['page'] = $current;
         $this->updateRequestData($request);
     } else {
         $current = isset($request['page']) ? $request['page'] : 0;
     }
     $perpage = 10;
     $page = new Neuron_Core_Template();
     $pages = Neuron_Core_Tools::splitInPages($page, $total, $current, $perpage);
     $messages = $mapper->getPrivateChats($player, $pages['start'], $pages['perpage']);
     $page->set('messages', $messages);
     return $page->parse('gameserver/chat/privatemessages.phpt');
 }
 public function getRefresh()
 {
     $mapper = Neuron_GameServer_Mappers_BlockingChatMapper::getInstance();
     $data = $this->getRequestData();
     $player = Neuron_GameServer::getPlayer();
     if ($player) {
         $mapper = Neuron_GameServer_Mappers_ChatMapper::getInstance();
         if (isset($data['lastId'])) {
             $updates = $mapper->getPrivateChatUpdates($player, $data['lastId']);
             if (count($updates) > 0) {
                 $lastId = $updates[0]['pu_id'];
                 // open windows for all updates
                 foreach ($updates as $v) {
                     $this->getServer()->openWindow('PrivateChat', array('id' => $v['pu_from']));
                     $lastId = max($lastId, $v['pu_id']);
                 }
                 $data['lastId'] = $lastId;
                 $this->updateRequestData($data);
             }
         } else {
             $updates = $mapper->getPrivateChatUpdates($player);
             if (count($updates) > 0) {
                 $data['lastId'] = $updates[0]['pu_id'];
                 $this->updateRequestData($data);
             } else {
                 $data['lastId'] = 0;
                 $this->updateRequestData($data);
             }
         }
     }
     $this->updateRequestData($data);
     $this->updateContent();
 }
Пример #3
0
 /**
  * Get the mapper. Depends on what system we use.
  */
 private function getMapper()
 {
     if (self::USE_BLOCKING) {
         return Neuron_GameServer_Mappers_BlockingChatMapper::getInstance();
     } else {
         return Neuron_GameServer_Mappers_CachedChatMapper::getInstance();
     }
 }