From 295e18b6b60ef220d1201e9989c2abd06d216f69 Mon Sep 17 00:00:00 2001 From: CWX Date: Tue, 7 Jan 2025 14:33:32 +0000 Subject: [PATCH] add docBlocks to callbacks --- Core/Callbacks/AchievementCallbacks.cs | 14 + Core/Callbacks/BotCallbacks.cs | 38 +++ Core/Callbacks/BuildsCallbacks.cs | 35 +++ Core/Callbacks/BundleCallbacks.cs | 14 +- Core/Callbacks/ClientLogCallbacks.cs | 15 ++ Core/Callbacks/CustomizationCallbacks.cs | 64 ++++- Core/Callbacks/DataCallbacks.cs | 84 ++++++ Core/Callbacks/DialogCallbacks.cs | 147 ++++++++++ Core/Callbacks/GameCallbacks.cs | 119 +++++++- Core/Callbacks/HealthCallbacks.cs | 31 +++ Core/Callbacks/HideoutCallbacks.cs | 114 ++++++++ Core/Callbacks/InraidCallbacks.cs | 19 ++ Core/Callbacks/InsuranceCallbacks.cs | 14 + Core/Callbacks/InventoryCallbacks.cs | 67 +++++ Core/Callbacks/ItemEventCallbacks.cs | 6 + Core/Callbacks/LocationCallbacks.cs | 16 ++ Core/Callbacks/MatchCallbacks.cs | 192 ++++++++++++- Core/Callbacks/NoteCallbacks.cs | 24 ++ Core/Callbacks/NotifierCallbacks.cs | 26 ++ Core/Callbacks/PrestigeCallbacks.cs | 16 ++ Core/Callbacks/ProfileCallbacks.cs | 104 ++++++- Core/Callbacks/QuestCallbacks.cs | 48 ++++ Core/Callbacks/RagfairCallbacks.cs | 66 +++++ Core/Callbacks/RepairCallbacks.cs | 18 ++ Core/Callbacks/TradeCallbacks.cs | 24 ++ Core/Callbacks/TraderCallbacks.cs | 32 +++ Core/Callbacks/WeatherCallbacks.cs | 16 ++ Core/Callbacks/WishlistCallbacks.cs | 24 ++ Core/Generators/BotGenerator.cs | 268 ++++++++++++++++++- Core/Models/Eft/Game/CurrentGroupResponse.cs | 43 +++ 30 files changed, 1679 insertions(+), 19 deletions(-) create mode 100644 Core/Models/Eft/Game/CurrentGroupResponse.cs diff --git a/Core/Callbacks/AchievementCallbacks.cs b/Core/Callbacks/AchievementCallbacks.cs index c55c9dc5..d2d43850 100644 --- a/Core/Callbacks/AchievementCallbacks.cs +++ b/Core/Callbacks/AchievementCallbacks.cs @@ -11,11 +11,25 @@ public class AchievementCallbacks } + /// + /// Handle client/achievement/list + /// + /// + /// + /// + /// public GetBodyResponseData GetAchievements(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/achievement/statistic + /// + /// + /// + /// + /// public GetBodyResponseData Statistic(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/BotCallbacks.cs b/Core/Callbacks/BotCallbacks.cs index be24b8b3..645fe536 100644 --- a/Core/Callbacks/BotCallbacks.cs +++ b/Core/Callbacks/BotCallbacks.cs @@ -12,31 +12,69 @@ public class BotCallbacks } + /// + /// Handle singleplayer/settings/bot/limit + /// Is called by client to define each bot roles wave limit + /// + /// + /// + /// + /// + /// public string GetBotLimit(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/bot/difficulty + /// + /// + /// + /// + /// public string GetBotDifficulty(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/bot/difficulties + /// + /// + /// + /// + /// public Dictionary GetAllBotDifficulties(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/bot/generate + /// + /// + /// + /// + /// public GetBodyResponseData> GenerateBots(string url, GenerateBotsRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/bot/maxCap + /// + /// public string GetBotCap() { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/bot/getBotBehaviours + /// + /// public string GetBotBehaviours() { throw new NotImplementedException(); diff --git a/Core/Callbacks/BuildsCallbacks.cs b/Core/Callbacks/BuildsCallbacks.cs index 7a59aa65..2948ef74 100644 --- a/Core/Callbacks/BuildsCallbacks.cs +++ b/Core/Callbacks/BuildsCallbacks.cs @@ -13,26 +13,61 @@ public class BuildsCallbacks } + /// + /// Handle client/builds/list + /// + /// + /// + /// + /// public GetBodyResponseData GetBuilds(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/builds/magazine/save + /// + /// + /// + /// + /// public NullResponseData CreateMagazineTemplate(string url, SetMagazineRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/builds/weapon/save + /// + /// + /// + /// + /// public NullResponseData SetWeapon(string url, PresetBuildActionRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/builds/equipment/save + /// + /// + /// + /// + /// public NullResponseData SetEquipment(string url, PresetBuildActionRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/builds/delete + /// + /// + /// + /// + /// public NullResponseData DeleteBuild(string url, RemoveBuildRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/BundleCallbacks.cs b/Core/Callbacks/BundleCallbacks.cs index 2900670a..c35544f7 100644 --- a/Core/Callbacks/BundleCallbacks.cs +++ b/Core/Callbacks/BundleCallbacks.cs @@ -10,12 +10,14 @@ public class BundleCallbacks { } - - public object SendBundle(string sessionID, object req, object res, object body) - { - throw new NotImplementedException(); - } + /// + /// Handle singleplayer/bundles + /// + /// + /// + /// + /// public string GetBundles(string url, object info, string sessionID) { throw new NotImplementedException(); @@ -23,6 +25,6 @@ public class BundleCallbacks public string GetBundle(string url, object info, string sessionID) { - throw new NotImplementedException(); + return "BUNDLE"; } } \ No newline at end of file diff --git a/Core/Callbacks/ClientLogCallbacks.cs b/Core/Callbacks/ClientLogCallbacks.cs index 45294e54..7af43dee 100644 --- a/Core/Callbacks/ClientLogCallbacks.cs +++ b/Core/Callbacks/ClientLogCallbacks.cs @@ -10,16 +10,31 @@ public class ClientLogCallbacks } + /// + /// Handle /singleplayer/log + /// + /// + /// + /// + /// public NullResponseData ClientLog(string url, ClientLogRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /singleplayer/release + /// + /// public string ReleaseNotes() { throw new NotImplementedException(); } + /// + /// Handle /singleplayer/enableBSGlogging + /// + /// public string BsgLogging() { throw new NotImplementedException(); diff --git a/Core/Callbacks/CustomizationCallbacks.cs b/Core/Callbacks/CustomizationCallbacks.cs index 515f43c7..c01f0afa 100644 --- a/Core/Callbacks/CustomizationCallbacks.cs +++ b/Core/Callbacks/CustomizationCallbacks.cs @@ -1,6 +1,7 @@ using Core.Models.Eft.Common; using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Customization; +using Core.Models.Eft.Hideout; using Core.Models.Eft.HttpResponse; using Core.Models.Eft.ItemEvent; @@ -13,23 +14,76 @@ public class CustomizationCallbacks } + /// + /// Handle client/trading/customization/storage + /// + /// + /// + /// + /// public GetBodyResponseData GetSuits(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/trading/customization + /// + /// + /// + /// + /// public GetBodyResponseData> GetTraderSuits(string url, object info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterResponse WearClothing(PmcData pmcData, WearClothingRequestData body, string sessionID) - { - throw new NotImplementedException(); - } - + /// + /// Handle CustomizationBuy event + /// + /// + /// + /// + /// public ItemEventRouterResponse BuyClothing(PmcData pmcData, BuyClothingRequestData body, string sessionID) { throw new NotImplementedException(); } + + /// + /// Handle client/hideout/customization/offer/list + /// + /// + /// + /// + /// + public GetBodyResponseData GetHideoutCustomisation(PmcData pmcData, EmptyRequestData body, string sessionID) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/customization/storage + /// + /// + /// + /// + /// + public GetBodyResponseData> GetStorage(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + /// + /// Handle CustomizationSet + /// + /// + /// + /// + /// + public ItemEventRouterResponse SetClothing(PmcData pmcData, CustomizationSetRequest info, string sessionID) + { + throw new NotImplementedException(); + } + } \ No newline at end of file diff --git a/Core/Callbacks/DataCallbacks.cs b/Core/Callbacks/DataCallbacks.cs index ec352da2..4ecfdb1d 100644 --- a/Core/Callbacks/DataCallbacks.cs +++ b/Core/Callbacks/DataCallbacks.cs @@ -14,36 +14,85 @@ public class DataCallbacks } + /// + /// Handle client/settings + /// + /// + /// + /// + /// public GetBodyResponseData GetSettings(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/globals + /// + /// + /// + /// + /// public GetBodyResponseData GetGlobals(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/items + /// + /// + /// + /// + /// public string GetTemplateItems(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/handbook/templates + /// + /// + /// + /// + /// public GetBodyResponseData GetTemplateHandbook(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/customization + /// + /// + /// + /// + /// public GetBodyResponseData> GetTemplateSuits(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/account/customization + /// + /// + /// + /// + /// public GetBodyResponseData> GetTemplateCharacter(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/hideout/settings + /// + /// + /// + /// + /// public GetBodyResponseData GetHideoutSettings(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); @@ -59,26 +108,61 @@ public class DataCallbacks throw new NotImplementedException(); } + /// + /// Handle client/languages + /// + /// + /// + /// + /// public GetBodyResponseData> GetLocalesLanguages(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/menu/locale + /// + /// + /// + /// + /// public GetBodyResponseData GetLocalesMenu(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/locale + /// + /// + /// + /// + /// public string GetLocalesGlobal(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/hideout/qte/list + /// + /// + /// + /// + /// public string GetQteList(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/items/prices/ + /// + /// + /// + /// + /// public GetBodyResponseData GetItemPrices(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/DialogCallbacks.cs b/Core/Callbacks/DialogCallbacks.cs index f4ad169e..a91bd19d 100644 --- a/Core/Callbacks/DialogCallbacks.cs +++ b/Core/Callbacks/DialogCallbacks.cs @@ -14,106 +14,253 @@ public class DialogCallbacks : OnUpdate } + /// + /// Handle client/friend/list + /// + /// + /// + /// + /// public GetBodyResponseData GetFriendList(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/chatServer/list + /// + /// + /// + /// + /// public GetBodyResponseData> GetChatServerList(string url, GetChatServerListRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/list + /// + /// + /// + /// + /// public GetBodyResponseData> GetMailDialogList(string url, GetMailDialogListRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/view + /// + /// + /// + /// + /// public GetBodyResponseData GetMailDialogView(string url, GetMailDialogViewRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/info + /// + /// + /// + /// + /// public GetBodyResponseData GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/remove + /// + /// + /// + /// + /// public GetBodyResponseData> RemoveDialog(string url, RemoveDialogRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/pin + /// + /// + /// + /// + /// public GetBodyResponseData> PinDialog(string url, PinDialogRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/unpin + /// + /// + /// + /// + /// public GetBodyResponseData> UnpinDialog(string url, PinDialogRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/read + /// + /// + /// + /// + /// public GetBodyResponseData> SetRead(string url, SetDialogReadRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/mail/dialog/getAllAttachments + /// + /// + /// + /// + /// public GetBodyResponseData GetAllAttachments(string url, EmptyRequestData info, string sessionID) // TODO: Fix type - GetBodyResponseData { throw new NotImplementedException(); } + /// + /// Handle client/mail/msg/send + /// + /// + /// + /// + /// public GetBodyResponseData SendMessage(string url, SendMessageRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/list/outbox + /// + /// + /// + /// + /// public GetBodyResponseData> ListOutbox(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/list/inbox + /// + /// + /// + /// + /// public GetBodyResponseData> ListInbox(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/send + /// + /// + /// + /// + /// public GetBodyResponseData SendFriendRequest(string url, FriendRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/accept-all + /// + /// + /// + /// + /// public NullResponseData AcceptAllFriendRequests(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/accept + /// + /// + /// + /// + /// public GetBodyResponseData AcceptFriendRequest(string url, AcceptFriendRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/decline + /// + /// + /// + /// + /// public GetBodyResponseData DeclineFriendRequest(string url, DeclineFriendRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/request/cancel + /// + /// + /// + /// + /// public GetBodyResponseData CancelFriendRequest(string url, CancelFriendRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/delete + /// + /// + /// + /// + /// public NullResponseData DeleteFriend(string url, DeleteFriendRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/ignore/set + /// + /// + /// + /// + /// public NullResponseData IgnoreFriend(string url, UIDRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/friend/ignore/remove + /// + /// + /// + /// + /// public NullResponseData UnIgnoreFriend(string url, UIDRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/GameCallbacks.cs b/Core/Callbacks/GameCallbacks.cs index ee348b91..5001ff11 100644 --- a/Core/Callbacks/GameCallbacks.cs +++ b/Core/Callbacks/GameCallbacks.cs @@ -23,71 +23,182 @@ public class GameCallbacks : OnLoad throw new NotImplementedException(); } - public NullResponseData VersionValidata(string url, VersionValidateRequestData info, string sessionID) + /// + /// Handle client/game/version/validate + /// + /// + /// + /// + /// + public NullResponseData VersionValidate(string url, VersionValidateRequestData info, string sessionID) { throw new NotImplementedException(); } - + + /// + /// Handle client/game/start + /// + /// + /// + /// + /// public GetBodyResponseData GameStart(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/logout + /// Save profiles on game close + /// + /// + /// + /// + /// public GetBodyResponseData GameLogout(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/config + /// + /// + /// + /// + /// public GetBodyResponseData GetGameConfig(string url, GameEmptyCrcRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/mode + /// + /// + /// + /// + /// public GetBodyResponseData GetGameMode(string url, GameModeRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/server/list + /// + /// + /// + /// + /// public GetBodyResponseData> GetServer(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/current + /// + /// + /// + /// + /// + public GetBodyResponseData GetCurrentGroup(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/checkVersion + /// + /// + /// + /// + /// public GetBodyResponseData ValidateGameVersion(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } - + + /// + /// Handle client/game/keepalive + /// + /// + /// + /// + /// public GetBodyResponseData GameKeepalive(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } - + + /// + /// Handle singleplayer/settings/version + /// + /// + /// + /// + /// public string GetVersion(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /client/report/send & /client/reports/lobby/send + /// + /// + /// + /// + /// public NullResponseData ReportNickname(string url, UIDRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/getRaidTime + /// + /// + /// + /// + /// public GetRaidTimeResponse GetRaidTime(string url, GetRaidTimeRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /client/survey + /// + /// + /// + /// + /// public object GetSurvey(string url, EmptyRequestData info, string sessionID) // TODO: Types given was NullResponseData | GetBodyResponseData { throw new NotImplementedException(); } + /// + /// Handle client/survey/view + /// + /// + /// + /// + /// public NullResponseData GetSurveyView(string url, object info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/survey/opinion + /// + /// + /// + /// + /// public NullResponseData SendSurveyOpinion(string url, SendSurveyOpinionRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/HealthCallbacks.cs b/Core/Callbacks/HealthCallbacks.cs index a8097493..d4e9bd03 100644 --- a/Core/Callbacks/HealthCallbacks.cs +++ b/Core/Callbacks/HealthCallbacks.cs @@ -12,21 +12,52 @@ public class HealthCallbacks } + /// + /// Custom spt server request found in modules/QTEPatch.cs + /// + /// + /// HealthListener.Instance.CurrentHealth class + /// session id + /// empty response, no data sent back to client public GetBodyResponseData handleWorkoutEffects(string url, WorkoutData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Eat + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse OffraidEat(PmcData pmcData, OffraidEatRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Heal + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse OffraidHeal(PmcData pmcData, OffraidHealRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RestoreHealth + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse HealthTreatment(PmcData pmcData, HealthTreatmentRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/HideoutCallbacks.cs b/Core/Callbacks/HideoutCallbacks.cs index f7167cf3..13abde75 100644 --- a/Core/Callbacks/HideoutCallbacks.cs +++ b/Core/Callbacks/HideoutCallbacks.cs @@ -15,81 +15,195 @@ public class HideoutCallbacks : OnUpdate } + /// + /// Handle HideoutUpgrade event + /// + /// + /// + /// + /// public ItemEventRouterResponse Upgrade(PmcData pmcData, HideoutUpgradeRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutUpgradeComplete event + /// + /// + /// + /// + /// public ItemEventRouterResponse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutPutItemsInAreaSlots + /// + /// + /// + /// + /// public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutTakeItemsFromAreaSlots event + /// + /// + /// + /// + /// public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutToggleArea event + /// + /// + /// + /// + /// public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutSingleProductionStart event + /// + /// + /// + /// + /// public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutScavCaseProductionStart event + /// + /// + /// + /// + /// public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutContinuousProductionStart + /// + /// + /// + /// + /// public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutTakeProduction event + /// + /// + /// + /// + /// public ItemEventRouterResponse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle HideoutQuickTimeEvent + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse HandleQTEEvent(PmcData pmcData, HandleQTEEventRequestData info, string sessionID, ItemEventRouterResponse output) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - RecordShootingRangePoints + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse RecordShootingRangePoints(PmcData pmcData, RecordShootingRangePoints info, string sessionID, ItemEventRouterResponse output) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - RecordShootingRangePoints + /// + /// + /// + /// + /// public ItemEventRouterResponse ImproveArea(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - HideoutCancelProductionCommand + /// + /// + /// + /// + /// public ItemEventRouterResponse CancelProduction(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - HideoutCircleOfCultistProductionStart + /// + /// + /// + /// + /// public ItemEventRouterResponse CicleOfCultistProductionStart(PmcData pmcData, HideoutCircleOfCultistProductionStartRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - HideoutDeleteProductionCommand + /// + /// + /// + /// + /// public ItemEventRouterResponse HideoutDeleteProductionRequestData(PmcData pmcData, HideoutDeleteProductionRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/items/moving - HideoutCustomizationApply + /// + /// + /// + /// + /// public ItemEventRouterResponse HideoutCustomizationApplyCommand(PmcData pmcData, HideoutCustomizationApplyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/InraidCallbacks.cs b/Core/Callbacks/InraidCallbacks.cs index 8717c79a..91c2f05b 100644 --- a/Core/Callbacks/InraidCallbacks.cs +++ b/Core/Callbacks/InraidCallbacks.cs @@ -11,16 +11,35 @@ public class InraidCallbacks } + /// + /// Handle client/location/getLocalloot + /// Store active map in profile + applicationContext + /// + /// + /// register player request + /// Session id + /// Null http response public NullResponseData RegisterPlayer(string url, RegisterPlayerRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle raid/profile/scavsave + /// + /// + /// Save progress request + /// Session id + /// Null http response public NullResponseData SaveProgress(string url, ScavSaveRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle singleplayer/settings/raid/menu + /// + /// JSON as string public string GetRaidMenuSettings() { throw new NotImplementedException(); diff --git a/Core/Callbacks/InsuranceCallbacks.cs b/Core/Callbacks/InsuranceCallbacks.cs index 3bfe0e7f..2071d528 100644 --- a/Core/Callbacks/InsuranceCallbacks.cs +++ b/Core/Callbacks/InsuranceCallbacks.cs @@ -16,11 +16,25 @@ public class InsuranceCallbacks : OnUpdate } + /// + /// Handle client/insurance/items/list/cost + /// + /// + /// + /// + /// public GetBodyResponseData GetInsuranceCost(string url, GetInsuranceCostRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Insure event + /// + /// + /// + /// + /// public ItemEventRouterResponse Insure(PmcData pmcData, InsureRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/InventoryCallbacks.cs b/Core/Callbacks/InventoryCallbacks.cs index 69f97ea0..87b36ab4 100644 --- a/Core/Callbacks/InventoryCallbacks.cs +++ b/Core/Callbacks/InventoryCallbacks.cs @@ -12,16 +12,40 @@ public class InventoryCallbacks } + /// + /// Handle client/game/profile/items/moving Move event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse MoveItem(PmcData pmcData, InventoryMoveRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Remove event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse RemoveItem(PmcData pmcData, InventoryRemoveRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Split event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse SplitItem(PmcData pmcData, InventorySplitRequestData info, string sessionID) { throw new NotImplementedException(); @@ -37,6 +61,14 @@ public class InventoryCallbacks throw new NotImplementedException(); } + /// + /// Handle Swap + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse SwapItem(PmcData pmcData, InventorySwapRequestData info, string sessionID) { throw new NotImplementedException(); @@ -72,11 +104,27 @@ public class InventoryCallbacks throw new NotImplementedException(); } + /// + /// Handle ReadEncyclopedia + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ReadEncyclopedia(PmcData pmcData, InventoryReadEncyclopediaRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle ApplyInventoryChanges + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse SortInventory(PmcData pmcData, InventorySortRequestData info, string sessionID) { throw new NotImplementedException(); @@ -97,6 +145,15 @@ public class InventoryCallbacks throw new NotImplementedException(); } + /// + /// Handle OpenRandomLootContainer + /// + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse OpenRandomLootContainer(PmcData pmcData, OpenRandomLootContainerRequestData info, string sessionID, ItemEventRouterResponse output) { @@ -113,6 +170,16 @@ public class InventoryCallbacks throw new NotImplementedException(); } + /// + /// TODO: MOVE INTO QUEST CODE + /// Handle game/profile/items/moving - QuestFail + /// + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse FailQuest(PmcData pmcData, FailQuestRequestData info, string sessionID, ItemEventRouterResponse output) { throw new NotImplementedException(); diff --git a/Core/Callbacks/ItemEventCallbacks.cs b/Core/Callbacks/ItemEventCallbacks.cs index fd8ce150..08c423eb 100644 --- a/Core/Callbacks/ItemEventCallbacks.cs +++ b/Core/Callbacks/ItemEventCallbacks.cs @@ -15,6 +15,12 @@ public class ItemEventCallbacks throw new NotImplementedException(); } + /// + /// Return true if the passed in list of warnings contains critical issues + /// + /// The list of warnings to check for critical errors + /// + /// public bool IsCriticalError(List warnings) { throw new NotImplementedException(); diff --git a/Core/Callbacks/LocationCallbacks.cs b/Core/Callbacks/LocationCallbacks.cs index bf3809df..cc2d23bf 100644 --- a/Core/Callbacks/LocationCallbacks.cs +++ b/Core/Callbacks/LocationCallbacks.cs @@ -12,11 +12,27 @@ public class LocationCallbacks } + /// + /// Handle client/locations + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetLocationData(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/airdrop/loot + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetAirdropLoot(string url, GetAirdropLootRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/MatchCallbacks.cs b/Core/Callbacks/MatchCallbacks.cs index d081af3a..4e7dac1f 100644 --- a/Core/Callbacks/MatchCallbacks.cs +++ b/Core/Callbacks/MatchCallbacks.cs @@ -12,136 +12,326 @@ public class MatchCallbacks } + /// + /// Handle client/match/updatePing + /// + /// + /// + /// + /// public NullResponseData UpdatePing(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/exit + /// + /// + /// + /// + /// public NullResponseData ExitMatch(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/exit_from_menu + /// + /// + /// + /// + /// public NullResponseData ExitFromMenu(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } - + + /// + /// Handle client/match/group/current + /// + /// + /// + /// + /// public GetBodyResponseData GroupCurrent(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/looking/start + /// + /// + /// + /// + /// public NullResponseData StartGroupSearch(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/looking/stop + /// + /// + /// + /// + /// public NullResponseData StopGroupSearch(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/invite/send + /// + /// + /// + /// + /// public GetBodyResponseData SendGroupInvite(string url, MatchGroupInviteSendRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/invite/accept + /// + /// + /// + /// + /// public GetBodyResponseData> AcceptGroupInvite(string url, RequestIdRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/invite/decline + /// + /// + /// + /// + /// public GetBodyResponseData DeclineGroupInvite(string url, RequestIdRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/invite/cancel + /// + /// + /// + /// + /// public GetBodyResponseData CancelGroupInvite(string url, RequestIdRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/transfer + /// + /// + /// + /// + /// public GetBodyResponseData TransferGroup(string url, MatchGroupTransferRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/invite/cancel-all + /// + /// + /// + /// + /// public GetBodyResponseData CancelAllGroupInvite(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/putMetrics + /// + /// + /// + /// + /// public NullResponseData PutMetrics(string url, PutMetricsRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/analytics/event-disconnect + /// + /// + /// + /// + /// public NullResponseData EventDisconnect(string url, PutMetricsRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/available + /// + /// + /// + /// + /// public GetBodyResponseData ServerAvailable(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle match/group/start_game + /// + /// + /// + /// + /// public GetBodyResponseData JoinMatch(string url, MatchGroupStartGameRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/getMetricsConfig + /// + /// + /// + /// + /// public GetBodyResponseData GetMetrics(string url, object info, string sessionID) // TODO: No type given { throw new NotImplementedException(); } + /// + /// Called periodically while in a group + /// Handle client/match/group/status + /// + /// + /// + /// + /// public GetBodyResponseData GetGroupStatus(string url, MatchGroupStatusRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/delete + /// + /// + /// + /// + /// public GetBodyResponseData DeleteGroup(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/leave + /// + /// + /// + /// + /// public GetBodyResponseData LeaveGroup(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/player/remove + /// + /// + /// + /// + /// public GetBodyResponseData RemovePlayerFromGroup(string url, MatchGroupPlayerRemoveRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/local/start + /// + /// + /// + /// + /// public GetBodyResponseData StartLocalRaid(string url, StartLocalRaidRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/local/end + /// + /// + /// + /// + /// public NullResponseData EndLocalRaid(string url, EndLocalRaidRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/raid/configuration + /// + /// + /// + /// + /// public NullResponseData GetRaidConfiguration(string url, GetRaidConfigurationRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/raid/configuration-by-profile + /// + /// + /// + /// + /// public NullResponseData GetConfigurationByProfile(string url, GetRaidConfigurationRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/raid/ready + /// + /// + /// + /// + /// public GetBodyResponseData RaidReady(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/match/group/raid/not-ready + /// + /// + /// + /// + /// public GetBodyResponseData NotRaidReady(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/NoteCallbacks.cs b/Core/Callbacks/NoteCallbacks.cs index d6b6fe27..267ff793 100644 --- a/Core/Callbacks/NoteCallbacks.cs +++ b/Core/Callbacks/NoteCallbacks.cs @@ -11,16 +11,40 @@ public class NoteCallbacks } + /// + /// Handle AddNote event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse AddNote(PmcData pmcData, NoteActionData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle EditNote event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse EditNote(PmcData pmcData, NoteActionData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle DeleteNote event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse DeleteNote(PmcData pmcData, NoteActionData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/NotifierCallbacks.cs b/Core/Callbacks/NotifierCallbacks.cs index 05f2e1f4..ecb00c5b 100644 --- a/Core/Callbacks/NotifierCallbacks.cs +++ b/Core/Callbacks/NotifierCallbacks.cs @@ -23,16 +23,42 @@ public class NotifierCallbacks throw new NotImplementedException(); } + /// + /// Handle push/notifier/get + /// Handle push/notifier/getwebsocket + /// TODO: removed from client? + /// + /// + /// + /// + /// + /// public GetBodyResponseData> GetNotifier(string url, object info, string sessionID) // TODO: no types were given { throw new NotImplementedException(); } + /// + /// Handle client/notifier/channel/create + /// + /// + /// + /// + /// + /// public GetBodyResponseData CreateNotifierChannel(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/select + /// + /// + /// + /// + /// + /// public GetBodyResponseData SelectProfile(string url, UIDRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/PrestigeCallbacks.cs b/Core/Callbacks/PrestigeCallbacks.cs index 296999fb..0175c7d2 100644 --- a/Core/Callbacks/PrestigeCallbacks.cs +++ b/Core/Callbacks/PrestigeCallbacks.cs @@ -11,11 +11,27 @@ public class PrestigeCallbacks } + /// + /// Handle client/prestige/list + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetPrestige(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/prestige/obtain + /// + /// + /// + /// + /// + /// public GetBodyResponseData ObtainPrestige(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/ProfileCallbacks.cs b/Core/Callbacks/ProfileCallbacks.cs index 2ba71ef6..1d141561 100644 --- a/Core/Callbacks/ProfileCallbacks.cs +++ b/Core/Callbacks/ProfileCallbacks.cs @@ -12,61 +12,163 @@ public class ProfileCallbacks } + /// + /// Handle client/game/profile/create + /// + /// + /// + /// + /// public GetBodyResponseData CreateProfile(string url, ProfileCreateRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/list + /// Get the complete player profile (scav + pmc character) + /// + /// + /// + /// + /// public GetBodyResponseData GetProfileData(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/savage/regenerate + /// Handle the creation of a scav profile for player + /// Occurs post-raid and when profile first created immediately after character details are confirmed by player + /// + /// + /// + /// + /// public GetBodyResponseData RegenerateScav(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/voice/change event + /// + /// + /// + /// + /// public NullResponseData ChangeVoice(string url, ProfileChangeVoiceRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/nickname/change event + /// Client allows player to adjust their profile name + /// + /// + /// + /// + /// public GetBodyResponseData ChangeNickname(string url, ProfileChangeNicknameRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/nickname/validate + /// + /// + /// + /// + /// public GetBodyResponseData ValidateNickname(string url, ValidateNicknameRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/game/profile/nickname/reserved + /// + /// + /// + /// + /// public GetBodyResponseData GetReservedNickname(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/profile/status + /// + /// + /// + /// + /// + public GetBodyResponseData GetProfileStatus(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/profile/status + /// Called when creating a character when choosing a character face/voice + /// + /// + /// + /// + /// public GetBodyResponseData GetOtherProfile(string url, GetOtherProfileRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/profile/view + /// Called when viewing another players profile + /// + /// + /// + /// + /// public GetBodyResponseData GetProfileSettings(string url, GetProfileSettingsRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/profile/settings + /// + /// + /// + /// + /// public GetBodyResponseData SearchFriend(string url, SearchFriendRequestData info, string sessionID) { throw new NotImplementedException(); } - + + /// + /// Handle launcher/profile/info + /// + /// + /// + /// + /// public string GetMiniProfile(string url, GetMiniProfileRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /launcher/profiles + /// + /// + /// + /// + /// public string GetAllMiniProfiles(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/QuestCallbacks.cs b/Core/Callbacks/QuestCallbacks.cs index 23d58e38..55181d69 100644 --- a/Core/Callbacks/QuestCallbacks.cs +++ b/Core/Callbacks/QuestCallbacks.cs @@ -13,31 +13,79 @@ public class QuestCallbacks } + /// + /// Handle RepeatableQuestChange event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ChangeRepeatableQuest(PmcData pmcData, RepeatableQuestChangeRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle QuestAccept event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse AcceptQuest(PmcData pmcData, AcceptQuestRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle QuestComplete event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse CompleteQuest(PmcData pmcData, CompleteQuestRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle QuestHandover event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse HandoverQuest(PmcData pmcData, HandoverQuestRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/quest/list + /// + /// + /// + /// + /// + /// public GetBodyResponseData> ListQuests(string url, ListQuestsRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/repeatalbeQuests/activityPeriods + /// + /// + /// + /// + /// + /// public GetBodyResponseData> ActivityPeriods(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/RagfairCallbacks.cs b/Core/Callbacks/RagfairCallbacks.cs index 7e4240e5..696f1af3 100644 --- a/Core/Callbacks/RagfairCallbacks.cs +++ b/Core/Callbacks/RagfairCallbacks.cs @@ -31,36 +31,94 @@ public class RagfairCallbacks : OnLoad, OnUpdate throw new NotImplementedException(); } + /// + /// Handle client/ragfair/search + /// Handle client/ragfair/find + /// + /// + /// + /// + /// + /// public GetBodyResponseData Search(string url, SearchRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/ragfair/itemMarketPrice + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetMarketPrice(string url, GetMarketPriceRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RagFairAddOffer event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse AddOffer(string url, AddOfferRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RagFairRemoveOffer event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse RemoveOffer(string url, RemoveOfferRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RagFairRenewOffer event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ExtendOffer(string url, ExtendOfferRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /client/items/prices + /// Called when clicking an item to list on flea + /// + /// + /// + /// + /// + /// public GetBodyResponseData> GetFleaPrices(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/reports/ragfair/send + /// + /// + /// + /// + /// + /// public NullResponseData SendReport(string url, SendRagfairReportRequestData info, string sessionID) { throw new NotImplementedException(); @@ -71,6 +129,14 @@ public class RagfairCallbacks : OnLoad, OnUpdate throw new NotImplementedException(); } + /// + /// Handle client/ragfair/offer/findbyid + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetFleaOfferById(string url, GetRagfairOfferByIdRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/RepairCallbacks.cs b/Core/Callbacks/RepairCallbacks.cs index af547f47..147b5b60 100644 --- a/Core/Callbacks/RepairCallbacks.cs +++ b/Core/Callbacks/RepairCallbacks.cs @@ -11,11 +11,29 @@ public class RepairCallbacks } + /// + /// Handle TraderRepair event + /// use trader to repair item + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse TraderRepair(PmcData pmcData, TraderRepairActionDataRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle Repair event + /// Use repair kit to repair item + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse Repair(PmcData pmcData, RepairActionDataRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/TradeCallbacks.cs b/Core/Callbacks/TradeCallbacks.cs index 8a62a3fc..7be61846 100644 --- a/Core/Callbacks/TradeCallbacks.cs +++ b/Core/Callbacks/TradeCallbacks.cs @@ -11,16 +11,40 @@ public class TradeCallbacks } + /// + /// Handle client/game/profile/items/moving TradingConfirm event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ProcessTrade(PmcData pmcData, ProcessBaseTradeRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RagFairBuyOffer event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ProcessRagfairTrade(PmcData pmcData, ProcessRagfairTradeRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle SellAllFromSavage event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse SellAllFromSavage(PmcData pmcData, SellScavItemsToFenceRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/TraderCallbacks.cs b/Core/Callbacks/TraderCallbacks.cs index 7551c929..5edcf29a 100644 --- a/Core/Callbacks/TraderCallbacks.cs +++ b/Core/Callbacks/TraderCallbacks.cs @@ -28,21 +28,53 @@ public class TraderCallbacks : OnLoad, OnUpdate throw new NotImplementedException(); } + /// + /// Handle client/trading/api/traderSettings + /// + /// + /// + /// + /// + /// public GetBodyResponseData> GetTraderSettings(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/trading/api/getTrader + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetTrader(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/trading/api/getTraderAssort + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetAssort(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle /singleplayer/moddedTraders + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetModdedTraderData(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/WeatherCallbacks.cs b/Core/Callbacks/WeatherCallbacks.cs index df26965d..b888f3de 100644 --- a/Core/Callbacks/WeatherCallbacks.cs +++ b/Core/Callbacks/WeatherCallbacks.cs @@ -12,11 +12,27 @@ public class WeatherCallbacks } + /// + /// Handle client/weather + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetWeather(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle client/localGame/weather + /// + /// + /// + /// + /// + /// public GetBodyResponseData GetLocalWeather(string url, EmptyRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/WishlistCallbacks.cs b/Core/Callbacks/WishlistCallbacks.cs index ed03271c..33e2e484 100644 --- a/Core/Callbacks/WishlistCallbacks.cs +++ b/Core/Callbacks/WishlistCallbacks.cs @@ -11,16 +11,40 @@ public class WishlistCallbacks } + /// + /// Handle AddToWishList event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse AddToWishlist(PmcData pmcData, AddToWishlistRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle RemoveFromWishList event + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse RemoveFromWishlist(PmcData pmcData, RemoveFromWishlistRequest info, string sessionID) { throw new NotImplementedException(); } + /// + /// Handle ChangeWishlistItemCategory + /// + /// + /// + /// + /// + /// public ItemEventRouterResponse ChangeWishlistItemCategory(PmcData pmcData, ChangeWishlistItemCategoryRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Generators/BotGenerator.cs b/Core/Generators/BotGenerator.cs index 52498e51..22517f32 100644 --- a/Core/Generators/BotGenerator.cs +++ b/Core/Generators/BotGenerator.cs @@ -1,10 +1,274 @@ -using Core.Models.Eft.Common.Tables; +using Core.Models.Common; +using Core.Models.Eft.Common; +using Core.Models.Eft.Common.Tables; +using Core.Models.Spt.Bots; +using Core.Models.Spt.Config; +using BodyPart = Core.Models.Eft.Common.Tables.BodyPart; namespace Core.Generators; public class BotGenerator { - public PmcInventory GenerateInventory(Inventory templateInventory, Chances equipmentChances, Generation generation, string botRole, bool isPmc) + private BotConfig _botConfig; + private PmcConfig _pmcConfig; + + public BotGenerator() + { + } + + /// + /// Generate a player scav bot object + /// + /// Session id + /// e.g. assault / pmcbot + /// easy/normal/hard/impossible + /// base bot template to use (e.g. assault/pmcbot) + /// profile of player generating pscav + /// BotBase + public BotBase GeneratePlayerScav(string sessionId, string role, string difficulty, BotType botTemplate, PmcData profile) + { + throw new NotImplementedException(); + } + + /// + /// Create 1 bot of the type/side/difficulty defined in botGenerationDetails + /// + /// Session id + /// details on how to generate bots + /// constructed bot + public BotBase PrepareAndGenerateBot(string sessionId, BotGenerationDetails botGenerationDetails) + { + throw new NotImplementedException(); + } + + /// + /// Get a clone of the default bot base object and adjust its role/side/difficulty values + /// + /// Role bot should have + /// Side bot should have + /// Difficult bot should have + /// Cloned bot base + public BotBase GetPreparedBotBase(string botRole, string botSide, string difficulty) + { + throw new NotImplementedException(); + } + + /// + /// Get a clone of the database\bots\base.json file + /// + /// BotBase object + public BotBase GetCloneOfBotBase() + { + throw new NotImplementedException(); + } + + /// + /// Create a IBotBase object with equipment/loot/exp etc + /// + /// Session id + /// Bots base file + /// Bot template from db/bots/x.json + /// details on how to generate the bot + /// BotBase object + public BotBase GenerateBot(string sessionId, BotBase bot, BotType botJsonTemplate, BotGenerationDetails botGenerationDetails) + { + throw new NotImplementedException(); + } + + /// + /// Should this bot have a name like "name (Pmc Name)" and be alterd by client patch to be hostile to player + /// + /// Role bot has + /// True if name should be simulated pscav + public bool ShouldSimulatePlayerScav(string botRole) + { + throw new NotImplementedException(); + } + + /// + /// Get exp for kill by bot difficulty + /// + /// Dict of difficulties and experience + /// the killed bots difficulty + /// Role of bot (optional, used for error logging) + /// Experience for kill + public int GetExperienceRewardForKillByDifficulty(Dictionary experience, string botDifficulty, string role) + { + throw new NotImplementedException(); + } + + /// + /// Get the standing value change when player kills a bot + /// + /// Dictionary of standing values keyed by bot difficulty + /// Difficulty of bot to look up + /// Role of bot (optional, used for error logging) + /// Standing change value + public int GetStandingChangeForKillByDifficulty(Dictionary standingForKill, string botDifficulty, string role) + { + throw new NotImplementedException(); + } + + /// + /// Get the agressor bonus value when player kills a bot + /// + /// Dictionary of standing values keyed by bot difficulty + /// Difficulty of bot to look up + /// Role of bot (optional, used for error logging) + /// Standing change value + public int GetAgressorBonusByDifficulty(Dictionary aggressorBonus, string botDifficulty, string role) + { + throw new NotImplementedException(); + } + + /// + /// Set weighting of flagged equipment to 0 + /// + /// Bot data to adjust + /// Generation details of bot + public void FilterBlacklistedGear(BotType botJsonTemplate, BotGenerationDetails botGenerationDetails) + { + throw new NotImplementedException(); + } + + /// + /// TODO: Complete Summary + /// + /// Bot data to adjust + public void AddAdditionalPocketLootWeightsForUnheardBot(BotType botJsonTemplate) + { + throw new NotImplementedException(); + } + + /// + /// Remove items from item.json/lootableItemBlacklist from bots inventory + /// + /// Bot to filter + public void RemoveBlacklistedLootFromBotTemplate(BotTypeInventory botInventory) + { + throw new NotImplementedException(); + } + + /// + /// Choose various appearance settings for a bot using weights: head/body/feet/hands + /// + /// Bot to adjust + /// Appearance settings to choose from + /// Generation details + public void SetBotAppearance(BotBase bot, Appearance appearance, BotGenerationDetails botGenerationDetails) + { + throw new NotImplementedException(); + } + + /// + /// Log the number of PMCs generated to the debug console + /// + /// Generated bot array, ready to send to client + public void LogPmcGeneratedCount(List output) + { + throw new NotImplementedException(); + } + + /// + /// Converts health object to the required format + /// + /// health object from bot json + /// Is a pscav bot being generated + /// Health object + public Health GenerateHealth(Health healthObj, bool playerScav = false) + { + throw new NotImplementedException(); + } + + /// + /// Sum up body parts max hp values, return the bodypart collection with lowest value + /// + /// Body parts to sum up + /// Lowest hp collection + public BodyPart? GetLowestHpBody(List bodies) // TODO: there are two types of body parts + { + throw new NotImplementedException(); + } + + /// + /// Get a bots skills with randomsied progress value between the min and max values + /// + /// Skills that should have their progress value randomised + /// Skills + public Skills GenerateSkills(BaseJsonSkills botSkills) + { + throw new NotImplementedException(); + } + + /// + /// Randomise the progress value of passed in skills based on the min/max value + /// + /// Skills to randomise + /// Are the skills 'common' skills + /// Skills with randomised progress values as an array + public List GetSkillsWithRandomisedProgressValue(Dictionary skills, bool isCommonSkills) + { + throw new NotImplementedException(); + } + + /// + /// Generate an id+aid for a bot and apply + /// + /// bot to update + /// updated IBotBase object // TODO: Node server claims this in summary but is void + public void AddIdsToBot(BotBase bot) + { + throw new NotImplementedException(); + } + + /// + /// Update a profiles profile.Inventory.equipment value with a freshly generated one. + /// Update all inventory items that make use of this value too. + /// + /// Profile to update + public void GenerateInventoryId(BotBase profile) + { + throw new NotImplementedException(); + } + + /// + /// Randomise a bots game version and account category. + /// Chooses from all the game versions (standard, eod etc). + /// Chooses account type (default, Sherpa, etc). + /// + /// bot info object to update + /// Chosen game version + public string SetRandomisedGameVersionAndCategory(Info botInfo) // TODO: there are two types of Info + { + throw new NotImplementedException(); + } + + /// + /// Add a side-specific (usec/bear) dogtag item to a bots inventory + /// + /// bot to add dogtag to + /// Bot with dogtag added // TODO: Node server claims this in summary but is void + public void AddDogtagToBot(BotBase bot) + { + throw new NotImplementedException(); + } + + /// + /// Get a dogtag tpl that matches the bots game version and side + /// + /// Usec/Bear + /// edge_of_darkness / standard + /// item tpl + public string GetDogtagTplByGameVersionAndSide(string side, string gameVersion) + { + throw new NotImplementedException(); + } + + /// + /// Adjust a PMCs pocket tpl to UHD if necessary, otherwise do nothing + /// + /// Pmc object to adjust + public void SetPmcPocketsByGameVersion(BotBase bot) { throw new NotImplementedException(); } diff --git a/Core/Models/Eft/Game/CurrentGroupResponse.cs b/Core/Models/Eft/Game/CurrentGroupResponse.cs new file mode 100644 index 00000000..eebfd67c --- /dev/null +++ b/Core/Models/Eft/Game/CurrentGroupResponse.cs @@ -0,0 +1,43 @@ +using System.Text.Json.Serialization; +using Core.Models.Enums; + +namespace Core.Models.Eft.Game; + +public class CurrentGroupResponse +{ + [JsonPropertyName("squad")] + public List Squad { get; set; } +} + +public class CurrentGroupSquadMember +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("aid")] + public string Aid { get; set; } + + [JsonPropertyName("info")] + public CurrentGroupMemberInfo Info { get; set; } + + [JsonPropertyName("isLeader")] + public bool IsLeader { get; set; } + + [JsonPropertyName("isReady")] + public bool IsReady { get; set; } +} + +public class CurrentGroupMemberInfo +{ + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("Side")] + public string Side { get; set; } + + [JsonPropertyName("Level")] + public string Level { get; set; } + + [JsonPropertyName("MemberCategory")] + public MemberCategory MemberCategory { get; set; } +} \ No newline at end of file