HJ_Server/src/api_s2c/gonghui/ApiJoin.ts
2023-12-13 20:51:17 +08:00

37 lines
1.3 KiB
TypeScript

import { ApiCall } from "tsrpc";
import { GHManage } from '../../public/gonghui/manage';
import { ReqJoin, ResJoin } from "../../shared/protocols/gonghui/PtlJoin";
import { HongDianChange } from "../hongdian/fun";
import {PublicShared} from "../../shared/public/public";
export default async function (call: ApiCall<ReqJoin, ResJoin>) {
if (PublicShared.getOpenServerDay() > 1) {
if ((call.conn.gud.ghExitTime || 0) + G.gc.com.Guild_CD.value > G.time) {
return call.error(globalThis.lng.gonghui_5);
}
}
if (call.conn.gud.ghId) return call.error(globalThis.lng.gonghui_16);
const gh = await GHManage.getGH(call.req.id);
if (!gh) return call.error(globalThis.lng.gonghui_17);
if (gh.data.players.length >= gh.maxPlayerNum) return call.error(globalThis.lng.gonghui_18);
if (call.conn.gud.lv < gh.data.setting.joinLv) return call.error(globalThis.lng.gonghui_19);
if (gh.data.setting.autoJoin) {
gh.addPlayer(call.conn.gud);
} else {
gh.addApply(call.conn.gud);
let _ghUsers = await gh.getAllPlayers();
_ghUsers.forEach(ele => {
if (ele.player.ghLevel != 3) {
HongDianChange.sendChangeKey(ele.player.uid, ['gonghuihd'])
}
})
}
call.succ({});
}