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 { getAllHubServerStats, hubInstances, type IHubServerStats } from "../../services/arbiterService.ts";
import { config, type TRegionId } from "../../services/configService.ts";

export const statsController: RequestHandler = (_req, res) => {
    const response: IArbiterStatsResponse = {
        Hubs: {},
        Levels: hubInstances
    };
    const allStats = getAllHubServerStats();
    for (const server of config.hubServers!) {
        const stats = allStats[server.address] as IHubServerStats | undefined;
        response.Hubs[server.address] = {
            Players: stats?.Players ?? 0,
            Instances: stats?.Instances ?? 0,
            RegionIds: server.regions!
        };
    }
    res.json(response);
};

interface IArbiterStatsResponse {
    Hubs: Record<
        string,
        {
            Players: number;
            Instances: number;
            RegionIds: TRegionId[];
        }
    >;
    Levels: Record<
        string,
        {
            Players: number;
            Hub: string;
        }
    >;
}