From cdc9cd59e20c52f40e8489c518676336fc291f40 Mon Sep 17 00:00:00 2001 From: Chomp Date: Wed, 6 Aug 2025 12:47:28 +0100 Subject: [PATCH] Replaced `Wishlist` property in profile with pure dictionary --- .../SPTarkov.Server.Core/Controllers/GameController.cs | 5 ++--- .../Controllers/WishlistController.cs | 9 ++++----- .../Generators/PlayerScavGenerator.cs | 3 +-- .../Models/Eft/Common/Tables/BotBase.cs | 3 +-- .../Services/CreateProfileService.cs | 3 +-- 5 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs index dffd6514..1d0e8778 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs @@ -13,7 +13,6 @@ using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; -using SPTarkov.Server.Core.Utils.Json; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Controllers; @@ -82,8 +81,8 @@ public class GameController( return; } - fullProfile.CharacterData!.PmcData!.WishList ??= new DictionaryOrList(new Dictionary(), []); - fullProfile.CharacterData.ScavData!.WishList ??= new DictionaryOrList(new Dictionary(), []); + fullProfile.CharacterData!.PmcData!.WishList ??= new(); + fullProfile.CharacterData.ScavData!.WishList ??= new(); if (fullProfile.DialogueRecords is not null) { diff --git a/Libraries/SPTarkov.Server.Core/Controllers/WishlistController.cs b/Libraries/SPTarkov.Server.Core/Controllers/WishlistController.cs index f7a24cb8..974e4f1c 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/WishlistController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/WishlistController.cs @@ -4,7 +4,6 @@ using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.ItemEvent; using SPTarkov.Server.Core.Models.Eft.Wishlist; using SPTarkov.Server.Core.Routers; -using SPTarkov.Server.Core.Utils.Json; namespace SPTarkov.Server.Core.Controllers; @@ -20,10 +19,10 @@ public class WishlistController(EventOutputHolder eventOutputHolder) /// public ItemEventRouterResponse AddToWishList(PmcData pmcData, AddToWishlistRequest request, MongoId sessionId) { - pmcData.WishList ??= new DictionaryOrList(new Dictionary(), []); + pmcData.WishList ??= new(); foreach (var item in request.Items) { - pmcData.WishList.Dictionary.Add(item.Key, item.Value); + pmcData.WishList.Add(item.Key, item.Value); } return eventOutputHolder.GetOutput(sessionId); @@ -40,7 +39,7 @@ public class WishlistController(EventOutputHolder eventOutputHolder) { foreach (var itemId in request.Items) { - pmcData.WishList.Dictionary.Remove(itemId); + pmcData.WishList.Remove(itemId); } return eventOutputHolder.GetOutput(sessionId); @@ -55,7 +54,7 @@ public class WishlistController(EventOutputHolder eventOutputHolder) /// public ItemEventRouterResponse ChangeWishListItemCategory(PmcData pmcData, ChangeWishlistItemCategoryRequest request, MongoId sessionId) { - pmcData.WishList.Dictionary[request.Item] = request.Category.Value; + pmcData.WishList[request.Item] = request.Category.Value; return eventOutputHolder.GetOutput(sessionId); } diff --git a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs index 5b782e62..2cf6dd60 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs @@ -12,7 +12,6 @@ using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; -using SPTarkov.Server.Core.Utils.Json; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Generators; @@ -109,7 +108,7 @@ public class PlayerScavGenerator( scavData.Quests = existingScavDataClone.Quests ?? []; scavData.TaskConditionCounters = existingScavDataClone.TaskConditionCounters ?? new Dictionary(); scavData.Notes = existingScavDataClone.Notes ?? new Notes { DataNotes = [] }; - scavData.WishList = existingScavDataClone.WishList ?? new DictionaryOrList(new Dictionary(), []); + scavData.WishList = existingScavDataClone.WishList ?? new(); scavData.Encyclopedia = pmcDataClone.Encyclopedia ?? new Dictionary(); // Add additional items to player scav as loot diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index 15d2b9fa..1b71f474 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -3,7 +3,6 @@ using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Notes; using SPTarkov.Server.Core.Models.Eft.Ragfair; using SPTarkov.Server.Core.Models.Enums; -using SPTarkov.Server.Core.Utils.Json; using SPTarkov.Server.Core.Utils.Json.Converters; namespace SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -105,7 +104,7 @@ public record BotBase [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("WishList")] [JsonConverter(typeof(ArrayToObjectFactoryConverter))] - public DictionaryOrList? WishList { get; set; } + public Dictionary? WishList { get; set; } [JsonPropertyName("moneyTransferLimitData")] public MoneyTransferLimits MoneyTransferLimitData { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs index 2b8f7972..67c28b7f 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs @@ -14,7 +14,6 @@ using SPTarkov.Server.Core.Routers; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; -using SPTarkov.Server.Core.Utils.Json; namespace SPTarkov.Server.Core.Services; @@ -68,7 +67,7 @@ public class CreateProfileService( pmcData.CoopExtractCounts = []; pmcData.Achievements = []; - pmcData.WishList = new DictionaryOrList([], []); + pmcData.WishList = new(); // Process handling if the account has been forced to wipe // BSG keeps both the achievements, prestige level and the total in-game time in a wipe