From b37496bf76782e5519b3d81bbfb1b17cb2d45eeb Mon Sep 17 00:00:00 2001 From: Chomp Date: Thu, 30 Jan 2025 14:11:04 +0000 Subject: [PATCH] Added additional safety to `AdjustItemPriceByModifier` --- Libraries/Core/Services/FenceService.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Libraries/Core/Services/FenceService.cs b/Libraries/Core/Services/FenceService.cs index 23cb74e7..4a14bb61 100644 --- a/Libraries/Core/Services/FenceService.cs +++ b/Libraries/Core/Services/FenceService.cs @@ -263,17 +263,28 @@ public class FenceService( double presetModifier ) { + if (assort?.BarterScheme is null) + { + logger.Warning($"Unable to adjust item: {item.Id} on assort as it lacks a barterScheme object"); + + return; + } + // Is preset if (item.Upd?.SptPresetId != null) { - if (assort.BarterScheme?.ContainsKey(item.Id) ?? false) + if (assort.BarterScheme.TryGetValue(item.Id, out var barterSchemeForPreset)) { - assort.BarterScheme[item.Id][0][0].Count *= presetModifier; + barterSchemeForPreset[0][0].Count *= presetModifier; } + + return; } - else if (assort.BarterScheme?.ContainsKey(item.Id) ?? false) + + // Normal item + if (assort.BarterScheme.TryGetValue(item.Id, out var barterScheme)) { - assort.BarterScheme[item.Id][0][0].Count *= modifier; + barterScheme[0][0].Count *= modifier; } else {