XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
UTF-8
import type { RequestHandler } from "express";
import { Guild } from "../../models/guildModel.ts";
import { getAccountForRequest, getBuildLabel } from "../../services/loginService.ts";
import { logger } from "../../utils/logger.ts";
import { getInventory } from "../../services/inventoryService.ts";
import { createUniqueClanName, getGuildClient } from "../../services/guildService.ts";

export const getGuildController: RequestHandler = async (req, res) => {
    const account = await getAccountForRequest(req);
    const inventory = await getInventory(account._id, "GuildId");
    if (inventory.GuildId) {
        const guild = await Guild.findById(inventory.GuildId);
        if (guild) {
            // Handle guilds created before we added discriminators
            if (guild.Name.indexOf("#") == -1) {
                guild.Name = await createUniqueClanName(guild.Name);
                await guild.save();
            }

            if (guild.CeremonyResetDate && Date.now() >= guild.CeremonyResetDate.getTime()) {
                logger.debug(`ascension ceremony is over`);
                guild.CeremonyEndo = undefined;
                guild.CeremonyContributors = undefined;
                guild.CeremonyResetDate = undefined;
                await guild.save();
            }
            const buildLabel = getBuildLabel(req, account);
            res.json(await getGuildClient(guild, account, buildLabel));
            return;
        }
    }
    res.end();
};