257 lines
11 KiB
C#
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)
|
|
),
|
|
]
|
|
) { }
|
|
}
|