From cfd2116fb62126d54d71ccd5f907c78e0755c4b7 Mon Sep 17 00:00:00 2001 From: Chomp Date: Sun, 8 Jun 2025 21:34:29 +0100 Subject: [PATCH] Allow altering the parentId of values placed inside `handbookPriceOverride` --- .../Helpers/HandbookHelper.cs | 20 ++++++++++--------- .../Models/Spt/Config/ItemConfig.cs | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs index b9d877c1..fbdd354c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/HandbookHelper.cs @@ -26,25 +26,27 @@ public class HandbookHelper( { var handbook = _databaseService.GetHandbook(); // Add handbook overrides found in items.json config into db - foreach (var itemTplKey in _itemConfig.HandbookPriceOverride) + foreach (var (key, priceOverride) in _itemConfig.HandbookPriceOverride) { - var data = _itemConfig.HandbookPriceOverride[itemTplKey.Key]; - - var itemToUpdate = handbook.Items.FirstOrDefault(item => item.Id == itemTplKey.Key); + var itemToUpdate = handbook.Items.FirstOrDefault(item => item.Id == key); if (itemToUpdate is null) { handbook.Items.Add( new HandbookItem { - Id = itemTplKey.Key, - ParentId = data.ParentId, - Price = data.Price + Id = key, + ParentId = priceOverride.ParentId, + Price = priceOverride.Price } ); - itemToUpdate = handbook.Items.FirstOrDefault(item => item.Id == itemTplKey.Key); + itemToUpdate = handbook.Items.FirstOrDefault(item => item.Id == key); } - itemToUpdate.Price = data.Price; + itemToUpdate.Price = priceOverride.Price; + if (priceOverride.ParentId is not null) + { + itemToUpdate.ParentId = priceOverride.ParentId; + } } var handbookDbClone = _cloner.Clone(handbook); diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ItemConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ItemConfig.cs index 8500b082..f133f0c9 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ItemConfig.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ItemConfig.cs @@ -99,7 +99,7 @@ public record HandbookPriceOverride /// NOT parentId from items.json, but handbook.json /// [JsonPropertyName("parentId")] - public string ParentId + public string? ParentId { get; set;