fix(gateway): show legacy season states
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
export interface ServerSeasonStatusInput {
|
||||
isUnited: number;
|
||||
nationCnt: number;
|
||||
opentime: string;
|
||||
starttime: string;
|
||||
turntime: string;
|
||||
}
|
||||
|
||||
export interface ServerSeasonStatus {
|
||||
code: 'COMPETING' | 'PREOPEN' | 'EVENT_RUNNING' | 'UNITED' | 'EVENT_FINISHED';
|
||||
label: string;
|
||||
period: string;
|
||||
}
|
||||
|
||||
export const resolveServerSeasonStatus = (info: ServerSeasonStatusInput, now = new Date()): ServerSeasonStatus => {
|
||||
const finishedPeriod = `${info.starttime}\n~ ${info.turntime}`;
|
||||
if (info.isUnited === 3) {
|
||||
return { code: 'EVENT_FINISHED', label: '§이벤트 종료§', period: finishedPeriod };
|
||||
}
|
||||
if (info.isUnited === 1) {
|
||||
return { code: 'EVENT_RUNNING', label: '§이벤트 진행중§', period: `${info.starttime} ~` };
|
||||
}
|
||||
if (info.isUnited === 2) {
|
||||
return { code: 'UNITED', label: '§천하통일§', period: finishedPeriod };
|
||||
}
|
||||
|
||||
const openAt = new Date(info.opentime);
|
||||
if (Number.isFinite(openAt.getTime()) && openAt.getTime() > now.getTime()) {
|
||||
return { code: 'PREOPEN', label: '-가오픈 중-', period: `${info.starttime} ~` };
|
||||
}
|
||||
return { code: 'COMPETING', label: `<${info.nationCnt}국 경쟁중>`, period: `${info.starttime} ~` };
|
||||
};
|
||||
Reference in New Issue
Block a user