Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Routers/Static/MatchStaticRouter.cs
T

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