From 59d33d2621f408b3ca9d230ca9d8711bf0e576cb Mon Sep 17 00:00:00 2001 From: Chomp Date: Sun, 20 Jul 2025 11:57:15 +0100 Subject: [PATCH] Deconstructed dict KvP to improve readabiltiy + string to mongoId conversions --- .../Callbacks/BtrDeliveryCallbacks.cs | 4 ++-- .../Controllers/DialogueController.cs | 4 ++-- .../Controllers/HideoutController.cs | 16 ++++++++-------- .../Controllers/InsuranceController.cs | 12 ++++++------ .../Controllers/LauncherV2Controller.cs | 8 ++++---- .../Models/Eft/Common/Tables/Quest.cs | 1 + ...ideoutCustomizationSetMannequinPoseRequest.cs | 2 +- .../Models/Eft/Wishlist/AddToWishlistRequest.cs | 3 ++- .../Eft/Wishlist/RemoveFromWishlistRequest.cs | 3 ++- 9 files changed, 28 insertions(+), 25 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs index ffcf0258..2d578eab 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/BtrDeliveryCallbacks.cs @@ -42,9 +42,9 @@ public class BtrDeliveryCallbacks( protected void ProcessDeliveries() { // Process each installed profile. - foreach (var sessionId in saveServer.GetProfiles()) + foreach (var (sessionId, _) in saveServer.GetProfiles()) { - ProcessDeliveryByProfile(sessionId.Key); + ProcessDeliveryByProfile(sessionId); } } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs index 04ff5891..2a4f8833 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs @@ -55,9 +55,9 @@ public class DialogueController( public void Update() { var profiles = saveServer.GetProfiles(); - foreach (var kvp in profiles) + foreach (var (sessionId, _) in profiles) { - RemoveExpiredItemsFromMessages(kvp.Key); + RemoveExpiredItemsFromMessages(sessionId); } } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs index 934f88bf..30714e89 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs @@ -1299,13 +1299,13 @@ public class HideoutController( ) { var ongoingProductions = pmcData.Hideout.Production; - string? prodId = null; - foreach (var production in ongoingProductions) + MongoId? prodId = null; + foreach (var (ongoingProdId, ongoingProduction) in ongoingProductions) // Production or ScavCase { - if (production.Value.RecipeId == request.RecipeId) + if (ongoingProduction?.RecipeId == request.RecipeId) { - prodId = production.Key; // Set to objects key + prodId = ongoingProdId; // Set to objects key break; } } @@ -1345,10 +1345,10 @@ public class HideoutController( output.ProfileChanges[sessionID].Production.Remove(request.RecipeId); // Flag as complete - will be cleaned up later by hideoutController.update() - pmcData.Hideout.Production[prodId].SptIsComplete = true; + pmcData.Hideout.Production[prodId.Value].SptIsComplete = true; // Crafting complete, flag - pmcData.Hideout.Production[prodId].InProgress = false; + pmcData.Hideout.Production[prodId.Value].InProgress = false; } /// @@ -1784,11 +1784,11 @@ public class HideoutController( return eventOutputHolder.GetOutput(sessionId); } - foreach (var poseKvP in request.Poses) + foreach (var (poseKey, poseValue) in request.Poses) { // Nullguard pmcData.Hideout.MannequinPoses ??= []; - pmcData.Hideout.MannequinPoses[poseKvP.Key] = poseKvP.Value; + pmcData.Hideout.MannequinPoses[poseKey] = poseValue; } return eventOutputHolder.GetOutput(sessionId); diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs index 1a175713..dd00a38d 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs @@ -50,9 +50,9 @@ public class InsuranceController( public void ProcessReturn() { // Process each installed profile. - foreach (var sessionId in saveServer.GetProfiles()) + foreach (var (sessionId, _) in saveServer.GetProfiles()) { - ProcessReturnByProfile(sessionId.Key); + ProcessReturnByProfile(sessionId); } } @@ -444,17 +444,17 @@ public class InsuranceController( HashSet toDelete ) { - foreach (var parentObj in mainParentToAttachmentsMap) + foreach (var (key, attachments) in mainParentToAttachmentsMap) { // Skip processing if parentId is already marked for deletion, as all attachments for that parent will // already be marked for deletion as well. - if (toDelete.Contains(parentObj.Key)) + if (toDelete.Contains(key)) { continue; } // Log the parent item's name. - itemsMap.TryGetValue(parentObj.Key, out var parentItem); + itemsMap.TryGetValue(key, out var parentItem); var parentName = itemHelper.GetItemName(parentItem.Template); if (logger.IsLogEnabled(LogLevel.Debug)) { @@ -462,7 +462,7 @@ public class InsuranceController( } // Process the attachments for this individual parent item. - ProcessAttachmentByParent(parentObj.Value, insuredTraderId.Value, toDelete); + ProcessAttachmentByParent(attachments, insuredTraderId.Value, toDelete); } } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs index d1f0e068..9e7f3628 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs @@ -39,17 +39,17 @@ public class LauncherV2Controller( /// Returns all available profile types and descriptions for creation. /// - This is also localised. /// - /// + /// dict of profile names + description public Dictionary Types() { var result = new Dictionary(); var dbProfiles = databaseService.GetProfileTemplates(); - foreach (var profileKvP in dbProfiles) + foreach (var (templateName, template) in dbProfiles) { result.TryAdd( - profileKvP.Key, - serverLocalisationService.GetText(profileKvP.Value.DescriptionLocaleKey) + templateName, + serverLocalisationService.GetText(template.DescriptionLocaleKey) ); } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs index 3a99a25a..109ae6c6 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -200,6 +200,7 @@ public record QuestCondition /// /// Can be: string[] or string + /// Can be mongoId or string e.g. event_labyrinth_06_mech_place_01 /// [JsonPropertyName("target")] [JsonConverter(typeof(ListOrTConverterFactory))] diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs index ab6d1152..cf07f281 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Hideout/HideoutCustomizationSetMannequinPoseRequest.cs @@ -10,7 +10,7 @@ public record HideoutCustomizationSetMannequinPoseRequest : InventoryBaseActionR public Dictionary? ExtensionData { get; set; } [JsonPropertyName("poses")] - public Dictionary? Poses { get; set; } + public Dictionary? Poses { get; set; } [JsonPropertyName("timestamp")] public double? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/AddToWishlistRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/AddToWishlistRequest.cs index 13c55857..34434d97 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/AddToWishlistRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/AddToWishlistRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Wishlist; @@ -9,5 +10,5 @@ public record AddToWishlistRequest : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("items")] - public Dictionary? Items { get; set; } + public Dictionary? Items { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs index b9f63df0..b86b5c07 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Inventory; namespace SPTarkov.Server.Core.Models.Eft.Wishlist; @@ -9,5 +10,5 @@ public record RemoveFromWishlistRequest : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("items")] - public List? Items { get; set; } + public List? Items { get; set; } }