Skip to content

Commit 157a4c8

Browse files
PR JJoriping#1079 적용
1 parent cfb09d0 commit 157a4c8

4 files changed

Lines changed: 71 additions & 0 deletions

File tree

Server/lib/Game/master.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ var T_USER = {};
4242
var SID;
4343
var WDIC = {};
4444

45+
/* Toggle Guest Entrance & User Kick [S] */
46+
var allowEnter = GLOBAL.ALLOW_GUEST_ENTRANCE;
47+
var allowGuestEnter = true;
48+
/* Toggle Guest Entrance & User Kick [E] */
49+
4550
const DEVELOP = exports.DEVELOP = global.test || false;
4651
const GUEST_PERMISSION = exports.GUEST_PERMISSION = {
4752
'create': true,
@@ -167,10 +172,57 @@ function processAdmin(id, value){
167172
}
168173
return null;
169174
/* Enhanced User Block System [E] */
175+
/* Toggle Guest Entrance & User Kick [S] */
176+
case 'allowguestenter':
177+
if(allowGuestEnter) {
178+
allowGuestEnter = false;
179+
JLog.info(`[Entrance] ${id} 님이 손님 계정의 출입을 비활성화했습니다.`);
180+
} else {
181+
allowGuestEnter = true;
182+
JLog.info(`[Entrance] ${id} 님이 손님 계정의 출입을 활성화했습니다.`);
183+
}
184+
return null;
185+
case 'allowenter':
186+
if(allowEnter) {
187+
allowEnter = false;
188+
JLog.info(`[Entrance] ${id} 님이 사용자의 출입을 비활성화했습니다.`);
189+
} else {
190+
allowEnter = true;
191+
JLog.info(`[Entrance] ${id} 님이 사용자의 출입을 허용했습니다.`);
192+
}
193+
return null;
194+
case 'kickguest':
195+
try {
196+
Object.keys(DIC).forEach(o => {
197+
let user = DIC[o];
198+
if((user && user.guest && user.place == 0) || (user && user.guest && (value == 'all'))) {
199+
user.sendError(457);
200+
user.socket.close();
201+
}
202+
});
203+
} catch (e) {
204+
JLog.error(e);
205+
}
206+
return null;
207+
case 'kickuser':
208+
try {
209+
Object.keys(DIC).forEach(o => {
210+
let user = DIC[o];
211+
if((user && user.place == 0) || (user && (value == 'all'))) {
212+
user.sendError(457);
213+
user.socket.close();
214+
}
215+
});
216+
} catch (e) {
217+
JLog.error(e);
218+
}
219+
return null;
220+
/* Toggle Guest Entrance & User Kick [E] */
170221
}
171222
return value;
172223
}
173224
/* Enhanced User Block System [S] */
225+
174226
function addDate(num){
175227
if(isNaN(num)) return;
176228
return Date.now() + num * 24 * 60 * 60 * 1000;
@@ -386,12 +438,26 @@ exports.init = function(_SID, CHAN){
386438
$c.socket.close();
387439
return;
388440
}
441+
/* Toggle Guest Entrance & User Kick [S] */
442+
if (!allowEnter && !$c.admin) {
443+
$c.sendError(500);
444+
$c.socket.close();
445+
return;
446+
}
447+
/* Toggle Guest Entrance & User Kick [E] */
389448
if($c.guest){
390449
if(SID != "0"){
391450
$c.sendError(402);
392451
$c.socket.close();
393452
return;
394453
}
454+
/* Toggle Guest Entrance & User Kick [S] */
455+
if (!allowGuestEnter) {
456+
$c.sendError(456);
457+
$c.socket.close();
458+
return;
459+
}
460+
/* Toggle Guest Entrance & User Kick [E] */
395461
if(KKuTu.NIGHT){
396462
$c.sendError(440);
397463
$c.socket.close();

Server/lib/Web/lang/en_US.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,8 @@
208208
"error_453": "손님 계정을 친구로 추가할 수 없습니다.",
209209
"error_454": "친구 추가 요청에 대한 응답을 기다리고 있습니다.",
210210
"error_455": "접속해 있지 않은 친구만 삭제할 수 있습니다.",
211+
"error_456": "손님 계정의 접속이 비활성화된 서버입니다.\n우측 상단의 로그인 단추를 눌러 로그인해 보세요!",
212+
"error_457": "서버 점검 혹은 업데이트 진행 등의 사유로 게임에서 제외되었습니다.\n메인 화면으로 이동한 후 다른 서버를 이용해 보세요!",
211213
"error_500": "서버 점검 혹은 업데이트가 진행 중입니다.",
212214
"error_555": "공사 중입니다! ㅠㅠ",
213215
"turnError_402": "첫 턴 한방 금지",

Server/lib/Web/lang/ko_KR.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@
221221
"error_453": "손님 계정을 친구로 추가할 수 없습니다.",
222222
"error_454": "친구 추가 요청에 대한 응답을 기다리고 있습니다.",
223223
"error_455": "접속해 있지 않은 친구만 삭제할 수 있습니다.",
224+
"error_456": "손님 계정의 접속이 비활성화된 서버입니다.\n우측 상단의 로그인 단추를 눌러 로그인해 보세요!",
225+
"error_457": "서버 점검 혹은 업데이트 진행 등의 사유로 게임에서 제외되었습니다.\n메인 화면으로 이동한 후 다른 서버를 이용해 보세요!",
224226
"error_500": "서버 점검 혹은 업데이트가 진행 중입니다.",
225227
"error_555": "공사 중입니다! ㅠㅠ",
226228
"turnError_402": "첫 턴 한방 금지",

Server/lib/sub/global.inc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"GOOGLE_RECAPTCHA_SITE_KEY": "Your Google Recaptcha site key Here",
1515
"GOOGLE_RECAPTCHA_SECRET_KEY": "Your Google Recaptcha secret key Here",
1616
"IS_SECURED": false,
17+
"ALLOW_GUEST_ENTRANCE": true,
1718
"SSL_OPTIONS": {
1819
"PRIVKEY": "Your SSL Private Key Here",
1920
"CERT": "Your SSL Certificate Here",

0 commit comments

Comments
 (0)