Server/project/src/routers/static/GameStaticRouter.ts

163 lines
6.5 KiB
TypeScript
Raw Normal View History

2023-03-03 15:23:46 +00:00
import { inject, injectable } from "tsyringe";
import { GameCallbacks } from "@spt-aki/callbacks/GameCallbacks";
import { RouteAction, StaticRouter } from "@spt-aki/di/Router";
import { ICheckVersionResponse } from "@spt-aki/models/eft/game/ICheckVersionResponse";
import { ICurrentGroupResponse } from "@spt-aki/models/eft/game/ICurrentGroupResponse";
import { IGameConfigResponse } from "@spt-aki/models/eft/game/IGameConfigResponse";
import { IGameKeepAliveResponse } from "@spt-aki/models/eft/game/IGameKeepAliveResponse";
import { IGameLogoutResponseData } from "@spt-aki/models/eft/game/IGameLogoutResponseData";
import { IGameModeResponse } from "@spt-aki/models/eft/game/IGameModeResponse";
import { IGameStartResponse } from "@spt-aki/models/eft/game/IGameStartResponse";
import { IGetRaidTimeResponse } from "@spt-aki/models/eft/game/IGetRaidTimeResponse";
2024-05-15 19:43:39 +01:00
import { ISendReportRequest } from "@spt-aki/models/eft/game/ISendReportRequest";
import { IServerDetails } from "@spt-aki/models/eft/game/IServerDetails";
import { IGetBodyResponseData } from "@spt-aki/models/eft/httpResponse/IGetBodyResponseData";
import { INullResponseData } from "@spt-aki/models/eft/httpResponse/INullResponseData";
2023-03-03 15:23:46 +00:00
@injectable()
2023-11-13 11:12:17 -05:00
export class GameStaticRouter extends StaticRouter
2023-03-03 15:23:46 +00:00
{
constructor(@inject("GameCallbacks") protected gameCallbacks: GameCallbacks)
2023-03-03 15:23:46 +00:00
{
super([
new RouteAction(
"/client/game/config",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IGameConfigResponse>> =>
{
return this.gameCallbacks.getGameConfig(url, info, sessionID);
},
),
new RouteAction(
"/client/game/mode",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IGameModeResponse>> =>
{
return this.gameCallbacks.getGameMode(url, info, sessionID);
},
),
new RouteAction(
"/client/server/list",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IServerDetails[]>> =>
{
return this.gameCallbacks.getServer(url, info, sessionID);
},
),
new RouteAction(
"/client/match/group/current",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<ICurrentGroupResponse>> =>
{
return this.gameCallbacks.getCurrentGroup(url, info, sessionID);
},
),
new RouteAction(
"/client/game/version/validate",
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{
return this.gameCallbacks.versionValidate(url, info, sessionID);
},
),
new RouteAction(
"/client/game/start",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IGameStartResponse>> =>
{
return this.gameCallbacks.gameStart(url, info, sessionID);
},
),
new RouteAction(
"/client/game/logout",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IGameLogoutResponseData>> =>
{
return this.gameCallbacks.gameLogout(url, info, sessionID);
},
),
new RouteAction(
"/client/checkVersion",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<ICheckVersionResponse>> =>
{
return this.gameCallbacks.validateGameVersion(url, info, sessionID);
},
),
new RouteAction(
"/client/game/keepalive",
async (
url: string,
info: any,
sessionID: string,
output: string,
): Promise<IGetBodyResponseData<IGameKeepAliveResponse>> =>
{
return this.gameCallbacks.gameKeepalive(url, info, sessionID);
},
),
new RouteAction(
"/singleplayer/settings/version",
async (url: string, info: any, sessionID: string, output: string): Promise<string> =>
{
return this.gameCallbacks.getVersion(url, info, sessionID);
},
),
new RouteAction(
"/client/reports/lobby/send",
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{
return this.gameCallbacks.reportNickname(url, info, sessionID);
},
),
2024-05-15 15:43:19 +01:00
new RouteAction(
"/client/report/send",
2024-05-15 19:43:39 +01:00
async (
url: string,
info: ISendReportRequest,
sessionID: string,
output: string,
): Promise<INullResponseData> =>
2024-05-15 15:43:19 +01:00
{
return null;
},
),
new RouteAction(
"/singleplayer/settings/getRaidTime",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<IGetRaidTimeResponse> =>
{
return this.gameCallbacks.getRaidTime(url, info, sessionID);
},
),
]);
2023-03-03 15:23:46 +00:00
}
2023-11-13 11:12:17 -05:00
}