Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Routers/Static/GameStaticRouter.cs
T
2025-06-23 16:55:25 +00:00

143 lines
6.0 KiB
C#

using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Callbacks;
using SPTarkov.Server.Core.DI;
using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Request;
using SPTarkov.Server.Core.Models.Eft.Game;
using SPTarkov.Server.Core.Utils;
namespace SPTarkov.Server.Core.Routers.Static;
[Injectable]
public class GameStaticRouter : StaticRouter
{
public GameStaticRouter(JsonUtil jsonUtil, GameCallbacks gameCallbacks)
: base(
jsonUtil,
[
new RouteAction(
"/client/game/config",
async (url, info, sessionID, output) =>
await gameCallbacks.GetGameConfig(
url,
info as GameEmptyCrcRequestData,
sessionID
),
typeof(GameEmptyCrcRequestData)
),
new RouteAction(
"/client/putHWMetrics",
async (url, info, sessionID, output) =>
await gameCallbacks.PutHwMetrics(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/game/mode",
async (url, info, sessionID, output) =>
await gameCallbacks.GetGameMode(
url,
info as GameModeRequestData,
sessionID
),
typeof(GameModeRequestData)
),
new RouteAction(
"/client/server/list",
async (url, info, sessionID, output) =>
await gameCallbacks.GetServer(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/match/group/current",
async (url, info, sessionID, output) =>
await gameCallbacks.GetCurrentGroup(
url,
info as EmptyRequestData,
sessionID
),
typeof(GameModeRequestData)
),
new RouteAction(
"/client/game/version/validate",
async (url, info, sessionID, output) =>
await gameCallbacks.VersionValidate(
url,
info as VersionValidateRequestData,
sessionID
),
typeof(VersionValidateRequestData)
),
new RouteAction(
"/client/game/start",
async (url, info, sessionID, output) =>
await gameCallbacks.GameStart(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/game/logout",
async (url, info, sessionID, output) =>
await gameCallbacks.GameLogout(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/checkVersion",
async (url, info, sessionID, output) =>
await gameCallbacks.ValidateGameVersion(
url,
info as EmptyRequestData,
sessionID
)
),
new RouteAction(
"/client/game/keepalive",
async (url, info, sessionID, output) =>
await gameCallbacks.GameKeepalive(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/singleplayer/settings/version",
async (url, info, sessionID, output) =>
await gameCallbacks.GetVersion(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/reports/lobby/send",
async (url, info, sessionID, output) =>
await gameCallbacks.ReportNickname(url, info as UIDRequestData, sessionID),
typeof(UIDRequestData)
),
new RouteAction(
"/client/report/send",
async (url, info, sessionID, output) =>
await gameCallbacks.ReportNickname(url, info as UIDRequestData, sessionID),
typeof(GameModeRequestData)
),
new RouteAction(
"/singleplayer/settings/getRaidTime",
async (url, info, sessionID, output) =>
await gameCallbacks.GetRaidTime(url, info as GetRaidTimeRequest, sessionID),
typeof(GetRaidTimeRequest)
),
new RouteAction(
"/client/survey",
async (url, info, sessionID, output) =>
await gameCallbacks.GetSurvey(url, info as EmptyRequestData, sessionID)
),
new RouteAction(
"/client/survey/view",
async (url, info, sessionID, output) =>
await gameCallbacks.GetSurveyView(
url,
info as SendSurveyOpinionRequest,
sessionID
),
typeof(SendSurveyOpinionRequest)
),
new RouteAction(
"/client/survey/opinion",
async (url, info, sessionID, output) =>
await gameCallbacks.SendSurveyOpinion(
url,
info as SendSurveyOpinionRequest,
sessionID
),
typeof(SendSurveyOpinionRequest)
),
]
) { }
}