새메시지, contact_list 코드를 func_message.php로 이동

This commit is contained in:
2018-03-01 04:44:02 +09:00
parent dcb2903578
commit 33cc00cced
2 changed files with 38 additions and 79 deletions
+37 -34
View File
@@ -197,48 +197,51 @@ function sendScoutMsg($src, $dest, $date) {
function getMailboxList(){
$result = [];
$generalNations = [];
$generalID = getGeneralID(false);
if(!$generalID){
}
$db = getDB();
$me = $db->queryFirstRow('select no,nation,level from general where no=%i', $generalID);
//가장 최근에 주고 받은 사람.
$latestMessage = util::array_get(getMessage('private', 1)[0], null);
if($latestMessage !== null){
if($latestMessage->src == $generalID){
$latestMessage = $latestMessage->dest;
foreach(getDB()->query('select `no`, `name`, `nation`, `level`, `npc` from `general` where `npc` < 2') as $general)
{
list($generalID, $generalName, $nationID, $level, $npc) = $general;
if(!isset($generalNations[$nationID])){
$generalNations[$nationID] = [];
}
else{
$latestMessage = $latestMessage->src;
$isChief = ($level == 12);
$obj = [$generalID, $generalName];
if($isChief){
$obj[] = 1;
}
//TODO: 빙의장 정보 추가
$generalNations[$nationID][] = $obj;
}
$nations = [];
foreach (getAllNationStaticInfo() as $nation) {
$nations[$nation['nation']] = $nation;
}
$nations[0] = [
'nation' => 0,
'name' => '재야',
'color' => '#ffffff'
$neutral = [
"nation"=>0,
"name"=>"재야",
"color"=>"#ffffff"
];
$generals = $db->query('select no, nation, name, level from general where npc < 2 and no != %i order by name asc', $generalID);
foreach ($generals as $general) {
$nations[$general['nation']] = $general;
}
$result = array_map(function($nation){
$nationID = $nation['nation'];
$mailbox = $nationID + 9000;
$nation = $nation['name'];
$color = ('#'.$nation['color']).replace('##','#');//xxx: #기호 없는 이전 코드 대비용
$generals = util::array_get($generalNations[$nationID], []);
return [
"nationID"=>$nationID,
"mailbox"=>$mailbox,
"nation"=>$nationID,
"color"=>$color,
"general"=>$generals
];
}, array_merge([$neutral], getAllNationStaticInfo()));
return $result;
return [
'me' => $me,
'latest' => $latestMessage,
'nations' => $nations
];
}
function genList($connect) {
+1 -45
View File
@@ -10,52 +10,8 @@ if(!getGeneralID()){
]);
}
session_write_close(); // 세션 안쓴다
//NOTE: 모든 국가, 모든 장수에 대해서 같은 결과라면 캐싱 가능하지 않을까?
$generalNations = [];
foreach(getDB()->query('select `no`, `name`, `nation`, `level`, `npc` from `general` where `npc` < 2') as $general)
{
list($generalID, $generalName, $nationID, $level, $npc) = $general;
if(!isset($generalNations[$nationID])){
$generalNations[$nationID] = [];
}
$isChief = ($level == 12);
$obj = [$generalID, $generalName];
if($isChief){
$obj[] = 1;
}
//TODO: 빙의장 정보 추가
$generalNations[$nationID][] = $obj;
}
$neutral = [
"nation"=>0,
"name"=>"재야",
"color"=>"#ffffff"
];
$result = array_map(function($nation){
$nationID = $nation['nation'];
$mailbox = $nationID + 9000;
$nation = $nation['name'];
$color = ('#'.$nation['color']).replace('##','#');//xxx: #기호 없는 이전 코드 대비용
$generals = util::array_get($generalNations[$nationID], []);
return [
"nationID"=>$nationID,
"mailbox"=>$mailbox,
"nation"=>$nationID,
"color"=>$color,
"general"=>$generals
];
}, array_merge([$neutral], getAllNationStaticInfo()));
returnJson([
"nation"=>$result
"nation"=>getMailboxList()
]);