From 8f9ae78b8cb4b98a0d53e06b1c7d0eeaf2caf6d8 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sat, 4 May 2019 16:38:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=9C=EB=B2=84=20=EB=A6=AC=EC=85=8B=20?= =?UTF-8?q?=EA=B6=8C=ED=95=9C=EC=9E=90=EB=8A=94=20=EC=84=9C=EB=B2=84=20?= =?UTF-8?q?=EC=8B=9C=EC=9E=91,=20=EB=98=90=EB=8A=94=20=EC=B2=9C=ED=86=B5?= =?UTF-8?q?=EC=8B=9C=20=EB=8B=AB=EC=9D=84=20=EC=88=98=20=EC=9E=88=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- i_entrance/j_server_change_status.php | 34 ++++++++++++++++++++++++++- js/admin_server.js | 2 +- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/i_entrance/j_server_change_status.php b/i_entrance/j_server_change_status.php index 6b791b41..5a7f336b 100644 --- a/i_entrance/j_server_change_status.php +++ b/i_entrance/j_server_change_status.php @@ -39,7 +39,39 @@ function doServerModeSet($server, $action, &$response, $session){ $serverPath = $settingObj->getBasePath(); $realServerPath = realpath(dirname(__FILE__)).'/'.$serverPath; - if($action == 'close' && ($userGrade >= 5 || in_array('openClose', $serverAcl))) { //폐쇄 + if($action == 'close') { //폐쇄 + $doClose = false; + if($userGrade >= 5){ + $doClose = true; + } + else if(in_array('openClose', $serverAcl)){ + $doClose = true; + } + + if(!$doClose && in_array('reset', $serverAcl) && file_exists($serverPath.'/d_setting/DB.php')){ + require($serverPath.'/lib.php'); + $localGameStorage = KVStorage::getStorage(DB::db(), 'game_env'); + //천통 이후, 오픈 직후는 닫을 수 있음 + $localGameStorage->cacheValues(['isunited', 'startyear', 'year']); + + if($localGameStorage->isunited){ + $doClose = true; + } + else if($localGameStorage->year < $localGameStorage->startyear + 2){ + $doClose = true; + } + + } + + if(!$doClose){ + if(in_array('reset', $serverAcl)){ + $response['msg'] = '서버 시작 직후, 또는 천하통일 이후에만 닫을 수 있습니다.'; + } + else{ + $response['msg'] = '서버 닫기 권한이 부족합니다.'; + } + return false; + } return $settingObj->closeServer(); } elseif($action == 'reset' && $userGrade >= 6) {//리셋 //FIXME: reset, reset_full 구현 diff --git a/js/admin_server.js b/js/admin_server.js index 4467efc9..e2c4475d 100644 --- a/js/admin_server.js +++ b/js/admin_server.js @@ -131,7 +131,7 @@ function drawServerAdminList(serverList){ if(!server.installed){ return true; } - $tr.find('.serv_act_reset').prop('disabled', false); + $tr.find('.serv_act_reset, .serv_act_close').prop('disabled', false); } }); });