Files
SPT-Server-Build/Core/Routers/Static/MatchStaticRouter.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

267 lines
9.7 KiB
C#

using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.Match;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class MatchStaticRouter : StaticRouter
{
protected static MatchCallbacks _matchCallbacks;
public MatchStaticRouter(
JsonUtil jsonUtil,
MatchCallbacks matchCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/match/available",
(
url,
info,
sessionID,
output
) => _matchCallbacks.ServerAvailable(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/updatePing",
(
url,
info,
sessionID,
output
) => _matchCallbacks.UpdatePing(url, info as UpdatePingRequestData, sessionID),
typeof(UpdatePingRequestData)),
new RouteAction(
"/client/match/join",
(
url,
info,
sessionID,
output
) => _matchCallbacks.JoinMatch(url, info as MatchGroupStartGameRequest, sessionID),
typeof(MatchGroupStartGameRequest)),
new RouteAction(
"/client/match/exit",
(
url,
info,
sessionID,
output
) => _matchCallbacks.ExitMatch(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/delete",
(
url,
info,
sessionID,
output
) => _matchCallbacks.DeleteGroup(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/leave",
(
url,
info,
sessionID,
output
) => _matchCallbacks.LeaveGroup(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/status",
(
url,
info,
sessionID,
output
) => _matchCallbacks.GetGroupStatus(url, info as MatchGroupStatusRequest, sessionID),
typeof(MatchGroupStatusRequest)),
new RouteAction(
"/client/match/group/start_game",
(
url,
info,
sessionID,
output
) => _matchCallbacks.JoinMatch(url, info as MatchGroupStartGameRequest, sessionID),
typeof(MatchGroupStartGameRequest)),
new RouteAction(
"/client/match/group/exit_from_menu",
(
url,
info,
sessionID,
output
) => _matchCallbacks.ExitFromMenu(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/current",
(
url,
info,
sessionID,
output
) => _matchCallbacks.GroupCurrent(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/looking/start",
(
url,
info,
sessionID,
output
) => _matchCallbacks.StartGroupSearch(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/looking/stop",
(
url,
info,
sessionID,
output
) => _matchCallbacks.StopGroupSearch(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/invite/send",
(
url,
info,
sessionID,
output
) => _matchCallbacks.SendGroupInvite(url, info as MatchGroupInviteSendRequest, sessionID),
typeof(MatchGroupInviteSendRequest)),
new RouteAction(
"/client/match/group/invite/accept",
(
url,
info,
sessionID,
output
) => _matchCallbacks.AcceptGroupInvite(url, info as RequestIdRequest, sessionID),
typeof(RequestIdRequest)),
new RouteAction(
"/client/match/group/invite/decline",
(
url,
info,
sessionID,
output
) => _matchCallbacks.DeclineGroupInvite(url, info as RequestIdRequest, sessionID),
typeof(RequestIdRequest)),
new RouteAction(
"/client/match/group/invite/cancel",
(
url,
info,
sessionID,
output
) => _matchCallbacks.CancelGroupInvite(url, info as RequestIdRequest, sessionID),
typeof(RequestIdRequest)),
new RouteAction(
"/client/match/group/invite/cancel-all",
(
url,
info,
sessionID,
output
) => _matchCallbacks.CancelAllGroupInvite(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/transfer",
(
url,
info,
sessionID,
output
) => _matchCallbacks.TransferGroup(url, info as MatchGroupTransferRequest, sessionID),
typeof(MatchGroupTransferRequest)),
new RouteAction(
"/client/match/group/raid/ready",
(
url,
info,
sessionID,
output
) => _matchCallbacks.RaidReady(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/match/group/raid/not-ready",
(
url,
info,
sessionID,
output
) => _matchCallbacks.NotRaidReady(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/putMetrics",
(
url,
info,
sessionID,
output
) => _matchCallbacks.PutMetrics(url, info as PutMetricsRequestData, sessionID),
typeof(PutMetricsRequestData)),
new RouteAction(
"/client/analytics/event-disconnect",
(
url,
info,
sessionID,
output
) => _matchCallbacks.EventDisconnect(url, info as PutMetricsRequestData, sessionID),
typeof(PutMetricsRequestData)),
new RouteAction(
"/client/getMetricsConfig",
(
url,
info,
sessionID,
output
) => _matchCallbacks.GetMetrics(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/raid/configuration",
(
url,
info,
sessionID,
output
) => _matchCallbacks.GetRaidConfiguration(url, info as GetRaidConfigurationRequestData, sessionID),
typeof(GetRaidConfigurationRequestData)),
new RouteAction(
"/client/raid/configuration-by-profile",
(
url,
info,
sessionID,
output
) => _matchCallbacks.GetConfigurationByProfile(url, info as GetRaidConfigurationRequestData, sessionID),
typeof(GetRaidConfigurationRequestData)),
new RouteAction(
"/client/match/group/player/remove",
(
url,
info,
sessionID,
output
) => _matchCallbacks.RemovePlayerFromGroup(url, info as MatchGroupPlayerRemoveRequest, sessionID),
typeof(MatchGroupPlayerRemoveRequest)),
new RouteAction(
"/client/match/local/start",
(
url,
info,
sessionID,
output
) => _matchCallbacks.StartLocalRaid(url, info as StartLocalRaidRequestData, sessionID),
typeof(StartLocalRaidRequestData)),
new RouteAction(
"/client/match/local/end",
(
url,
info,
sessionID,
output
) => _matchCallbacks.EndLocalRaid(url, info as EndLocalRaidRequestData, sessionID),
typeof(EndLocalRaidRequestData))
]
)
{
_matchCallbacks = matchCallbacks;
}
}