using SPTarkov.Server.Core.Controllers; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Match; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; using SPTarkov.Common.Annotations; using static SPTarkov.Server.Core.Services.MatchLocationService; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class MatchCallbacks( HttpResponseUtil _httpResponseUtil, MatchController _matchController, DatabaseService _databaseService ) { /// /// Handle client/match/updatePing /// /// /// /// Session/player id /// public string UpdatePing(string url, UpdatePingRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/exit /// /// /// /// Session/player id /// public string ExitMatch(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/group/exit_from_menu /// /// public string ExitFromMenu(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/group/current /// /// public string GroupCurrent(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody( new MatchGroupCurrentResponse { Squad = [] } ); } /// /// Handle client/match/group/looking/start /// /// public string StartGroupSearch(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/group/looking/stop /// /// public string StopGroupSearch(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/group/invite/send /// /// public string SendGroupInvite(string url, MatchGroupInviteSendRequest info, string sessionID) { return _httpResponseUtil.GetBody("2427943f23698ay9f2863735"); } /// /// Handle client/match/group/invite/accept /// /// public string AcceptGroupInvite(string url, RequestIdRequest info, string sessionID) { return _httpResponseUtil.GetBody( new List { new() } ); } /// /// Handle client/match/group/invite/decline /// /// /// /// Session/player id /// public string DeclineGroupInvite(string url, RequestIdRequest info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/invite/cancel /// /// /// /// Session/player id /// public string CancelGroupInvite(string url, RequestIdRequest info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/transfer /// /// /// /// Session/player id /// public string TransferGroup(string url, MatchGroupTransferRequest info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/invite/cancel-all /// /// public string CancelAllGroupInvite(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/putMetrics /// /// public string PutMetrics(string url, PutMetricsRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/analytics/event-disconnect /// /// public string EventDisconnect(string url, PutMetricsRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/available /// /// public string ServerAvailable(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(_matchController.GetEnabled()); } /// /// Handle match/group/start_game /// /// public string JoinMatch(string url, MatchGroupStartGameRequest info, string sessionID) { return _httpResponseUtil.GetBody(_matchController.JoinMatch(info, sessionID)); } /// /// Handle client/getMetricsConfig /// /// public string GetMetrics(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(_databaseService.GetMatch().Metrics); } /// /// Called periodically while in a group /// Handle client/match/group/status /// /// public string GetGroupStatus(string url, MatchGroupStatusRequest info, string sessionID) { return _httpResponseUtil.GetBody(_matchController.GetGroupStatus(info)); } /// /// Handle client/match/group/delete /// /// public string DeleteGroup(string url, DeleteGroupRequest info, string sessionID) { _matchController.DeleteGroup(info); return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/leave /// /// public string LeaveGroup(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/player/remove /// /// public string RemovePlayerFromGroup(string url, MatchGroupPlayerRemoveRequest info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/local/start /// /// public string StartLocalRaid(string url, StartLocalRaidRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_matchController.StartLocalRaid(sessionID, info)); } /// /// Handle client/match/local/end /// /// public string EndLocalRaid(string url, EndLocalRaidRequestData info, string sessionID) { _matchController.EndLocalRaid(sessionID, info); return _httpResponseUtil.NullResponse(); } /// /// Handle client/raid/configuration /// /// public string GetRaidConfiguration(string url, GetRaidConfigurationRequestData info, string sessionID) { _matchController.ConfigureOfflineRaid(info, sessionID); return _httpResponseUtil.NullResponse(); } /// /// Handle client/raid/configuration-by-profile /// /// /// /// Session/player id /// public string GetConfigurationByProfile(string url, GetRaidConfigurationRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/match/group/raid/ready /// /// public string RaidReady(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/match/group/raid/not-ready /// /// /// /// Session/player id /// public string NotRaidReady(string url, EmptyRequestData _, string sessionID) { return _httpResponseUtil.GetBody(true); } }