Lots of new things (#40)

* callbacks

* controllers

* Router override

* make requests use interface

* create Routers

* extra parts
This commit is contained in:
CWX
2025-01-12 15:35:32 +00:00
committed by GitHub
parent 1854ac4e2b
commit bb887b0901
85 changed files with 1961 additions and 117 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ using Core.Utils;
namespace Core.Callbacks;
[Injectable]
[Injectable(InjectableTypeOverride = typeof(BotCallbacks))]
public class BotCallbacks
{
protected BotController _botController;
+4 -3
View File
@@ -1,4 +1,5 @@
using Core.Annotations;
using Core.Models.Eft.Common;
using Core.Models.Enums;
using Core.Models.Spt.Config;
using Core.Servers;
@@ -6,7 +7,7 @@ using Core.Utils;
namespace Core.Callbacks;
[Injectable]
[Injectable(InjectableTypeOverride = typeof(BundleCallbacks))]
public class BundleCallbacks
{
protected HttpResponseUtil _httpResponseUtil;
@@ -34,10 +35,10 @@ public class BundleCallbacks
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
public string GetBundles(string url, object info, string sessionID)
public string GetBundles(string url, EmptyRequestData info, string sessionID)
{
// return _httpResponseUtil.NoBody(_bundleLoader.GetBundles());
throw new NotImplementedException();
return _httpResponseUtil.NoBody(new List<object>());
}
public string GetBundle(string url, object info, string sessionID)
+1 -1
View File
@@ -82,7 +82,7 @@ public class CustomizationCallbacks
/// <param name="body"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
public string GetHideoutCustomisation(PmcData pmcData, EmptyRequestData info, string sessionID)
public string GetHideoutCustomisation(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_customizationController.GetHideoutCustomisation(sessionID, info));
}
+1 -1
View File
@@ -12,7 +12,7 @@ using Core.Utils;
namespace Core.Callbacks;
[Injectable]
[Injectable(InjectableTypeOverride = typeof(DataCallbacks))]
public class DataCallbacks
{
protected HttpResponseUtil _httpResponseUtil;
+2 -1
View File
@@ -11,6 +11,7 @@ using Core.Utils;
namespace Core.Callbacks;
[Injectable(InjectableTypeOverride = typeof(OnLoad), TypePriority = OnLoadOrder.GameCallbacks)]
[Injectable(InjectableTypeOverride = typeof(GameCallbacks))]
public class GameCallbacks : OnLoad
{
protected HttpResponseUtil _httpResponseUtil;
@@ -214,7 +215,7 @@ public class GameCallbacks : OnLoad
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
public string GetSurveyView(string url, object info, string sessionID)
public string GetSurveyView(string url, SendSurveyOpinionRequest info, string sessionID)
{
return _httpResponseUtil.NullResponse();
}
+2 -2
View File
@@ -38,7 +38,7 @@ public class MatchCallbacks
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
public string UpdatePing(string url, EmptyRequestData info, string sessionID)
public string UpdatePing(string url, UpdatePingRequestData info, string sessionID)
{
return _httpResponseUtil.NullResponse();
}
@@ -230,7 +230,7 @@ public class MatchCallbacks
/// <param name="info"></param>
/// <param name="sessionID"></param>
/// <returns></returns>
public string GetMetrics(string url, object info, string sessionID)
public string GetMetrics(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_databaseService.GetMatch().Metrics);
}
+1 -1
View File
@@ -9,7 +9,7 @@ using Core.Utils;
namespace Core.Callbacks;
[Injectable]
[Injectable(InjectableTypeOverride = typeof(NotifierCallbacks))]
public class NotifierCallbacks
{
protected HttpResponseUtil _httpResponseUtil;
+1
View File
@@ -13,6 +13,7 @@ namespace Core.Callbacks;
[Injectable(InjectableTypeOverride = typeof(OnLoad), TypePriority = OnLoadOrder.TraderCallbacks)]
[Injectable(InjectableTypeOverride = typeof(OnUpdate), TypePriority = OnUpdateOrder.TraderCallbacks)]
[Injectable(InjectableTypeOverride = typeof(TraderCallbacks))]
public class TraderCallbacks : OnLoad, OnUpdate
{
protected HttpResponseUtil _httpResponseUtil;
+14 -1
View File
@@ -2,12 +2,21 @@ using Core.Annotations;
using Core.Models.Eft.Common;
using Core.Models.Eft.Game;
using Core.Models.Eft.Profile;
using ILogger = Core.Models.Utils.ILogger;
namespace Core.Controllers;
[Injectable]
public class GameController
{
protected ILogger _logger;
public GameController()
{
}
/// <summary>
/// Handle client/game/start
/// </summary>
@@ -54,7 +63,11 @@ public class GameController
string sessionId,
GameModeRequestData requestData)
{
throw new NotImplementedException();
return new()
{
GameMode = "pve",
BackendUrl = "127.0.0.1:6969"
};
}
/// <summary>
+1 -1
View File
@@ -100,6 +100,6 @@ public class InRaidController
string url,
string sessionId)
{
throw new NotImplementedException();
return _botConfig.AssaultToBossConversion.BossesToConvertToWeights.Keys.ToList();
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ public abstract class Router
{
protected List<HandledRoute> handledRoutes = [];
public string GetTopLevelRoute()
public virtual string GetTopLevelRoute()
{
return "spt";
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Bot;
public class GenerateBotsRequestData
public class GenerateBotsRequestData : IRequestData
{
[JsonPropertyName("conditions")]
public List<Condition>? Conditions { get; set; }
@@ -21,4 +22,4 @@ public class Condition
[JsonPropertyName("Difficulty")]
public string? Difficulty { get; set; }
}
}
+3 -2
View File
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Profile;
using Core.Models.Utils;
namespace Core.Models.Eft.Builds;
public class SetMagazineRequest
public class SetMagazineRequest : IRequestData
{
[JsonPropertyName("Id")]
public string? Id { get; set; }
@@ -22,4 +23,4 @@ public class SetMagazineRequest
[JsonPropertyName("BottomCount")]
public int? BottomCount { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Common.Request;
public class UIDRequestData
public class UIDRequestData : IRequestData
{
[JsonPropertyName("uid")]
public string? Uid { get; set; }
}
}
@@ -1,4 +1,5 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
@@ -14,8 +15,8 @@ public class DeclineFriendRequestData : BaseFriendRequest
{
}
public class BaseFriendRequest
public class BaseFriendRequest : IRequestData
{
[JsonPropertyName("profileId")]
public string? ProfileId { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class AddUserGroupMailRequest
public class AddUserGroupMailRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
[JsonPropertyName("uid")]
public string? Uid { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class ChangeGroupMailOwnerRequest
public class ChangeGroupMailOwnerRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
[JsonPropertyName("uid")]
public string? Uid { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class ClearMailMessageRequest
public class ClearMailMessageRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class CreateGroupMailRequest
public class CreateGroupMailRequest : IRequestData
{
[JsonPropertyName("Name")]
public string? Name { get; set; }
[JsonPropertyName("Users")]
public List<string>? Users { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class DeleteFriendRequest
public class DeleteFriendRequest : IRequestData
{
[JsonPropertyName("friend_id")]
public string? FriendId { get; set; }
}
}
+3 -2
View File
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class FriendRequestData
public class FriendRequestData : IRequestData
{
[JsonPropertyName("status")]
public int? Status { get; set; }
@@ -12,4 +13,4 @@ public class FriendRequestData
[JsonPropertyName("retryAfter")]
public int? RetryAfter { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class GetAllAttachmentsRequestData
public class GetAllAttachmentsRequestData : IRequestData
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class GetChatServerListRequestData
public class GetChatServerListRequestData : IRequestData
{
[JsonPropertyName("VersionId")]
public string? VersionId { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogInfoRequestData
public class GetMailDialogInfoRequestData : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogListRequestData
public class GetMailDialogListRequestData : IRequestData
{
[JsonPropertyName("limit")]
public int? Limit { get; set; }
[JsonPropertyName("offset")]
public int? Offset { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogViewRequestData
public class GetMailDialogViewRequestData : IRequestData
{
[JsonPropertyName("type")]
public MessageType? Type { get; set; }
@@ -16,4 +17,4 @@ public class GetMailDialogViewRequestData
[JsonPropertyName("time")]
public decimal? Time { get; set; } // decimal
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class PinDialogRequestData
public class PinDialogRequestData : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class RemoveDialogRequestData
public class RemoveDialogRequestData : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class RemoveMailMessageRequest
public class RemoveMailMessageRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class RemoveUserGroupMailRequest
public class RemoveUserGroupMailRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
[JsonPropertyName("uid")]
public string? Uid { get; set; }
}
}
+3 -2
View File
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class SendMessageRequest
public class SendMessageRequest : IRequestData
{
[JsonPropertyName("dialogId")]
public string? DialogId { get; set; }
@@ -16,4 +17,4 @@ public class SendMessageRequest
[JsonPropertyName("replyTo")]
public string? ReplyTo { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Dialog;
public class SetDialogReadRequestData
public class SetDialogReadRequestData : IRequestData
{
[JsonPropertyName("dialogId")]
public List<string>? Dialogs { get; set; }
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Game;
public class GameEmptyCrcRequestData
public class GameEmptyCrcRequestData : IRequestData
{
[JsonPropertyName("crc")]
public int? Crc { get; set; }
}
}
+3 -2
View File
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Game;
public class GameModeRequestData
public class GameModeRequestData : IRequestData
{
[JsonPropertyName("sessionMode")]
public string? SessionMode { get; set; }
}
}
+2 -2
View File
@@ -11,8 +11,8 @@ public enum SessionMode
public class GameModeResponse
{
[JsonPropertyName("gameMode")]
public SessionMode? GameMode { get; set; }
public string? GameMode { get; set; }
[JsonPropertyName("backendUrl")]
public string? BackendUrl { get; set; }
}
}
+3 -2
View File
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Game;
public class GetRaidTimeRequest
public class GetRaidTimeRequest : IRequestData
{
[JsonPropertyName("Side")]
public string? Side { get; set; }
[JsonPropertyName("Location")]
public string? Location { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Game;
public class SendSurveyOpinionRequest
public class SendSurveyOpinionRequest : IRequestData
{
[JsonPropertyName("surveyId")]
public int? SurveyId { get; set; }
@@ -21,4 +22,4 @@ public class SurveyOpinionAnswer
[JsonPropertyName("answers")]
public object? Answers { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Game;
public class VersionValidateRequestData
public class VersionValidateRequestData : IRequestData
{
[JsonPropertyName("version")]
public Version? Version { get; set; }
@@ -27,4 +28,4 @@ public class Version
[JsonPropertyName("taxonomy")]
public string? Taxonomy { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.InRaid;
public class RegisterPlayerRequestData
public class RegisterPlayerRequestData : IRequestData
{
[JsonPropertyName("crc")]
public int? Crc { get; set; }
@@ -12,4 +13,4 @@ public class RegisterPlayerRequestData
[JsonPropertyName("variantId")]
public int? VariantId { get; set; }
}
}
@@ -1,7 +1,8 @@
using Core.Models.Eft.Common;
using Core.Models.Utils;
namespace Core.Models.Eft.InRaid;
public class ScavSaveRequestData : PostRaidPmcData
public class ScavSaveRequestData : PostRaidPmcData, IRequestData
{
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.ItemEvent;
public class ItemEventRouterRequest
public class ItemEventRouterRequest : IRequestData
{
[JsonPropertyName("data")]
public List<Daum>? Data { get; set; }
@@ -51,4 +52,4 @@ public class Location
[JsonPropertyName("isSearched")]
public bool? IsSearched { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Location;
public class GetAirdropLootRequest
public class GetAirdropLootRequest : IRequestData
{
[JsonPropertyName("containerId")]
public string? ContainerId { get; set; }
}
}
@@ -2,10 +2,11 @@
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Enums;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class EndLocalRaidRequestData
public class EndLocalRaidRequestData : IRequestData
{
/// <summary>
/// ID of server player just left
@@ -119,4 +120,4 @@ public class TransitProfile
[JsonPropertyName("isSolo")]
public bool? IsSolo { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class GetRaidConfigurationRequestData : RaidSettings
public class GetRaidConfigurationRequestData : RaidSettings, IRequestData
{
[JsonPropertyName("keyId")]
public string? KeyId { get; set; }
[JsonPropertyName("MaxGroupCount")]
public int? MaxGroupCount { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class MatchGroupInviteSendRequest
public class MatchGroupInviteSendRequest : IRequestData
{
[JsonPropertyName("to")]
public string? To { get; set; }
[JsonPropertyName("inLobby")]
public bool? InLobby { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class MatchGroupPlayerRemoveRequest
public class MatchGroupPlayerRemoveRequest : IRequestData
{
[JsonPropertyName("aidToKick")]
public string? AidToKick { get; set; }
}
}
@@ -1,12 +1,13 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class MatchGroupStartGameRequest
public class MatchGroupStartGameRequest : IRequestData
{
[JsonPropertyName("groupId")]
public string? GroupId { get; set; }
[JsonPropertyName("servers")]
public List<Server>? Servers { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class MatchGroupStatusRequest
public class MatchGroupStatusRequest : IRequestData
{
[JsonPropertyName("location")]
public string? Location { get; set; }
@@ -22,4 +23,4 @@ public class MatchGroupStatusRequest
[JsonPropertyName("spawnPlace")]
public string? SpawnPlace { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class MatchGroupTransferRequest
public class MatchGroupTransferRequest : IRequestData
{
[JsonPropertyName("aidToChange")]
public string? AidToChange { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class PutMetricsRequestData
public class PutMetricsRequestData : IRequestData
{
[JsonPropertyName("sid")]
public string? SessionId { get; set; }
@@ -159,4 +160,4 @@ public class ClientEvents
[JsonPropertyName("GameStartedReal")]
public double? GameStartedReal { get; set; }
}
}
+3 -2
View File
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class RequestIdRequest
public class RequestIdRequest : IRequestData
{
[JsonPropertyName("requestId")]
public string? RequestId { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class StartLocalRaidRequestData
public class StartLocalRaidRequestData : IRequestData
{
[JsonPropertyName("serverId")]
public string? ServerId { get; set; }
@@ -29,4 +30,4 @@ public class StartLocalRaidRequestData
/** Should loot generation be skipped, default false */
[JsonPropertyName("sptSkipLootGeneration")]
public bool? ShouldSkipLootGeneration { get; set; }
}
}
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Match;
public class UpdatePingRequestData
public class UpdatePingRequestData : IRequestData
{
[JsonPropertyName("servers")]
public List<object>? servers { get; set; }
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
using Core.Models.Utils;
namespace Core.Models.Eft.PresetBuild;
public class PresetBuildActionRequestData
public class PresetBuildActionRequestData : IRequestData
{
[JsonPropertyName("Action")]
public string? Action { get; set; }
@@ -20,4 +21,4 @@ public class PresetBuildActionRequestData
[JsonPropertyName("Items")]
public List<Item>? Items { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.PresetBuild;
public class RemoveBuildRequestData
public class RemoveBuildRequestData : IRequestData
{
[JsonPropertyName("id")]
public string? Id { get; set; }
}
}
@@ -1,9 +1,10 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Eft.Quests;
public class ListQuestsRequestData
public class ListQuestsRequestData : IRequestData
{
[JsonPropertyName("completed")]
public bool? Completed { get; set; }
}
}
+3 -2
View File
@@ -1,8 +1,9 @@
using System.Text.Json.Serialization;
using Core.Models.Utils;
namespace Core.Models.Spt.Logging;
public class ClientLogRequest
public class ClientLogRequest : IRequestData
{
[JsonPropertyName("Source")]
public string? Source { get; set; }
@@ -18,4 +19,4 @@ public class ClientLogRequest
[JsonPropertyName("BackgroundColor")]
public string? BackgroundColor { get; set; }
}
}
+65
View File
@@ -0,0 +1,65 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class BotDynamicRouter : DynamicRouter
{
protected static BotCallbacks _botCallbacks;
public BotDynamicRouter(
JsonUtil jsonUtil,
BotCallbacks botCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/singleplayer/settings/bot/limit/",
(
url,
info,
sessionID,
output
) => _botCallbacks.GetBotLimit(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/settings/bot/difficulty/",
(
url,
info,
sessionID,
output
) => _botCallbacks.GetBotDifficulty(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/settings/bot/difficulties",
(
url,
info,
sessionID,
output
) => _botCallbacks.GetAllBotDifficulties(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/settings/bot/maxCap",
(
url,
info,
sessionID,
output
) => _botCallbacks.GetBotCap(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/settings/bot/getBotBehaviours/",
(
url,
info,
sessionID,
output
) => _botCallbacks.GetBotBehaviours())
]
)
{
_botCallbacks = botCallbacks;
}
}
@@ -0,0 +1,33 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class BundleDynamicRouter : DynamicRouter
{
protected static BundleCallbacks _bundleCallbacks;
public BundleDynamicRouter(
JsonUtil jsonUtil,
BundleCallbacks bundleCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/files/bundle",
(
url,
info,
sessionID,
output
) => _bundleCallbacks.GetBundle(url, info as EmptyRequestData, sessionID))
]
)
{
_bundleCallbacks = bundleCallbacks;
}
}
@@ -0,0 +1,33 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class CustomizationDynamicRouter : DynamicRouter
{
protected static CustomizationCallbacks _customizationCallbacks;
public CustomizationDynamicRouter(
JsonUtil jsonUtil,
CustomizationCallbacks customizationCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"",
(
url,
info,
sessionID,
output
) => _customizationCallbacks.GetTraderSuits(url, info as EmptyRequestData, sessionID))
]
)
{
_customizationCallbacks = customizationCallbacks;
}
}
+49
View File
@@ -0,0 +1,49 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class DataDynamicRouter : DynamicRouter
{
protected static DataCallbacks _dataCallbacks;
public DataDynamicRouter(
JsonUtil jsonUtil,
DataCallbacks dataCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/menu/locale/",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetLocalesMenu(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/locale/",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetLocalesGlobal(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/items/prices/",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetItemPrices(url, info as EmptyRequestData, sessionID)),
]
)
{
_dataCallbacks = dataCallbacks;
}
}
@@ -0,0 +1,39 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.InRaid;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class InraidDynamicRouter : DynamicRouter
{
protected static InraidCallbacks _inraidCallbacks;
public InraidDynamicRouter(
JsonUtil jsonUtil,
InraidCallbacks inraidCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/location/getLocalloot",
(
url,
info,
sessionID,
output
) => _inraidCallbacks.RegisterPlayer(url, info as RegisterPlayerRequestData, sessionID),
typeof(RegisterPlayerRequestData))
]
)
{
_inraidCallbacks = inraidCallbacks;
}
public override string GetTopLevelRoute()
{
return "spt-name";
}
}
@@ -0,0 +1,25 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class LocationDynamicRouter : DynamicRouter
{
public LocationDynamicRouter(
JsonUtil jsonUtil
) : base(
jsonUtil,
[]
)
{
}
public override string GetTopLevelRoute()
{
return "spt-loot";
}
}
@@ -0,0 +1,56 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class NotifierDynamicRouter : DynamicRouter
{
protected static NotifierCallbacks _notifierCallbacks;
public NotifierDynamicRouter(
JsonUtil jsonUtil,
NotifierCallbacks notifierCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/?last_id",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.Notify(url, info, sessionID)),
new RouteAction(
"/notifierServer",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.Notify(url, info, sessionID)),
new RouteAction(
"/push/notifier/get/",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.GetNotifier(url, info, sessionID)),
new RouteAction(
"/push/notifier/getwebsocket/",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.GetNotifier(url, info, sessionID)),
]
)
{
_notifierCallbacks = notifierCallbacks;
}
}
@@ -0,0 +1,41 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Dynamic;
[Injectable(InjectableTypeOverride = typeof(DynamicRouter))]
public class TraderDynamicRouter : DynamicRouter
{
protected static TraderCallbacks _traderCallbacks;
public TraderDynamicRouter(
JsonUtil jsonUtil,
TraderCallbacks traderCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/trading/api/getTrader/",
(
url,
info,
sessionID,
output
) => _traderCallbacks.GetTrader(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/trading/api/getTraderAssort/",
(
url,
info,
sessionID,
output
) => _traderCallbacks.GetAssort(url, info as EmptyRequestData, sessionID)),
]
)
{
_traderCallbacks = traderCallbacks;
}
}
@@ -0,0 +1,41 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class AchievementStaticRouter : StaticRouter
{
protected static AchievementCallbacks _achievementCallbacks;
public AchievementStaticRouter(
JsonUtil jsonUtil,
AchievementCallbacks achievementCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/achievement/list",
(
url,
info,
sessionID,
output
) => _achievementCallbacks.GetAchievements(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/achievement/statistic",
(
url,
info,
sessionID,
output
) => _achievementCallbacks.Statistic(url, info as EmptyRequestData, sessionID)),
]
)
{
_achievementCallbacks = achievementCallbacks;
}
}
+34
View File
@@ -0,0 +1,34 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Bot;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class BotStaticRouter : StaticRouter
{
protected static BotCallbacks _botCallbacks;
public BotStaticRouter(
JsonUtil jsonUtil,
BotCallbacks botCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"",
(
url,
info,
sessionID,
outout
) => _botCallbacks.GenerateBots(url, info as GenerateBotsRequestData, sessionID),
typeof(GenerateBotsRequestData))
]
)
{
_botCallbacks = botCallbacks;
}
}
+70
View File
@@ -0,0 +1,70 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Builds;
using Core.Models.Eft.Common;
using Core.Models.Eft.PresetBuild;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class BuildStaticRouter : StaticRouter
{
protected static BuildsCallbacks _buildsCallbacks;
public BuildStaticRouter(
JsonUtil jsonUtil,
BuildsCallbacks buildsCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/builds/list",
(
url,
info,
sessionID,
output
) => _buildsCallbacks.GetBuilds(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/builds/magazine/save",
(
url,
info,
sessionID,
output
) => _buildsCallbacks.CreateMagazineTemplate(url, info as SetMagazineRequest, sessionID),
typeof(SetMagazineRequest)),
new RouteAction(
"/client/builds/weapon/save",
(
url,
info,
sessionID,
output
) => _buildsCallbacks.SetWeapon(url, info as PresetBuildActionRequestData, sessionID),
typeof(PresetBuildActionRequestData)),
new RouteAction(
"/client/builds/equipment/save",
(
url,
info,
sessionID,
output
) => _buildsCallbacks.SetEquipment(url, info as PresetBuildActionRequestData, sessionID),
typeof(PresetBuildActionRequestData)),
new RouteAction(
"/client/builds/delete",
(
url,
info,
sessionID,
output
) => _buildsCallbacks.DeleteBuild(url, info as RemoveBuildRequestData, sessionID),
typeof(RemoveBuildRequestData)),
]
)
{
_buildsCallbacks = buildsCallbacks;
}
}
+33
View File
@@ -0,0 +1,33 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class BundleStaticRouter : StaticRouter
{
protected static BundleCallbacks _bundleCallbacks;
public BundleStaticRouter(
JsonUtil jsonUtil,
BundleCallbacks bundleCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/singleplayer/bundles",
(
url,
info,
sessionID,
output
) => _bundleCallbacks.GetBundles(url, info as EmptyRequestData, sessionID))
]
)
{
_bundleCallbacks = bundleCallbacks;
}
}
@@ -0,0 +1,50 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Spt.Logging;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class ClientLogStaticRouter : StaticRouter
{
protected static ClientLogCallbacks _clientLogCallbacks;
public ClientLogStaticRouter(
JsonUtil jsonUtil,
ClientLogCallbacks clientLogCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/singleplayer/log",
(
url,
info,
sessionID,
output
) => _clientLogCallbacks.ClientLog(url, info as ClientLogRequest, sessionID),
typeof(ClientLogRequest)),
new RouteAction(
"/singleplayer/release",
(
url,
info,
sessionID,
output
) => _clientLogCallbacks.ReleaseNotes()),
new RouteAction(
"/singleplayer/enableBSGlogging",
(
url,
info,
sessionID,
output
) => _clientLogCallbacks.BsgLogging())
]
)
{
_clientLogCallbacks = clientLogCallbacks;
}
}
@@ -0,0 +1,49 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class CustomizationStaticRouter : StaticRouter
{
protected static CustomizationCallbacks _customizationCallbacks;
public CustomizationStaticRouter(
JsonUtil jsonUtil,
CustomizationCallbacks customizationCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/trading/customization/storage",
(
url,
info,
sessionID,
output
) => _customizationCallbacks.GetSuits(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/hideout/customization/offer/list",
(
url,
info,
sessionID,
output
) => _customizationCallbacks.GetHideoutCustomisation(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/customization/storage",
(
url,
info,
sessionID,
output
) => _customizationCallbacks.GetStorage(url, info as EmptyRequestData, sessionID)),
]
)
{
_customizationCallbacks = customizationCallbacks;
}
}
+112
View File
@@ -0,0 +1,112 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class DataStaticRouter : StaticRouter
{
protected static DataCallbacks _dataCallbacks;
public DataStaticRouter(
JsonUtil jsonUtil,
DataCallbacks dataCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/settings",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetSettings(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/globals",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetGlobals(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/items",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetTemplateItems(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/handbook/templates",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetTemplateHandbook(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/customization",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetTemplateSuits(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/account/customization",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetTemplateCharacter(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/hideout/production/recipes",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetHideoutProduction(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/hideout/settings",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetHideoutSettings(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/hideout/areas",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetHideoutAreas(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/languages",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetLocalesLanguages(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/hideout/qte/list",
(
url,
info,
sessionID,
output
) => _dataCallbacks.GetQteList(url, info as EmptyRequestData, sessionID)),]
)
{
_dataCallbacks = dataCallbacks;
}
}
+266
View File
@@ -0,0 +1,266 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Request;
using Core.Models.Eft.Dialog;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class DialogStaticRouter : StaticRouter
{
protected static DialogueCallbacks _dialogueCallbacks;
public DialogStaticRouter(
JsonUtil jsonUtil,
DialogueCallbacks dialogueCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/chatServer/list",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetChatServerList(url, info as GetChatServerListRequestData, sessionID),
typeof(GetChatServerListRequestData)),
new RouteAction(
"/client/mail/dialog/list",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetMailDialogList(url, info as GetMailDialogListRequestData, sessionID),
typeof(GetMailDialogListRequestData)),
new RouteAction(
"/client/mail/dialog/view",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetMailDialogView(url, info as GetMailDialogViewRequestData, sessionID),
typeof(GetMailDialogViewRequestData)),
new RouteAction(
"/client/mail/dialog/info",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetMailDialogInfo(url, info as GetMailDialogInfoRequestData, sessionID),
typeof(GetMailDialogInfoRequestData)),
new RouteAction(
"/client/mail/dialog/remove",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.RemoveDialog(url, info as RemoveDialogRequestData, sessionID),
typeof(RemoveDialogRequestData)),
new RouteAction(
"/client/mail/dialog/pin",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.PinDialog(url, info as PinDialogRequestData, sessionID),
typeof(PinDialogRequestData)),
new RouteAction(
"/client/mail/dialog/unpin",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.UnpinDialog(url, info as PinDialogRequestData, sessionID),
typeof(PinDialogRequestData)),
new RouteAction(
"/client/mail/dialog/read",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.SetRead(url, info as SetDialogReadRequestData, sessionID),
typeof(SetDialogReadRequestData)),
new RouteAction(
"/client/mail/dialog/remove",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.RemoveMail(url, info as RemoveMailMessageRequest, sessionID),
typeof(RemoveMailMessageRequest)),
new RouteAction(
"/client/mail/dialog/getAllAttachments",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetAllAttachments(url, info as GetAllAttachmentsRequestData, sessionID),
typeof(GetAllAttachmentsRequestData)),
new RouteAction(
"/client/mail/msg/send",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.SendMessage(url, info as SendMessageRequest, sessionID),
typeof(SendMessageRequest)),
new RouteAction(
"client/mail/dialog/clear",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.ClearMail(url, info as ClearMailMessageRequest, sessionID),
typeof(ClearMailMessageRequest)),
new RouteAction(
"/client/mail/dialog/group/create",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.CreateGroupMail(url, info as CreateGroupMailRequest, sessionID),
typeof(CreateGroupMailRequest)),
new RouteAction(
"/client/mail/dialog/group/owner/change",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.ChangeMailGroupOwner(url, info as ChangeGroupMailOwnerRequest, sessionID),
typeof(ChangeGroupMailOwnerRequest)),
new RouteAction(
"/client/mail/dialog/group/users/add",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.AddUserToMail(url, info as AddUserGroupMailRequest, sessionID),
typeof(AddUserGroupMailRequest)),
new RouteAction(
"/client/mail/dialog/group/users/remove",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.RemoveUserFromMail(url, info as RemoveUserGroupMailRequest, sessionID),
typeof(RemoveUserGroupMailRequest)),
new RouteAction(
"/client/friend/list",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.GetFriendList(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/friend/request/list/outbox",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.ListOutbox(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/friend/request/list/inbox",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.ListInbox(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/friend/request/send",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.SendFriendRequest(url, info as FriendRequestData, sessionID),
typeof(FriendRequestData)),
new RouteAction(
"/client/friend/request/accept-all",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.AcceptAllFriendRequests(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/friend/request/accept",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.AcceptFriendRequest(url, info as AcceptFriendRequestData, sessionID),
typeof(AcceptFriendRequestData)),
new RouteAction(
"/client/friend/request/decline",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.DeclineFriendRequest(url, info as DeclineFriendRequestData, sessionID),
typeof(DeclineFriendRequestData)),
new RouteAction(
"/client/friend/request/cancel",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.CancelFriendRequest(url, info as CancelFriendRequestData, sessionID),
typeof(CancelFriendRequestData)),
new RouteAction(
"/client/friend/delete",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.DeleteFriend(url, info as DeleteFriendRequest, sessionID),
typeof(DeleteFriendRequest)),
new RouteAction(
"/client/friend/ignore/set",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.IgnoreFriend(url, info as UIDRequestData, sessionID),
typeof(UIDRequestData)),
new RouteAction(
"",
(
url,
info,
sessionID,
output
) => _dialogueCallbacks.UnIgnoreFriend(url, info as UIDRequestData, sessionID),
typeof(UIDRequestData)),
]
)
{
_dialogueCallbacks = dialogueCallbacks;
}
}
+168
View File
@@ -0,0 +1,168 @@
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;
}
}
+34
View File
@@ -0,0 +1,34 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Health;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class HealthStaticRouter : StaticRouter
{
protected static HealthCallbacks _healthCallbacks;
public HealthStaticRouter(
JsonUtil jsonUtil,
HealthCallbacks healthCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/hideout/workout",
(
url,
info,
sessionID,
output
) => _healthCallbacks.handleWorkoutEffects(url, info as WorkoutData, sessionID),
typeof(WorkoutData)),
]
)
{
_healthCallbacks = healthCallbacks;
}
}
+53
View File
@@ -0,0 +1,53 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.InRaid;
using Core.Utils;
using Microsoft.AspNetCore.Components.Web;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class InraidStaticRouter : StaticRouter
{
public InraidStaticRouter(InraidCallbacks inraidCallbacks, JsonUtil jsonUtil) : base(
jsonUtil,
[
new RouteAction(
"/raid/profile/scavsave",
(
url,
info,
sessionID,
output
) => inraidCallbacks.SaveProgress(url, info as ScavSaveRequestData, sessionID),
typeof(ScavSaveRequestData)),
new RouteAction(
"/singleplayer/settings/raid/menu",
(
url,
info,
sessionID,
output
) => inraidCallbacks.GetRaidMenuSettings()),
new RouteAction(
"/singleplayer/scav/traitorscavhostile",
(
url,
info,
sessionID,
output
) => inraidCallbacks.GetTraitorScavHostileChance(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/bossconvert",
(
url,
info,
sessionID,
output
) => inraidCallbacks.GetBossConvertSettings(url, info as EmptyRequestData, sessionID)),
])
{
}
}
@@ -0,0 +1,34 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Insurance;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class InsuranceStaticRouter : StaticRouter
{
protected static InsuranceCallbacks _insuranceCallbacks;
public InsuranceStaticRouter(
JsonUtil jsonUtil,
InsuranceCallbacks insuranceCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/insurance/items/list/cost",
(
url,
info,
sessionID,
output
) => _insuranceCallbacks.GetInsuranceCost(url, info as GetInsuranceCostRequestData, sessionID),
typeof(GetInsuranceCostRequestData))
]
)
{
_insuranceCallbacks = insuranceCallbacks;
}
}
@@ -0,0 +1,34 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.ItemEvent;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class ItemEventStaticRouter : StaticRouter
{
protected static ItemEventCallbacks _itemEventCallbacks;
public ItemEventStaticRouter(
JsonUtil jsonUtil,
ItemEventCallbacks itemEventCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/game/profile/items/moving",
(
url,
info,
sessionID,
output
) => _itemEventCallbacks.HandleEvents(url, info as ItemEventRouterRequest, sessionID),
typeof(ItemEventRouterRequest))
]
)
{
_itemEventCallbacks = itemEventCallbacks;
}
}
@@ -0,0 +1,43 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.Location;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class LocationStaticRouter : StaticRouter
{
protected static LocationCallbacks _locationCallbacks;
public LocationStaticRouter(
JsonUtil jsonUtil,
LocationCallbacks locationCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/locations",
(
url,
info,
sessionID,
output
) => _locationCallbacks.GetLocationData(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/airdrop/loot",
(
url,
info,
sessionID,
output
) => _locationCallbacks.GetAirdropLoot(url, info as GetAirdropLootRequest, sessionID),
typeof(GetAirdropLootRequest))
]
)
{
_locationCallbacks = locationCallbacks;
}
}
+266
View File
@@ -0,0 +1,266 @@
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;
}
}
@@ -0,0 +1,43 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Request;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class NotifierStaticRouter : StaticRouter
{
protected static NotifierCallbacks _notifierCallbacks;
public NotifierStaticRouter(
JsonUtil jsonUtil,
NotifierCallbacks notifierCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/notifier/channel/create",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.CreateNotifierChannel(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/game/profile/select",
(
url,
info,
sessionID,
output
) => _notifierCallbacks.SelectProfile(url, info as UIDRequestData, sessionID),
typeof(UIDRequestData)),
]
)
{
_notifierCallbacks = notifierCallbacks;
}
}
@@ -0,0 +1,41 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class PrestigeStaticRouter : StaticRouter
{
protected static PrestigeCallbacks _presetCallbacks;
public PrestigeStaticRouter(
JsonUtil jsonUtil,
PrestigeCallbacks prestigeCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"/client/prestige/list",
(
url,
info,
sessionID,
output
) => _presetCallbacks.GetPrestige(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/client/prestige/obtain",
(
url,
info,
sessionID,
output
) => _presetCallbacks.ObtainPrestige(url, info as EmptyRequestData, sessionID))
]
)
{
_presetCallbacks = prestigeCallbacks;
}
}
+42
View File
@@ -0,0 +1,42 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Models.Eft.Quests;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class QuestStaticRouter : StaticRouter
{
protected static QuestCallbacks _questCallbacks;
public QuestStaticRouter(
JsonUtil jsonUtil,
QuestCallbacks questCallbacks
) : base(
jsonUtil,
[
new RouteAction(
"",
(
url,
info,
sessionID,
output
) => _questCallbacks.ListQuests(url, info as ListQuestsRequestData, sessionID),
typeof(ListQuestsRequestData)),
new RouteAction(
"",
(
url,
info,
sessionID,
output
) => _questCallbacks.ActivityPeriods(url, info as EmptyRequestData, sessionID)),]
)
{
_questCallbacks = questCallbacks;
}
}
+42
View File
@@ -0,0 +1,42 @@
using Core.Annotations;
using Core.Callbacks;
using Core.DI;
using Core.Models.Eft.Common;
using Core.Utils;
namespace Core.Routers.Static;
[Injectable(InjectableTypeOverride = typeof(StaticRouter))]
public class TraderStaticRouter : StaticRouter
{
protected static TraderCallbacks _traderCallbacks;
public TraderStaticRouter(
JsonUtil jsonUtil,
TraderCallbacks traderCallbacks
) : base
(
jsonUtil,
[
new RouteAction(
"/client/trading/api/traderSettings",
(
url,
info,
sessionID,
output
) => _traderCallbacks.GetTraderSettings(url, info as EmptyRequestData, sessionID)),
new RouteAction(
"/singleplayer/moddedTraders",
(
url,
info,
sessionID,
output
) => _traderCallbacks.GetModdedTraderData(url, info as EmptyRequestData, sessionID))
]
)
{
_traderCallbacks = traderCallbacks;
}
}
+2 -15
View File
@@ -80,23 +80,10 @@ public class App
_logger.Debug("Commit: ${ProgramStatics.COMMIT}");
}
*/
foreach (var onLoad in _onLoad)
{
Console.WriteLine($"Start Onload: {onLoad.GetRoute()}");
foreach (var onLoad in _onLoad)
await onLoad.OnLoad();
Console.WriteLine($"finish Onload: {onLoad.GetRoute()}");
}
new Timer(_ =>
{
Console.WriteLine($"Start OnUpdate");
Update(_onUpdate);
Console.WriteLine($"Finish OnUpdate");
},
null,
TimeSpan.Zero,
TimeSpan.FromMilliseconds(5000));
new Timer(_ => Update(_onUpdate), null, TimeSpan.Zero, TimeSpan.FromMilliseconds(5000));
}
protected async Task Update(IEnumerable<OnUpdate> onUpdateComponents)