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(); }
protected function onPostMessage($msgid, Neuron_GameServer_Mappers_ChatMapper $mapper) { $me = Neuron_GameServer::getPlayer(); $mapper->addPrivateChatUpdate($msgid, $me, $this->getTarget()); }
/** * If $since is said, return all events since "since". * If $since is not said, return the single latest event. * * ($since is obviously the pu_id) */ public function getPrivateChatUpdates(Neuron_GameServer_Player $target, $since = null) { if (isset($since)) { } return parent::getPrivateChatUpdates($target, $since); }