isLoggedIn($f3) !== 'OK'){ // no character found or login timer expired $this->logoutCharacter($f3); // skip route handler and afterroute() $return = false; } } return $return; } /** * get current character and check if it is a valid character * @param \Base $f3 * @return string * @throws \Exception */ protected function isLoggedIn(\Base $f3): string { $loginStatus = 'UNKNOWN'; if($character = $this->getCharacter()){ if($character->checkLoginTimer()){ if(( $authStatus = $character->isAuthorized()) === 'OK'){ $loginStatus = 'OK'; }else{ $loginStatus = $authStatus; } }else{ $loginStatus = 'MAX LOGIN TIME EXCEEDED'; } }else{ $loginStatus = 'NO SESSION FOUND'; } // log character access status in debug mode if( $loginStatus !== 'OK' && $f3->get('DEBUG') === 3 ){ self::getLogger('CHARACTER_ACCESS')->write( sprintf(Model\CharacterModel::LOG_ACCESS, $character->_id , $loginStatus, $character->name ) ); } return $loginStatus; } /** * broadcast map data to clients * -> send over TCP Socket * @param Model\MapModel $map * @throws \Exception */ protected function broadcastMapData(Model\MapModel $map) : void { $mapData = $this->getFormattedMapData($map); $this->getF3()->webSocket()->write('mapUpdate', $mapData); } /** * get formatted Map Data * @param Model\MapModel $map * @return array * @throws \Exception */ protected function getFormattedMapData(Model\MapModel $map){ $mapData = $map->getData(); return [ 'config' => $mapData->mapData, 'data' => [ 'systems' => $mapData->systems, 'connections' => $mapData->connections, ] ]; } }