서버 예약 오픈을 UI에 통합
This commit is contained in:
+4
-1
@@ -51,14 +51,17 @@ $reserve_open = Util::getReq('reserve_open');
|
|||||||
if($reserve_open){
|
if($reserve_open){
|
||||||
$reserve_open = new \DateTime($reserve_open);
|
$reserve_open = new \DateTime($reserve_open);
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
ResetHelper::clearDB();
|
ResetHelper::clearDB();
|
||||||
|
|
||||||
|
$scenarioObj = new Scenario($scenario, true);
|
||||||
|
$db->delete('reserved_open', true);
|
||||||
$db->insert('reserved_open', [
|
$db->insert('reserved_open', [
|
||||||
'options'=>Json::encode([
|
'options'=>Json::encode([
|
||||||
'turnterm'=>$turnterm,
|
'turnterm'=>$turnterm,
|
||||||
'sync'=>$sync,
|
'sync'=>$sync,
|
||||||
'scenario'=>$scenario,
|
'scenario'=>$scenario,
|
||||||
|
'scenarioName'=>$scenarioObj->getTitle(),
|
||||||
'fiction'=>$fiction,
|
'fiction'=>$fiction,
|
||||||
'extend'=>$extend,
|
'extend'=>$extend,
|
||||||
'npcmode'=>$npcmode,
|
'npcmode'=>$npcmode,
|
||||||
|
|||||||
@@ -4,15 +4,49 @@ namespace sammo;
|
|||||||
include "lib.php";
|
include "lib.php";
|
||||||
|
|
||||||
$session = Session::requireLogin([
|
$session = Session::requireLogin([
|
||||||
'game'=>'x',
|
'game'=>null,
|
||||||
'me'=>null
|
'me'=>null
|
||||||
])->setReadOnly();
|
])->setReadOnly();
|
||||||
$userID = Session::getUserID();
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
|
if(!class_exists('\\sammo\\DB')){
|
||||||
|
Json::die([
|
||||||
|
'game'=>null,
|
||||||
|
'me'=>null
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
$game = $db->queryFirstRow('SELECT isUnited, npcMode, year, month, scenario, scenario_text, maxgeneral as maxUserCnt, turnTerm from game where `no`=1');
|
$game = $db->queryFirstRow('SELECT isUnited, npcMode, year, month, scenario, scenario_text, maxgeneral as maxUserCnt, turnTerm from game where `no`=1');
|
||||||
|
|
||||||
|
if(!$game){
|
||||||
|
$reserved = $db->queryFirstRow(
|
||||||
|
'SELECT * FROM reserved_open ORDER BY `date` ASC LIMIT 1'
|
||||||
|
);
|
||||||
|
if(!$reserved){
|
||||||
|
Json::die([
|
||||||
|
'game'=>null,
|
||||||
|
'me'=>null
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$options = Json::decode($reserved['options']);
|
||||||
|
|
||||||
|
Json::die([
|
||||||
|
'reserved'=>[
|
||||||
|
'scenarioName'=>$options['scenarioName'],
|
||||||
|
'turnterm'=>$options['turnterm'],
|
||||||
|
'fictionMode'=>($options['fiction']?'연의':'가상'),
|
||||||
|
'npcMode'=>($options['npcmode']?'가능':'불가'),
|
||||||
|
'openDatetime'=>$reserved['date']
|
||||||
|
],
|
||||||
|
'game'=>null,
|
||||||
|
'me'=>null
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$nationCnt = $db->queryFirstField('SELECT count(`nation`) from nation where `level` > 0');
|
$nationCnt = $db->queryFirstField('SELECT count(`nation`) from nation where `level` > 0');
|
||||||
$genCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` < 2');
|
$genCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` < 2');
|
||||||
$npcCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` >= 2');
|
$npcCnt = $db->queryFirstField('SELECT count(`no`) from general where `npc` >= 2');
|
||||||
|
|||||||
+13
-1
@@ -643,4 +643,16 @@ CREATE TABLE `general_public_record` (
|
|||||||
)
|
)
|
||||||
DEFAULT CHARSET=utf8mb4
|
DEFAULT CHARSET=utf8mb4
|
||||||
ENGINE=InnoDB
|
ENGINE=InnoDB
|
||||||
;
|
;
|
||||||
|
|
||||||
|
######
|
||||||
|
# 예약 오픈 테이블
|
||||||
|
CREATE TABLE `reserved_open` (
|
||||||
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`options` TEXT NULL DEFAULT NULL,
|
||||||
|
`date` DATETIME NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
INDEX `date` (`date`)
|
||||||
|
)
|
||||||
|
DEFAULT CHARSET=utf8mb4
|
||||||
|
ENGINE=MyISAM;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ foreach(AppConf::getList() as $setting){
|
|||||||
'color'=>$setting->getColor(),
|
'color'=>$setting->getColor(),
|
||||||
'korName'=>$setting->getKorName(),
|
'korName'=>$setting->getKorName(),
|
||||||
'name'=>$setting->getShortName(),
|
'name'=>$setting->getShortName(),
|
||||||
|
'exists'=>$setting->isExists(),
|
||||||
'enable'=>$setting->isRunning()
|
'enable'=>$setting->isRunning()
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
+17
-1
@@ -42,6 +42,14 @@ var serverLoginTemplate = "\
|
|||||||
</td>\
|
</td>\
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|
||||||
|
var serverReservedTemplate = "\
|
||||||
|
<td colspan='4' class='server_reserved'>\
|
||||||
|
- 오픈 일시 : <%openDatetime%> - <br>\
|
||||||
|
<span style='color:orange;'><%scenarioName%></span> <span style='color:limegreen;'><%turnterm%>분 턴 서버</span><br>\
|
||||||
|
(연의 모드:<%fictionMode%>), (빙의 여부:<%npcMode%>)</td>\
|
||||||
|
";
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
$("#btn_logout").click(Entrance_Logout);
|
$("#btn_logout").click(Entrance_Logout);
|
||||||
Entrance_UpdateServer();
|
Entrance_UpdateServer();
|
||||||
@@ -64,7 +72,7 @@ function Entrance_drawServerList(serverInfos){
|
|||||||
$.each(serverInfos, function(idx, serverInfo){
|
$.each(serverInfos, function(idx, serverInfo){
|
||||||
var $serverHtml = $(TemplateEngine(serverListTemplate, serverInfo));
|
var $serverHtml = $(TemplateEngine(serverListTemplate, serverInfo));
|
||||||
$serverList.append($serverHtml);
|
$serverList.append($serverHtml);
|
||||||
if(!serverInfo.enable){
|
if(!serverInfo.exists){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,6 +80,14 @@ function Entrance_drawServerList(serverInfos){
|
|||||||
|
|
||||||
|
|
||||||
$.getJSON("../"+serverInfo.name+'/j_server_basic_info.php',{}, function(result){
|
$.getJSON("../"+serverInfo.name+'/j_server_basic_info.php',{}, function(result){
|
||||||
|
if(result.reserved){
|
||||||
|
$serverHtml.find('.server_down').detach();
|
||||||
|
$serverHtml.append(
|
||||||
|
TemplateEngine(serverReservedTemplate, result.reserved)
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!result.game){
|
if(!result.game){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-1
@@ -27,17 +27,28 @@ def main():
|
|||||||
break
|
break
|
||||||
|
|
||||||
servList = []
|
servList = []
|
||||||
|
autoResetList = []
|
||||||
for path in glob.glob(basepath+'/*/d_setting/DB.php'):
|
for path in glob.glob(basepath+'/*/d_setting/DB.php'):
|
||||||
servPath = os.path.dirname(os.path.dirname(path))
|
servPath = os.path.dirname(os.path.dirname(path))
|
||||||
|
servRelPath = os.path.relpath(servPath, basepath)
|
||||||
|
|
||||||
|
resetAbsPath = servPath + '/j_autoreset.php'
|
||||||
|
resetPath = webBase + '/' + servRelPath + '/j_autoreset.php'
|
||||||
|
if os.path.exists(resetAbsPath):
|
||||||
|
autoResetList.append(resetPath)
|
||||||
|
|
||||||
if servPath in hiddenList:
|
if servPath in hiddenList:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
servRelPath = os.path.relpath(servPath, basepath)
|
|
||||||
webPath = webBase + '/' + servRelPath + '/proc.php'
|
webPath = webBase + '/' + servRelPath + '/proc.php'
|
||||||
|
|
||||||
servList.append(webPath)
|
servList.append(webPath)
|
||||||
|
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=len(servList)) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=len(servList)) as executor:
|
||||||
waiters=[]
|
waiters=[]
|
||||||
|
for resetPath in autoResetList:
|
||||||
|
future = executor.submit(run, resetPath)
|
||||||
|
waiters.append(future)
|
||||||
for _ in range(4):
|
for _ in range(4):
|
||||||
for webPath in servList:
|
for webPath in servList:
|
||||||
future = executor.submit(run, webPath)
|
future = executor.submit(run, webPath)
|
||||||
|
|||||||
@@ -7,4 +7,17 @@ Deny from all
|
|||||||
SetEnvIf X-Forwarded-For ^<?=str_replace('.', '\\.', $allow_ip)?> env_allow_1
|
SetEnvIf X-Forwarded-For ^<?=str_replace('.', '\\.', $allow_ip)?> env_allow_1
|
||||||
Allow from env=env_allow_1
|
Allow from env=env_allow_1
|
||||||
Allow from <?=$allow_ip?>
|
Allow from <?=$allow_ip?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<Files j_install.php>
|
||||||
|
Allow from all
|
||||||
|
</Files>
|
||||||
|
<Files install.php>
|
||||||
|
Allow from all
|
||||||
|
</Files>
|
||||||
|
<Files j_server_basic_info.php>
|
||||||
|
Allow from all
|
||||||
|
</Files>
|
||||||
|
<Files ~ "\.(xml|css|jpe?g|png|gif|js|pdf)$">
|
||||||
|
Allow from all
|
||||||
|
</Files>
|
||||||
Reference in New Issue
Block a user