From a8308248d6fee9731509dace349751e2f6b9f861 Mon Sep 17 00:00:00 2001 From: Chomp Date: Wed, 2 Jul 2025 12:47:00 +0100 Subject: [PATCH] Replaced hashutil.generate with `new MongoId()` --- .../Controllers/HideoutController.cs | 2 +- .../Generators/BotInventoryGenerator.cs | 4 +- .../Generators/FenceBaseAssortGenerator.cs | 9 ++--- .../Generators/LocationLootGenerator.cs | 2 +- .../Generators/PlayerScavGenerator.cs | 4 +- .../Generators/ScavCaseRewardGenerator.cs | 3 +- .../Helpers/BotWeaponGeneratorHelper.cs | 14 ++----- .../SptCommands/GiveCommand/GiveSptCommand.cs | 11 ++---- .../ProfileCommand/ProfileSptCommand.cs | 9 +++-- .../TraderCommand/TraderSptCommand.cs | 5 ++- .../Helpers/HideoutHelper.cs | 7 ++-- .../Helpers/InRaidHelper.cs | 3 +- .../Helpers/InventoryHelper.cs | 2 +- .../Helpers/ItemHelper.cs | 38 +++++++++---------- .../Helpers/RewardHelper.cs | 4 +- .../Models/Eft/Common/Tables/BotBase.cs | 22 ++++++----- .../Models/Eft/Inventory/SetFavoriteItems.cs | 3 +- .../Eft/Profile/GetOtherProfileResponse.cs | 3 +- .../Models/Eft/Profile/SptProfile.cs | 3 +- .../Models/Spt/Dialog/SendMessageDetails.cs | 3 +- .../Services/AirdropService.cs | 2 +- .../Services/BtrDeliveryService.cs | 2 +- .../Services/CircleOfCultistService.cs | 4 +- .../Services/CreateProfileService.cs | 10 ++--- .../Services/ProfileFixerService.cs | 4 +- 25 files changed, 85 insertions(+), 88 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs index 4a525c49..a8aadaae 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HideoutController.cs @@ -350,7 +350,7 @@ public class HideoutController( // Add key/value to `hideoutAreaStashes` dictionary - used to link hideout area to inventory stash by its id var childAreaTypeKey = ((int)childDbArea.Type).ToString(); - if (pmcData.Inventory.HideoutAreaStashes.GetValueOrDefault(childAreaTypeKey) is null) + if (!pmcData.Inventory.HideoutAreaStashes.ContainsKey(childAreaTypeKey)) { pmcData.Inventory.HideoutAreaStashes[childAreaTypeKey] = childDbArea.Id; } diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs index 6d61588b..cc1c24ec 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotInventoryGenerator.cs @@ -158,8 +158,8 @@ public class BotInventoryGenerator( QuestRaidItems = questRaidItemsId, QuestStashItems = questStashItemsId, SortingTable = sortingTableId, - HideoutAreaStashes = new Dictionary(), - FastPanel = new Dictionary(), + HideoutAreaStashes = new Dictionary(), + FastPanel = new Dictionary(), FavoriteItems = [], HideoutCustomizationStashId = hideoutCustomizationStashId, }; diff --git a/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs index 0aea849c..7a497cac 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs @@ -1,12 +1,12 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Spt.Config; 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.Cloners; namespace SPTarkov.Server.Core.Generators; @@ -14,7 +14,6 @@ namespace SPTarkov.Server.Core.Generators; [Injectable] public class FenceBaseAssortGenerator( ISptLogger logger, - HashUtil hashUtil, DatabaseService databaseService, HandbookHelper handbookHelper, ItemHelper itemHelper, @@ -92,7 +91,7 @@ public class FenceBaseAssortGenerator( { new() { - Id = hashUtil.Generate(), + Id = new MongoId(), Template = rootItemDb.Id, ParentId = "hideout", SlotId = "hideout", @@ -305,7 +304,7 @@ public class FenceBaseAssortGenerator( var mod = new Item { - Id = hashUtil.Generate(), + Id = new MongoId(), Template = plateTpl, ParentId = armor[0].Id, SlotId = requiredSlot.Name, @@ -342,7 +341,7 @@ public class FenceBaseAssortGenerator( armor.Add( new Item { - Id = hashUtil.Generate(), + Id = new MongoId(), Template = plateSlot.Props.Filters[0].Plate, // `Plate` property appears to be the 'default' item for slot ParentId = armor[0].Id, SlotId = plateSlot.Name, diff --git a/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs index 982e15e2..7cb0a325 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/LocationLootGenerator.cs @@ -1136,7 +1136,7 @@ public class LocationLootGenerator( itemWithMods.Add( new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = chosenTpl, Upd = new Upd { StackObjectsCount = stackCount }, } diff --git a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs index 22fe0de7..0183727d 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs @@ -2,6 +2,7 @@ using System.Globalization; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Notes; @@ -22,7 +23,6 @@ public class PlayerScavGenerator( ISptLogger _logger, RandomUtil _randomUtil, DatabaseService _databaseService, - HashUtil _hashUtil, ItemHelper _itemHelper, BotGeneratorHelper _botGeneratorHelper, SaveServer _saveServer, @@ -176,7 +176,7 @@ public class PlayerScavGenerator( { new() { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = itemTemplate.Id, Upd = _botGeneratorHelper.GenerateExtraPropertiesForItem(itemTemplate), }, diff --git a/Libraries/SPTarkov.Server.Core/Generators/ScavCaseRewardGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/ScavCaseRewardGenerator.cs index 65376bfe..acb57e46 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/ScavCaseRewardGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/ScavCaseRewardGenerator.cs @@ -19,7 +19,6 @@ namespace SPTarkov.Server.Core.Generators; public class ScavCaseRewardGenerator( ISptLogger _logger, RandomUtil _randomUtil, - HashUtil _hashUtil, ItemHelper _itemHelper, PresetHelper _presetHelper, DatabaseService _databaseService, @@ -376,7 +375,7 @@ public class ScavCaseRewardGenerator( [ new() { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = rewardItemDb.Id, Upd = null, }, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs index d8bdd853..4f9287b8 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotWeaponGeneratorHelper.cs @@ -1,24 +1,18 @@ using System.Collections.Frozen; using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Utils; -using SPTarkov.Server.Core.Servers; -using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Helpers; [Injectable] public class BotWeaponGeneratorHelper( ISptLogger _logger, - DatabaseServer _databaseServer, ItemHelper _itemHelper, - RandomUtil _randomUtil, - HashUtil _hashUtil, WeightedRandomHelper _weightedRandomHelper, - BotGeneratorHelper _botGeneratorHelper, - ServerLocalisationService _serverLocalisationService + BotGeneratorHelper _botGeneratorHelper ) { private static readonly FrozenSet _magCheck = @@ -99,7 +93,7 @@ public class BotWeaponGeneratorHelper( TemplateItem magTemplate ) { - List magazine = [new() { Id = _hashUtil.Generate(), Template = magazineTpl }]; + List magazine = [new() { Id = new MongoId(), Template = magazineTpl }]; _itemHelper.FillMagazineWithCartridge(magazine, magTemplate, ammoTpl, 1); @@ -128,7 +122,7 @@ public class BotWeaponGeneratorHelper( var ammoItems = _itemHelper.SplitStack( new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = ammoTpl, Upd = new Upd { StackObjectsCount = cartridgeCount }, } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs index a7f2ac26..cada7a9b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/GiveCommand/GiveSptCommand.cs @@ -10,7 +10,6 @@ using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Services; -using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; namespace SPTarkov.Server.Core.Helpers.Dialogue.Commando.SptCommands.GiveCommand; @@ -18,8 +17,6 @@ namespace SPTarkov.Server.Core.Helpers.Dialogue.Commando.SptCommands.GiveCommand [Injectable] public class GiveSptCommand( ISptLogger _logger, - HashUtil _hashUtil, - DatabaseService _databaseService, ItemHelper _itemHelper, PresetHelper _presetHelper, ItemFilterService _itemFilterService, @@ -245,9 +242,7 @@ public class GiveSptCommand( for (var i = 0; i < quantity; i++) { List ammoBoxArray = []; - ammoBoxArray.Add( - new Item { Id = _hashUtil.Generate(), Template = checkedItem.Value.Id } - ); + ammoBoxArray.Add(new Item { Id = new MongoId(), Template = checkedItem.Value.Id }); // DO NOT generate the ammo box cartridges, the mail service does it for us! :) // _itemHelper.addCartridgesToAmmoBox(ammoBoxArray, checkedItem[1]); itemsToSend.AddRange(ammoBoxArray); @@ -262,7 +257,7 @@ public class GiveSptCommand( itemsToSend.Add( new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = checkedItem.Value.Id, Upd = _itemHelper.GenerateUpdForItem(checkedItem.Value), } @@ -273,7 +268,7 @@ public class GiveSptCommand( { var itemToSend = new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = checkedItem.Value.Id, Upd = _itemHelper.GenerateUpdForItem(checkedItem.Value), }; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs index 2e1e3de8..b81eeef2 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/ProfileCommand/ProfileSptCommand.cs @@ -1,6 +1,7 @@ using System.Text.RegularExpressions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers.Dialog.Commando.SptCommands; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Dialog; using SPTarkov.Server.Core.Models.Eft.Profile; @@ -139,7 +140,7 @@ public class ProfileSptCommand( [ new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = Money.ROUBLES, Upd = new Upd { StackObjectsCount = 1 }, ParentId = _hashUtil.Generate(), @@ -157,7 +158,7 @@ public class ProfileSptCommand( { var profileChangeEvent = new ProfileChangeEvent { - Id = _hashUtil.Generate(), + Id = new MongoId(), Type = "SkillPoints", Value = level * 100, Entity = skill.ToString(), @@ -170,7 +171,7 @@ public class ProfileSptCommand( var exp = _profileHelper.GetExperience(level); var profileChangeEvent = new ProfileChangeEvent { - Id = _hashUtil.Generate(), + Id = new MongoId(), Type = "ProfileLevel", Value = exp, Entity = null, @@ -182,7 +183,7 @@ public class ProfileSptCommand( { var profileChangeEvent = new ProfileChangeEvent { - Id = _hashUtil.Generate(), + Id = new MongoId(), Type = "ExamineAllItems", Value = null, Entity = null, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs index 92b72982..5d5c8c8c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/Commando/SptCommands/TraderCommand/TraderSptCommand.cs @@ -1,6 +1,7 @@ using System.Text.RegularExpressions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Helpers.Dialog.Commando.SptCommands; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Dialog; using SPTarkov.Server.Core.Models.Eft.Profile; @@ -107,7 +108,7 @@ public class TraderSptCommand( [ new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = Money.ROUBLES, Upd = new Upd { StackObjectsCount = 1 }, ParentId = _hashUtil.Generate(), @@ -129,7 +130,7 @@ public class TraderSptCommand( { return new ProfileChangeEvent { - Id = _hashUtil.Generate(), + Id = new MongoId(), Type = profileChangeEventType.ToString(), Value = quantity, Entity = dbTraderId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs index 655ca2f8..9b02c2c0 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/HideoutHelper.cs @@ -1,5 +1,6 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Hideout; @@ -104,7 +105,7 @@ public class HideoutHelper( production.SptRequiredTools.Add( new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = toolItem.Template, Upd = toolItem.Upd, } @@ -1228,7 +1229,7 @@ public class HideoutHelper( btcProd.Products.Add( new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = ItemTpl.BARTER_PHYSICAL_BITCOIN, Upd = new Upd { StackObjectsCount = 1 }, } @@ -1419,7 +1420,7 @@ public class HideoutHelper( [ new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = ItemTpl.BARTER_PHYSICAL_BITCOIN, Upd = new Upd { StackObjectsCount = 1 }, }, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs index e78562bf..098c0df0 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/InRaidHelper.cs @@ -1,6 +1,7 @@ using SPTarkov.Common.Extensions; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Spt.Config; @@ -174,7 +175,7 @@ public class InRaidHelper( } // Remove contents of fast panel - pmcData.Inventory.FastPanel = new Dictionary(); + pmcData.Inventory.FastPanel = new Dictionary(); } /// diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs index aa996ab2..a844af4a 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs @@ -1326,7 +1326,7 @@ public class InventoryHelper( ); if (!wasMovedToFastPanelAccessibleContainer) { - pmcData.Inventory.FastPanel[fastPanelSlot[0].ToString()] = ""; + pmcData.Inventory.FastPanel[fastPanelSlot.ToString()] = ""; } } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs index f076ef2e..96336cf3 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs @@ -972,16 +972,16 @@ public class ItemHelper( ) { // Blacklist - var itemIdBlacklist = new HashSet(); + var itemIdBlacklist = new HashSet(); itemIdBlacklist.UnionWith( - new List + new List { - inventory.Equipment, - inventory.QuestRaidItems, - inventory.QuestStashItems, - inventory.SortingTable, - inventory.Stash, - inventory.HideoutCustomizationStashId, + inventory.Equipment.Value, + inventory.QuestRaidItems.Value, + inventory.QuestStashItems.Value, + inventory.SortingTable.Value, + inventory.Stash.Value, + inventory.HideoutCustomizationStashId.Value, } ); itemIdBlacklist.UnionWith(inventory.HideoutAreaStashes.Values); @@ -989,7 +989,7 @@ public class ItemHelper( // Add insured items ids to blacklist if (insuredItems is not null) { - itemIdBlacklist.UnionWith(insuredItems.Select(x => x.ItemId)); + itemIdBlacklist.UnionWith(insuredItems.Select(x => x.ItemId.Value)); } foreach (var item in inventory.Items) @@ -1079,28 +1079,28 @@ public class ItemHelper( ) { // Blacklist - var itemIdBlacklist = new HashSet(); + var itemIdBlacklist = new HashSet(); if (pmcData != null) { itemIdBlacklist.UnionWith( - new List + new List { - pmcData.Inventory.Equipment, - pmcData.Inventory.QuestRaidItems, - pmcData.Inventory.QuestStashItems, - pmcData.Inventory.SortingTable, - pmcData.Inventory.Stash, - pmcData.Inventory.HideoutCustomizationStashId, + pmcData.Inventory.Equipment.Value, + pmcData.Inventory.QuestRaidItems.Value, + pmcData.Inventory.QuestStashItems.Value, + pmcData.Inventory.SortingTable.Value, + pmcData.Inventory.Stash.Value, + pmcData.Inventory.HideoutCustomizationStashId.Value, } ); - itemIdBlacklist.UnionWith(pmcData.Inventory.HideoutAreaStashes.Keys); + itemIdBlacklist.UnionWith(pmcData.Inventory.HideoutAreaStashes.Values); } // Add insured items ids to blacklist if (insuredItems is not null) { - itemIdBlacklist.UnionWith(insuredItems.Select(x => x.ItemId)); + itemIdBlacklist.UnionWith(insuredItems.Select(x => x.ItemId.Value)); } foreach (var item in originalItems) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs index 5eb3cee3..ce617594 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs @@ -1,5 +1,6 @@ using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Extensions; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Hideout; @@ -16,7 +17,6 @@ namespace SPTarkov.Server.Core.Helpers; [Injectable] public class RewardHelper( ISptLogger _logger, - HashUtil _hashUtil, TimeUtil _timeUtil, ItemHelper _itemHelper, DatabaseService _databaseService, @@ -354,7 +354,7 @@ public class RewardHelper( // This has all the original id relations since we reset the id to the original after the splitStack var itemsClone = new List { _cloner.Clone(target) }; // Here we generate a new id for the root item - target.Id = _hashUtil.Generate(); + target.Id = new MongoId(); // Add cloned mods to root item array var clonedMods = _cloner.Clone(mods); 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 8422f7d2..298d4711 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +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; @@ -434,39 +435,40 @@ public record BotBaseInventory public List? Items { get; set; } [JsonPropertyName("equipment")] - public string? Equipment { get; set; } + public MongoId? Equipment { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("stash")] - public string? Stash { get; set; } + public MongoId? Stash { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("sortingTable")] - public string? SortingTable { get; set; } + public MongoId? SortingTable { get; set; } [JsonPropertyName("questRaidItems")] - public string? QuestRaidItems { get; set; } + public MongoId? QuestRaidItems { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("questStashItems")] - public string? QuestStashItems { get; set; } + public MongoId? QuestStashItems { get; set; } /// /// Key is hideout area enum numeric as string e.g. "24", value is area _id /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("hideoutAreaStashes")] - public Dictionary? HideoutAreaStashes { get; set; } + // TODO: key should be EAreaType enum + public Dictionary? HideoutAreaStashes { get; set; } [JsonPropertyName("fastPanel")] - public Dictionary? FastPanel { get; set; } + public Dictionary? FastPanel { get; set; } [JsonPropertyName("favoriteItems")] - public List? FavoriteItems { get; set; } + public List? FavoriteItems { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [JsonPropertyName("hideoutCustomizationStashId")] - public string? HideoutCustomizationStashId { get; set; } + public MongoId? HideoutCustomizationStashId { get; set; } } public record Skills @@ -802,7 +804,7 @@ public record InsuredItem public string? TId { get; set; } [JsonPropertyName("itemId")] - public string? ItemId { get; set; } + public MongoId? ItemId { get; set; } } public record Hideout diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/SetFavoriteItems.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/SetFavoriteItems.cs index d66ea45e..b01e7544 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/SetFavoriteItems.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/SetFavoriteItems.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,7 +9,7 @@ public record SetFavoriteItems : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("items")] - public List? Items { get; set; } + public List? Items { get; set; } [JsonPropertyName("timestamp")] public long? Timestamp { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs index b1733848..f48e0600 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/GetOtherProfileResponse.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; namespace SPTarkov.Server.Core.Models.Eft.Profile; @@ -45,7 +46,7 @@ public record GetOtherProfileResponse public string CustomizationStash { get; set; } [JsonPropertyName("hideoutAreaStashes")] - public Dictionary HideoutAreaStashes { get; set; } + public Dictionary HideoutAreaStashes { get; set; } [JsonPropertyName("items")] public List Items { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs index 42252d1a..05959682 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Prestige; @@ -364,7 +365,7 @@ public record MessageItems public Dictionary? ExtensionData { get; set; } [JsonPropertyName("stash")] - public string? Stash { get; set; } + public MongoId? Stash { get; set; } [JsonPropertyName("data")] public List? Data { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Dialog/SendMessageDetails.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Dialog/SendMessageDetails.cs index 5713bc70..17a776d8 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Dialog/SendMessageDetails.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Dialog/SendMessageDetails.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Profile; using SPTarkov.Server.Core.Models.Enums; @@ -95,7 +96,7 @@ public record ProfileChangeEvent public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_id")] - public string? Id { get; set; } + public MongoId? Id { get; set; } [JsonPropertyName("Type")] public string Type { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs b/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs index 9825629d..e023886c 100644 --- a/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/AirdropService.cs @@ -183,7 +183,7 @@ public class AirdropService( { var airdropContainer = new Item { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = string.Empty, // Chosen below later Upd = new Upd { SpawnedInSession = true, StackObjectsCount = 1 }, }; diff --git a/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs b/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs index b2cb483f..320eec6b 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BtrDeliveryService.cs @@ -68,7 +68,7 @@ public class BtrDeliveryService( // This is to stop items being duplicated by being returned from both item delivery and insurance var deliveredItemIds = items.Select(item => item.Id); pmcData.InsuredItems = pmcData - .InsuredItems.Where(insuredItem => !deliveredItemIds.Contains(insuredItem.ItemId)) + .InsuredItems.Where(insuredItem => !deliveredItemIds.Contains(insuredItem.ItemId.Value)) .ToList(); if (_saveServer.GetProfile(sessionId).BtrDeliveryList == null) diff --git a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs index 9b03ab84..e0f01859 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CircleOfCultistService.cs @@ -423,7 +423,7 @@ public class CircleOfCultistService( [ new() { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = randomItemTplFromPool, ParentId = cultistCircleStashId, SlotId = CircleOfCultistSlotId, @@ -511,7 +511,7 @@ public class CircleOfCultistService( [ new() { - Id = _hashUtil.Generate(), + Id = new MongoId(), Template = rewardTpl, ParentId = cultistCircleStashId, SlotId = CircleOfCultistSlotId, diff --git a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs index c5272ace..a3aef213 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs @@ -265,7 +265,7 @@ public class CreateProfileService( if (item.Id == oldEquipmentId) { - item.Id = pmcData.Inventory.Equipment; + item.Id = pmcData.Inventory.Equipment.Value; } } } @@ -298,7 +298,7 @@ public class CreateProfileService( pmcData.Inventory.Items.Add( new Item { - Id = pmcData.Inventory.HideoutCustomizationStashId, + Id = pmcData.Inventory.HideoutCustomizationStashId.Value, Template = ItemTpl.HIDEOUTAREACONTAINER_CUSTOMIZATION, } ); @@ -309,7 +309,7 @@ public class CreateProfileService( pmcData.Inventory.Items.Add( new Item { - Id = pmcData.Inventory.SortingTable, + Id = pmcData.Inventory.SortingTable.Value, Template = ItemTpl.SORTINGTABLE_SORTING_TABLE, } ); @@ -320,7 +320,7 @@ public class CreateProfileService( pmcData.Inventory.Items.Add( new Item { - Id = pmcData.Inventory.QuestStashItems, + Id = pmcData.Inventory.QuestStashItems.Value, Template = ItemTpl.STASH_QUESTOFFLINE, } ); @@ -331,7 +331,7 @@ public class CreateProfileService( pmcData.Inventory.Items.Add( new Item { - Id = pmcData.Inventory.QuestRaidItems, + Id = pmcData.Inventory.QuestRaidItems.Value, Template = ItemTpl.STASH_QUESTRAID, } ); diff --git a/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs b/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs index bef96750..5d9c047f 100644 --- a/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/ProfileFixerService.cs @@ -89,7 +89,7 @@ public class ProfileFixerService( } // Otherwise we need to generate a new unique stash ID for this message's attachments - message.Items.Stash = _hashUtil.Generate(); + message.Items.Stash = new MongoId(); message.Items.Data = message.Items.Data.AdoptOrphanedItems(message.Items.Stash); // Because `adoptOrphanedItems` sets the slotId to `hideout`, we need to re-set it to `main` to work with mail @@ -144,7 +144,7 @@ public class ProfileFixerService( var itemToAdjust = pmcProfile.Inventory.Items.FirstOrDefault(x => x.Id == mappingKvP.Key ); - itemToAdjust.Id = _hashUtil.Generate(); + itemToAdjust.Id = new MongoId(); _logger.Warning( $"Replace duplicate item Id: {mappingKvP.Key} with {itemToAdjust.Id}" );