Files
SPT-Server-Build/Core/Routers/Static/GameStaticRouter.cs
T
CWX bb887b0901 Lots of new things (#40)
* callbacks

* controllers

* Router override

* make requests use interface

* create Routers

* extra parts
2025-01-12 15:35:32 +00:00

169 lines
5.6 KiB
C#

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