diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json index 003b10ab..9f649a39 100644 --- a/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json +++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/database/templates/repeatableQuests.json @@ -90,9 +90,9 @@ ], "changeStandingCost": 0, "questStatus": { - "id": "mongoId", + "id": "000000000000000000000000", "uid": "playerId", - "qid": "questId", + "qid": "000000000000000000000000", "startTime": 0, "status": 1, "statusTimers": {} @@ -143,9 +143,9 @@ ], "changeStandingCost": 0, "questStatus": { - "id": "mongoId", + "id": "000000000000000000000000", "uid": "playerId", - "qid": "questId", + "qid": "000000000000000000000000", "startTime": 0, "status": 1, "statusTimers": {} @@ -227,9 +227,9 @@ ], "changeStandingCost": 0, "questStatus": { - "id": "mongoId", + "id": "000000000000000000000000", "uid": "playerId", - "qid": "questId", + "qid": "000000000000000000000000", "startTime": 0, "status": 1, "statusTimers": {} @@ -331,9 +331,9 @@ ], "changeStandingCost": 0, "questStatus": { - "id": "mongoId", + "id": "000000000000000000000000", "uid": "playerId", - "qid": "questId", + "qid": "000000000000000000000000", "startTime": 0, "status": 1, "statusTimers": {} diff --git a/Libraries/SPTarkov.Server.Core/Callbacks/MatchCallbacks.cs b/Libraries/SPTarkov.Server.Core/Callbacks/MatchCallbacks.cs index 59223d5f..b91ca136 100644 --- a/Libraries/SPTarkov.Server.Core/Callbacks/MatchCallbacks.cs +++ b/Libraries/SPTarkov.Server.Core/Callbacks/MatchCallbacks.cs @@ -157,7 +157,7 @@ public class MatchCallbacks( /// Handle client/putMetrics /// /// - public ValueTask PutMetrics(string url, PutMetricsRequestData info, MongoId sessionID) + public ValueTask PutMetrics(string url, PutMetricsRequestData info, MongoId sessionId) { return new ValueTask(httpResponseUtil.NullResponse()); } @@ -166,7 +166,11 @@ public class MatchCallbacks( /// Handle client/analytics/event-disconnect /// /// - public ValueTask EventDisconnect(string url, PutMetricsRequestData info, string MongoId) + public ValueTask EventDisconnect( + string url, + PutMetricsRequestData request, + MongoId sessionId + ) { return new ValueTask(httpResponseUtil.NullResponse()); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/CustomizationController.cs b/Libraries/SPTarkov.Server.Core/Controllers/CustomizationController.cs index c2e16b6c..54be2524 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/CustomizationController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/CustomizationController.cs @@ -143,7 +143,7 @@ public class CustomizationController( /// Session/Player id /// /// Suit - protected Suit? GetTraderClothingOffer(MongoId sessionId, string? offerId) + protected Suit? GetTraderClothingOffer(MongoId sessionId, MongoId offerId) { var foundSuit = GetAllTraderSuits(sessionId).FirstOrDefault(s => s.Id == offerId); if (foundSuit is null) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs index bf6a8bf9..ef4e0bbc 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs @@ -185,9 +185,9 @@ public class InsuranceController( /// The ID that should be assigned to all "hideout"/root items /// The insurance object containing the items to evaluate for deletion /// A Set containing the IDs of items that should be deleted - protected HashSet FindItemsToDelete(string rootItemParentId, Insurance insured) + protected HashSet FindItemsToDelete(string rootItemParentId, Insurance insured) { - var toDelete = new HashSet(); + var toDelete = new HashSet(); // Populate a Map object of items for quick lookup by their ID and use it to populate a Map of main-parent items // and each of their attachments. For example, a gun mapped to each of its attachments. @@ -388,7 +388,7 @@ public class InsuranceController( /// Dictionary containing parent item IDs to arrays of their attachment items protected void ProcessRegularItems( Insurance insured, - HashSet toDelete, + HashSet toDelete, Dictionary> parentAttachmentsMap ) { @@ -440,8 +440,8 @@ public class InsuranceController( protected void ProcessAttachments( Dictionary> mainParentToAttachmentsMap, Dictionary itemsMap, - string? insuredTraderId, - HashSet toDelete + MongoId? insuredTraderId, + HashSet toDelete ) { foreach (var parentObj in mainParentToAttachmentsMap) @@ -462,7 +462,7 @@ public class InsuranceController( } // Process the attachments for this individual parent item. - ProcessAttachmentByParent(parentObj.Value, insuredTraderId, toDelete); + ProcessAttachmentByParent(parentObj.Value, insuredTraderId.Value, toDelete); } } @@ -477,8 +477,8 @@ public class InsuranceController( /// array that accumulates the IDs of the items to be deleted protected void ProcessAttachmentByParent( List attachments, - string? traderId, - HashSet toDelete + MongoId traderId, + HashSet toDelete ) { // Create dict of item ids + their flea/handbook price (highest is chosen) @@ -576,7 +576,7 @@ public class InsuranceController( /// Attachment count to remove protected double GetAttachmentCountToRemove( Dictionary weightedAttachmentByPrice, - string? traderId + MongoId traderId ) { const int removeCount = 0; @@ -599,7 +599,7 @@ public class InsuranceController( /// /// The insured items to process /// The items that should be deleted - protected void RemoveItemsFromInsurance(Insurance insured, HashSet toDelete) + protected void RemoveItemsFromInsurance(Insurance insured, HashSet toDelete) { insured.Items = insured.Items.Where(item => !toDelete.Contains(item.Id)).ToList(); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs index 9c5dff19..5f55086c 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs @@ -613,7 +613,7 @@ public class InventoryController( // get tpl from trader assort { return databaseService - .GetTrader(request.FromOwner.Id) + .GetTrader(request.FromOwner.Id.Value) .Assort.Items.FirstOrDefault(item => item.Id == request.ItemId) ?.Template; } @@ -630,7 +630,7 @@ public class InventoryController( // Try alternate way of getting offer if first approach fails var offer = ragfairOfferService.GetOfferByOfferId(request.ItemId) - ?? ragfairOfferService.GetOfferByOfferId(request.FromOwner.Id); + ?? ragfairOfferService.GetOfferByOfferId(request.FromOwner.Id.Value); // Try find examine item inside offer items array var matchingItem = offer.Items.FirstOrDefault(offerItem => @@ -1080,7 +1080,7 @@ public class InventoryController( // Changes made to result apply to character inventory var inventoryItems = inventoryHelper.GetOwnerInventoryItems( request, - request.NewItem, + request.NewItem.Value, sessionID ); @@ -1117,7 +1117,7 @@ public class InventoryController( .Items.NewItems.Add( new Item { - Id = request.NewItem, + Id = request.NewItem.Value, Template = itemToSplit.Template, Upd = updatedUpd, } @@ -1127,7 +1127,7 @@ public class InventoryController( inventoryItems.To.Add( new Item { - Id = request.NewItem, + Id = request.NewItem.Value, Template = itemToSplit.Template, ParentId = request.Container.Id, SlotId = request.Container.ContainerName, diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs index f43eda14..aaaa2a87 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs @@ -197,7 +197,8 @@ public class BotEquipmentModGenerator( ); switch (plateSlotFilteringOutcome.Result) { - case Result.UNKNOWN_FAILURE or Result.NO_DEFAULT_FILTER: + case Result.UNKNOWN_FAILURE + or Result.NO_DEFAULT_FILTER: if (logger.IsLogEnabled(LogLevel.Debug)) { logger.Debug( @@ -225,7 +226,7 @@ public class BotEquipmentModGenerator( { modTpl = exhaustableModPool.GetRandomValue(); if ( - modTpl is not null + !modTpl.Value.IsEmpty() && !botGeneratorHelper .IsItemIncompatibleWithCurrentItems(equipment, modTpl.Value, modSlotName) .Incompatible.GetValueOrDefault(false) @@ -1120,7 +1121,7 @@ public class BotEquipmentModGenerator( // It's ammo, use predefined ammo parameter if (GetAmmoContainers().Contains(request.ModSlot) && request.ModSlot != "mod_magazine") { - return itemHelper.GetItem(request.AmmoTpl); + return itemHelper.GetItem(request.AmmoTpl.Value); } // Ensure there's a pool of mods to pick from @@ -1258,7 +1259,7 @@ public class BotEquipmentModGenerator( return null; } - return itemHelper.GetItem(chosenModResult.ChosenTemplate); + return itemHelper.GetItem(chosenModResult.ChosenTemplate.Value); } /// diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs index f04173be..f0cf5dbe 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotWeaponGenerator.cs @@ -243,7 +243,7 @@ public class BotWeaponGenerator( // Fill UBGL if found var ubglMod = weaponWithModsArray.FirstOrDefault(x => x.SlotId == "mod_launcher"); - string? ubglAmmoTpl = null; + MongoId? ubglAmmoTpl = null; if (ubglMod is not null) { var ubglTemplate = itemHelper.GetItem(ubglMod.Template).Value; @@ -252,7 +252,7 @@ public class BotWeaponGenerator( // the default ammo passed from GetWeightCompatibleAmmo can be null if (ubglAmmoTpl is not null) { - FillUbgl(weaponWithModsArray, ubglMod, ubglAmmoTpl); + FillUbgl(weaponWithModsArray, ubglMod, ubglAmmoTpl.Value); } } @@ -497,7 +497,10 @@ public class BotWeaponGenerator( } // Has an UBGL - if (generatedWeaponResult.ChosenUbglAmmoTemplate is not null) + if ( + generatedWeaponResult.ChosenUbglAmmoTemplate is not null + && !generatedWeaponResult.ChosenUbglAmmoTemplate.Value.IsEmpty() + ) { AddUbglGrenadesToBotInventory(weaponAndMods, generatedWeaponResult, inventory); } @@ -548,7 +551,7 @@ public class BotWeaponGenerator( // get ammo template from db var ubglAmmoDbTemplate = itemHelper - .GetItem(generatedWeaponResult.ChosenUbglAmmoTemplate) + .GetItem(generatedWeaponResult.ChosenUbglAmmoTemplate.Value) .Value; // Add greandes to bot inventory @@ -564,7 +567,12 @@ public class BotWeaponGenerator( .Process(ubglAmmoGenModel); // Store extra grenades in secure container - AddAmmoToSecureContainer(5, generatedWeaponResult.ChosenUbglAmmoTemplate, 20, inventory); + AddAmmoToSecureContainer( + 5, + generatedWeaponResult.ChosenUbglAmmoTemplate.Value, + 20, + inventory + ); } /// @@ -659,7 +667,7 @@ public class BotWeaponGenerator( /// Weapon details from database we want to pick ammo for /// Ammo template that works with the desired gun protected MongoId GetWeightedCompatibleAmmo( - Dictionary> cartridgePool, + Dictionary> cartridgePool, TemplateItem weaponTemplate ) { @@ -700,7 +708,7 @@ public class BotWeaponGenerator( } // Inner join the weapons allowed + passed in cartridge pool to get compatible cartridges - Dictionary compatibleCartridges = new(); + Dictionary compatibleCartridges = new(); foreach (var cartridge in cartridgePoolForWeapon) { if (compatibleCartridgesInTemplate.Contains(cartridge.Key)) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs index e11f07d7..95441ff9 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/ItemHelper.cs @@ -1491,7 +1491,7 @@ public class ItemHelper( return; } - FillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl, minSizePercent); + FillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl.Value, minSizePercent); } /// @@ -1621,7 +1621,7 @@ public class ItemHelper( /// If a cartridge cannot be found in the above staticAmmoDist param, use this instead /// OPTIONAL whitelist for cartridges /// Tpl of cartridge - protected string? DrawAmmoTpl( + protected MongoId? DrawAmmoTpl( string caliber, Dictionary> staticAmmoDist, MongoId? fallbackCartridgeTpl = null, @@ -1647,19 +1647,19 @@ public class ItemHelper( return null; } - var ammoArray = new ProbabilityObjectArray(cloner); + var ammoArray = new ProbabilityObjectArray(cloner); foreach (var icd in ammos) { // Whitelist exists and tpl not inside it, skip // Fixes 9x18mm kedr issues - if (cartridgeWhitelist is not null && !cartridgeWhitelist.Contains(icd.Tpl)) + if (cartridgeWhitelist is not null && !cartridgeWhitelist.Contains(icd.Tpl.Value)) { continue; } ammoArray.Add( - new ProbabilityObject( - icd.Tpl, + new ProbabilityObject( + icd.Tpl.Value, (double)icd.RelativeProbability, null ) diff --git a/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs b/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs index 654510ac..1ce73646 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Common/MongoId.cs @@ -120,6 +120,16 @@ public readonly struct MongoId : IEquatable return left.Equals(right); } + public static bool operator !=(MongoId left, MongoId? right) + { + return left.Equals(right); + } + + public static bool operator ==(MongoId left, MongoId? right) + { + return left.Equals(right); + } + public static bool operator !=(MongoId left, MongoId right) { return !left.Equals(right); diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs index f2750a7e..ab2617a5 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Globals.cs @@ -1594,7 +1594,7 @@ public record WildBody public string? Body { get; set; } [JsonPropertyName("hands")] - public string? Hands { get; set; } + public MongoId? Hands { get; set; } [JsonPropertyName("isNotRandom")] public bool? IsNotRandom { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs index 6db6acc5..cbb4221f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Location.cs @@ -118,7 +118,7 @@ public record ItemDistribution public Dictionary? ExtensionData { get; set; } [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + public MongoId Tpl { get; set; } [JsonPropertyName("relativeProbability")] public float? RelativeProbability { get; set; } @@ -169,7 +169,7 @@ public record StaticAmmoDetails public Dictionary? ExtensionData { get; set; } [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + public MongoId? Tpl { get; set; } [JsonPropertyName("relativeProbability")] public float? RelativeProbability { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs index 83601624..33ab7400 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/LocationBase.cs @@ -455,12 +455,6 @@ public record Limit : MinMax { [JsonPropertyName("items")] public List? Items { get; set; } - - [JsonPropertyName("min")] - public int? Min { get; set; } - - [JsonPropertyName("max")] - public int? Max { get; set; } } public record AirdropParameter diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs index 16ae4fd0..7868c76c 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Common.Request; @@ -23,7 +24,7 @@ public record OwnerInfo 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/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index c499a284..faec5e59 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -936,7 +936,7 @@ public record BotHideoutArea public List? Slots { get; set; } [JsonPropertyName("lastRecipe")] - public string? LastRecipe { get; set; } + public MongoId? LastRecipe { get; set; } } public record HideoutSlot diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs index cbd06fe1..de09de3a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotType.cs @@ -448,7 +448,7 @@ public record BotTypeInventory [JsonPropertyName("equipment")] public Dictionary>? Equipment { get; set; } - public GlobalAmmo? Ammo { get; set; } + public Dictionary>? Ammo { get; set; } [JsonPropertyName("items")] public ItemPools? Items { get; set; } 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 bfadda66..3a99a25a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -105,9 +105,6 @@ public record Quest [JsonPropertyName("side")] public required string Side { get; set; } - [JsonPropertyName("acceptanceAndFinishingSource")] - public string? AcceptanceAndFinishingSource { get; set; } - [JsonPropertyName("progressSource")] public string? ProgressSource { get; set; } @@ -125,15 +122,6 @@ public record Quest /// [JsonPropertyName("sptStatus")] public QuestStatusEnum? SptStatus { get; set; } - - [JsonPropertyName("questStatus")] - public QuestStatus? QuestStatus { get; set; } - - [JsonPropertyName("changeCost")] - public List ChangeCost { get; set; } - - [JsonPropertyName("changeStandingCost")] - public double ChangeStandingCost { get; set; } } /// diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/RepeatableQuests.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/RepeatableQuests.cs index 780a6a4d..19972015 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/RepeatableQuests.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/RepeatableQuests.cs @@ -17,18 +17,6 @@ public record RepeatableQuest : Quest [JsonPropertyName("acceptanceAndFinishingSource")] public string? AcceptanceAndFinishingSource { get; set; } - [JsonPropertyName("progressSource")] - public string? ProgressSource { get; set; } - - [JsonPropertyName("rankingModes")] - public List? RankingModes { get; set; } - - [JsonPropertyName("gameModes")] - public List? GameModes { get; set; } - - [JsonPropertyName("arenaLocations")] - public List? ArenaLocations { get; set; } - [JsonPropertyName("questStatus")] public RepeatableQuestStatus? QuestStatus { get; set; } } @@ -57,13 +45,13 @@ public record RepeatableQuestStatus public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("uid")] public string? Uid { get; set; } [JsonPropertyName("qid")] - public string? QId { get; set; } + public MongoId QId { get; set; } [JsonPropertyName("startTime")] public long? StartTime { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Customization/BuyClothingRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Customization/BuyClothingRequestData.cs index 481ba62c..f766ed7e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Customization/BuyClothingRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Customization/BuyClothingRequestData.cs @@ -10,7 +10,7 @@ public record BuyClothingRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("offer")] - public string? Offer { get; set; } + public MongoId Offer { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/DeleteFriendRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/DeleteFriendRequest.cs index 216874a4..ff3d00a6 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/DeleteFriendRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/DeleteFriendRequest.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Utils; namespace SPTarkov.Server.Core.Models.Eft.Dialog; @@ -9,5 +10,5 @@ public record DeleteFriendRequest : IRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("friend_id")] - public string? FriendId { get; set; } + public MongoId FriendId { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs index 75cb196c..377930d6 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Enums; using SPTarkov.Server.Core.Models.Utils; @@ -13,7 +14,7 @@ public record GetMailDialogViewRequestData : IRequestData public MessageType? Type { get; set; } [JsonPropertyName("dialogId")] - public string? DialogId { get; set; } + public MongoId DialogId { get; set; } [JsonPropertyName("limit")] public int? Limit { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Insurance/InsureRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Insurance/InsureRequestData.cs index 4c92e21b..0af65a52 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Insurance/InsureRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Insurance/InsureRequestData.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.Insurance; @@ -12,5 +13,5 @@ public record InsureRequestData : InventoryBaseActionRequestData public string? TransactionId { get; set; } [JsonPropertyName("items")] - public List? Items { get; set; } + public List? Items { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryMergeRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryMergeRequestData.cs index 246db830..dcf1823b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryMergeRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryMergeRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,8 +9,8 @@ public record InventoryMergeRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("with")] - public string? With { get; set; } + public MongoId? With { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs index 396998cb..043be873 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,5 +9,5 @@ public record InventoryRemoveRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySplitRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySplitRequestData.cs index 6649f4f8..cced14ab 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySplitRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySplitRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -11,13 +12,13 @@ public record InventorySplitRequestData : InventoryBaseActionRequestData /// Id of item to split /// [JsonPropertyName("splitItem")] - public string? SplitItem { get; set; } + public MongoId? SplitItem { get; set; } /// /// Id of new item stack /// [JsonPropertyName("newItem")] - public string? NewItem { get; set; } + public MongoId? NewItem { get; set; } /// /// Destination new item will be placed in diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySwapRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySwapRequestData.cs index e4ce7fdf..25e3dc73 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySwapRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventorySwapRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Request; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -9,13 +10,13 @@ public record InventorySwapRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("to")] public To? To { get; set; } [JsonPropertyName("item2")] - public string? Item2 { get; set; } + public MongoId? Item2 { get; set; } [JsonPropertyName("to2")] public To? To2 { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTagRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTagRequestData.cs index 7b207a5f..ad316d99 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTagRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTagRequestData.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 InventoryTagRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("TagName")] public string? TagName { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryToggleRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryToggleRequestData.cs index 77463eda..5bf1495a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryToggleRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryToggleRequestData.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 InventoryToggleRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId? Item { get; set; } [JsonPropertyName("value")] public bool? Value { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTransferRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTransferRequestData.cs index 76d047ca..af0d717b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTransferRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Inventory/InventoryTransferRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Inventory; @@ -8,10 +9,10 @@ public record InventoryTransferRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("item")] - public string? Item { get; set; } + public MongoId Item { get; set; } [JsonPropertyName("with")] - public string? With { get; set; } + public MongoId? With { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/EmptyItemEventRouterResponse.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/EmptyItemEventRouterResponse.cs index 454b1b08..adaecd1f 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/EmptyItemEventRouterResponse.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/ItemEvent/EmptyItemEventRouterResponse.cs @@ -8,5 +8,5 @@ public record EmptyItemEventRouterResponse : ItemEventRouterBase public Dictionary? ExtensionData { get; set; } [JsonPropertyName("profileChanges")] - public string? ProfileChanges { get; set; } = ""; + public new string? ProfileChanges { get; set; } = string.Empty; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Match/EndLocalRaidRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Match/EndLocalRaidRequestData.cs index dee8a723..d2592651 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Match/EndLocalRaidRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Match/EndLocalRaidRequestData.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.Enums; @@ -52,7 +53,7 @@ public record EndRaidResult public ExitStatus? Result { get; set; } [JsonPropertyName("killerId")] - public string? KillerId { get; set; } + public MongoId? KillerId { get; set; } [JsonPropertyName("killerAid")] public string? KillerAid { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs index 356f79a2..bea79050 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Match/GetRaidConfigurationRequestData.cs @@ -6,12 +6,6 @@ namespace SPTarkov.Server.Core.Models.Eft.Match; public record GetRaidConfigurationRequestData : RaidSettings, IRequestData { - [JsonPropertyName("keyId")] - public string? KeyId { get; set; } - - [JsonPropertyName("onlinePveRaidStates")] - public Dictionary? OnlinePveRaidStates { get; set; } - [JsonPropertyName("MaxGroupCount")] public int? MaxGroupCount { 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 7a87ab00..b55c5f27 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Profile/SptProfile.cs @@ -193,7 +193,7 @@ public record MagazineTemplateAmmoItem public Dictionary? ExtensionData { get; set; } [JsonPropertyName("TemplateId")] - public string? TemplateId { get; set; } + public MongoId TemplateId { get; set; } [JsonPropertyName("Count")] public int? Count { get; set; } @@ -533,7 +533,7 @@ public record Insurance public int? ScheduledTime { get; set; } [JsonPropertyName("traderId")] - public string? TraderId { get; set; } + public MongoId TraderId { get; set; } [JsonPropertyName("maxStorageTime")] public int? MaxStorageTime { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/CompleteQuestRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/CompleteQuestRequestData.cs index b5e5d357..95a6e4ca 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/CompleteQuestRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/CompleteQuestRequestData.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.Quests; @@ -12,7 +13,7 @@ public record CompleteQuestRequestData : InventoryBaseActionRequestData /// Quest Id /// [JsonPropertyName("qid")] - public string? QuestId { get; set; } + public MongoId QuestId { get; set; } [JsonPropertyName("removeExcessItems")] public bool? RemoveExcessItems { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/FailQuestRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/FailQuestRequestData.cs index fc793ed3..bdc1986c 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/FailQuestRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Quests/FailQuestRequestData.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.Quests; @@ -9,7 +10,7 @@ public record FailQuestRequestData : InventoryBaseActionRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("qid")] - public string? QuestId { get; set; } + public MongoId QuestId { get; set; } [JsonPropertyName("removeExcessItems")] public bool? RemoveExcessItems { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/AddOfferRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/AddOfferRequestData.cs index 9341d0b0..6c9fa1cf 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/AddOfferRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/AddOfferRequestData.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.Ragfair; @@ -24,7 +25,7 @@ public record Requirement public Dictionary? ExtensionData { get; set; } [JsonPropertyName("_tpl")] - public string? Template { get; set; } + public MongoId Template { get; set; } // Can be decimal value [JsonPropertyName("count")] diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs index f951b5d0..939e5ae8 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Utils; namespace SPTarkov.Server.Core.Models.Eft.Ragfair; @@ -9,10 +10,10 @@ public record StorePlayerOfferTaxAmountRequestData : IRequestData public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId? Id { get; set; } [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + public MongoId? Tpl { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs index ec2e331d..507a33e9 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Eft.Trade; @@ -17,7 +18,7 @@ public record SoldItem public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId Id { get; set; } [JsonPropertyName("count")] public int? Count { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs index de225c51..d9fbebb1 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Bots; @@ -14,7 +15,7 @@ public record ChooseRandomCompatibleModResult public bool? Found { get; set; } [JsonPropertyName("chosenTpl")] - public string? ChosenTemplate { get; set; } + public MongoId? ChosenTemplate { get; set; } [JsonPropertyName("reason")] public string? Reason { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponResult.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponResult.cs index ee2c885e..ce4fb44a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponResult.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/GenerateWeaponResult.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.Spt.Bots; @@ -12,10 +13,10 @@ public record GenerateWeaponResult public List? Weapon { get; set; } [JsonPropertyName("chosenAmmoTpl")] - public string? ChosenAmmoTemplate { get; set; } + public MongoId ChosenAmmoTemplate { get; set; } [JsonPropertyName("chosenUbglAmmoTpl")] - public string? ChosenUbglAmmoTemplate { get; set; } + public MongoId? ChosenUbglAmmoTemplate { get; set; } [JsonPropertyName("weaponMods")] public GlobalMods? WeaponMods { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs index 3e8e6525..37471983 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Bots/ModToSpawnRequest.cs @@ -54,7 +54,7 @@ public record ModToSpawnRequest /// Ammo tpl to use if slot requires a cartridge to be added (e.g. mod_magazine) /// [JsonPropertyName("ammoTpl")] - public string? AmmoTpl { get; set; } + public MongoId? AmmoTpl { get; set; } /// /// Parent item the mod will go into diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs index e97cf024..e64bb452 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/BotConfig.cs @@ -440,10 +440,10 @@ public record AdjustmentDetails public Dictionary? ExtensionData { get; set; } [JsonPropertyName("add")] - public Dictionary>? Add { get; set; } + public Dictionary>? Add { get; set; } [JsonPropertyName("edit")] - public Dictionary>? Edit { get; set; } + public Dictionary>? Edit { get; set; } } public class ArmorPlateWeights diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/GiftsConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/GiftsConfig.cs index de7b8b85..3ba9eb55 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/GiftsConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/GiftsConfig.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; @@ -39,7 +40,7 @@ public record Gift /// Optional - supply a trader type to send from, not necessary when sending from SYSTEM or USER /// [JsonPropertyName("trader")] - public string? Trader { get; set; } + public MongoId? Trader { get; set; } [JsonPropertyName("messageText")] public string? MessageText { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/LocaleBase.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/LocaleBase.cs index c407f26c..5a419c1e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Server/LocaleBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Server/LocaleBase.cs @@ -8,9 +8,11 @@ public record LocaleBase [JsonExtensionData] public Dictionary? ExtensionData { get; set; } - [JsonPropertyName("global")] + /// /// DO NOT USE THIS PROPERTY DIRECTLY, USE LOCALESERVICE INSTEAD /// THIS IS LAZY LOADED AND YOUR CHANGES WILL NOT BE SAVED + /// + [JsonPropertyName("global")] public required Dictionary>> Global { get; set; } [JsonPropertyName("menu")] diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootItem.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootItem.cs index ed26b72d..649e6b61 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootItem.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Services/LootItem.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Services; @@ -8,10 +9,10 @@ public record LootItem public Dictionary? ExtensionData { get; set; } [JsonPropertyName("id")] - public string? Id { get; set; } + public MongoId? Id { get; set; } [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + public MongoId? Tpl { get; set; } [JsonPropertyName("isPreset")] public bool? IsPreset { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Trader/Traders.cs b/Libraries/SPTarkov.Server.Core/Models/Trader/Traders.cs index 3d2a98b2..3cdfeb62 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Trader/Traders.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Trader/Traders.cs @@ -6,7 +6,7 @@ using SPTarkov.Server.Core.Models.Enums; namespace SPTarkov.Server.Core.Models; [Injectable] -public record Prapor() : ITrader +public record Prapor : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -16,7 +16,7 @@ public record Prapor() : ITrader } [Injectable] -public record Therapist() : ITrader +public record Therapist : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -26,7 +26,7 @@ public record Therapist() : ITrader } [Injectable] -public record Fence() : ITrader +public record Fence : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -36,7 +36,7 @@ public record Fence() : ITrader } [Injectable] -public record Skier() : ITrader +public record Skier : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -46,7 +46,7 @@ public record Skier() : ITrader } [Injectable] -public record Peacekeeper() : ITrader +public record Peacekeeper : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -56,7 +56,7 @@ public record Peacekeeper() : ITrader } [Injectable] -public record Mechanic() : ITrader +public record Mechanic : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -66,7 +66,7 @@ public record Mechanic() : ITrader } [Injectable] -public record Ragman() : ITrader +public record Ragman : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -76,7 +76,7 @@ public record Ragman() : ITrader } [Injectable] -public record Jaeger() : ITrader +public record Jaeger : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -86,7 +86,7 @@ public record Jaeger() : ITrader } [Injectable] -public record LighthouseKeeper() : ITrader +public record LighthouseKeeper : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -96,7 +96,7 @@ public record LighthouseKeeper() : ITrader } [Injectable] -public record Btr() : ITrader +public record Btr : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } @@ -106,7 +106,7 @@ public record Btr() : ITrader } [Injectable] -public record Ref() : ITrader +public record Ref : ITrader { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs index 4ad246c4..a86a78d5 100644 --- a/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/BotEquipmentFilterService.cs @@ -451,7 +451,7 @@ public class BotEquipmentFilterService( /// protected void AdjustWeighting( AdjustmentDetails? weightingAdjustments, - Dictionary> botItemPool, + Dictionary> botItemPool, bool showEditWarnings = true ) { diff --git a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs index ec51209b..41630b3f 100644 --- a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs @@ -1244,7 +1244,7 @@ public class LocationLifecycleService( protected void MergePmcAndScavEncyclopedias(PmcData primary, PmcData secondary) { var mergedDicts = primary - .Encyclopedia?.Union(secondary.Encyclopedia) + .Encyclopedia?.UnionBy(secondary.Encyclopedia, kvp => kvp.Key) .GroupBy(kvp => kvp.Key) .ToDictionary(g => g.Key, g => g.Any(kvp => kvp.Value)); diff --git a/Libraries/SPTarkov.Server.Core/Utils/Collections/ProbabilityObjectArray.cs b/Libraries/SPTarkov.Server.Core/Utils/Collections/ProbabilityObjectArray.cs index 79b6fe6b..37c24e35 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/Collections/ProbabilityObjectArray.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/Collections/ProbabilityObjectArray.cs @@ -18,7 +18,6 @@ namespace SPTarkov.Server.Core.Utils.Collections; /// // count the elements which should be distributed according to the relative probabilities /// res.filter(x => x==="b").reduce((sum, x) => sum + 1 , 0) /// -/// /// /// public class ProbabilityObjectArray : List> diff --git a/Libraries/SPTarkov.Server.Core/Utils/FileUtil.cs b/Libraries/SPTarkov.Server.Core/Utils/FileUtil.cs index c17369ae..ddbbda71 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/FileUtil.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/FileUtil.cs @@ -3,7 +3,7 @@ using SPTarkov.DI.Annotations; namespace SPTarkov.Server.Core.Utils; [Injectable] -public class FileUtil() +public class FileUtil { protected const string _modBasePath = "user/mods/"; diff --git a/Libraries/SPTarkov.Server.Core/Utils/Logger/SptLoggerConfiguration.cs b/Libraries/SPTarkov.Server.Core/Utils/Logger/SptLoggerConfiguration.cs index 9f2e3649..ac5affcd 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/Logger/SptLoggerConfiguration.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/Logger/SptLoggerConfiguration.cs @@ -83,7 +83,7 @@ public class FileSptLoggerReference : BaseSptLoggerReference [JsonPropertyName("filePattern")] public string FilePattern { get; set; } - private int _maxFileSizeMb; + private readonly int _maxFileSizeMb; [JsonPropertyName("maxFileSizeMB")] public int MaxFileSizeMb @@ -99,7 +99,7 @@ public class FileSptLoggerReference : BaseSptLoggerReference } } - private int _maxRollingFiles; + private readonly int _maxRollingFiles; [JsonPropertyName("maxRollingFiles")] public int MaxRollingFiles diff --git a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs index 52b844f2..61e0efdc 100644 --- a/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs +++ b/Libraries/SPTarkov.Server.Core/Utils/RagfairOfferHolder.cs @@ -32,12 +32,12 @@ public class RagfairOfferHolder( /// /// Offer Ids keyed by tpl /// - private readonly ConcurrentDictionary> _offersByTemplate = new(); + private readonly ConcurrentDictionary> _offersByTemplate = new(); /// /// Offer ids keyed by trader Id /// - private readonly ConcurrentDictionary> _offersByTrader = new(); + private readonly ConcurrentDictionary> _offersByTrader = new(); private readonly Lock _expiredOfferIdsLock = new(); private readonly Lock _ragfairOperationLock = new(); @@ -87,7 +87,7 @@ public class RagfairOfferHolder( /// /// Id of trader to get offers for /// RagfairOffer list - public List GetOffersByTrader(string traderId) + public List GetOffersByTrader(MongoId traderId) { if (!_offersByTrader.TryGetValue(traderId, out var offerIds)) { diff --git a/Tools/ItemTplGenerator/ItemTplGenerator.cs b/Tools/ItemTplGenerator/ItemTplGenerator.cs index e7677ace..e0624ef8 100644 --- a/Tools/ItemTplGenerator/ItemTplGenerator.cs +++ b/Tools/ItemTplGenerator/ItemTplGenerator.cs @@ -170,7 +170,7 @@ public class ItemTplGenerator( } else { - var val = itemsObject.TryGetValue(itemKey, out var value) ? value : itemKey; + var val = itemsObject.GetValueOrDefault(itemKey, itemKey); _logger.Error( $"New itemOverride entry required: itemsObject already contains {itemKey} {val} => {item.Id}" );