From e00dcc719cfcf95207bf12c946566f0039acf380 Mon Sep 17 00:00:00 2001 From: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com> Date: Sat, 11 Oct 2025 21:19:32 -0700 Subject: [PATCH] Fix examining item in hideout upgrade panel exception --- .../Controllers/InventoryController.cs | 12 +++++++++--- .../SPTarkov.Server.Core/Helpers/InventoryHelper.cs | 2 +- .../Eft/Common/Request/BaseInteractionRequestData.cs | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs index 2545e35e..fd508a84 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InventoryController.cs @@ -509,7 +509,7 @@ public class InventoryController( return presetHelper.GetBaseItemTpl(request.ItemId); } - if (request.FromOwner.Id == Traders.FENCE) + if (Traders.FENCE.Equals(request.FromOwner.Id)) // Get tpl from fence assorts { return fenceService.GetRawFenceAssorts().Items.FirstOrDefault(x => x.Id == request.ItemId)?.Template; @@ -520,7 +520,7 @@ public class InventoryController( // get tpl from trader assort { return databaseService - .GetTrader(request.FromOwner.Id.Value) + .GetTrader(request.FromOwner.Id) .Assort.Items.FirstOrDefault(item => item.Id == request.ItemId) ?.Template; } @@ -536,7 +536,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.Value); + ragfairOfferService.GetOfferByOfferId(request.ItemId) ?? ragfairOfferService.GetOfferByOfferId(request.FromOwner.Id); // Try find examine item inside offer items array var matchingItem = offer.Items.FirstOrDefault(offerItem => offerItem.Id == request.ItemId); @@ -555,6 +555,12 @@ public class InventoryController( return request.ItemId; } + // Hideout upgrade + if (request.FromOwner.Type == "HideoutUpgrade") + { + return request.ItemId; + } + if (request.FromOwner.Type == "Mail") { // when inspecting an item in mail rewards, we are given on the message its in and its mongoId, not the Template, so we have to go find it ourselves diff --git a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs index cc1083a2..688328df 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/InventoryHelper.cs @@ -860,7 +860,7 @@ public class InventoryHelper( else if (string.Equals(request.FromOwner.Type, "mail", StringComparison.OrdinalIgnoreCase)) { // Split requests don't use 'use' but 'splitItem' property - fromInventoryItems = dialogueHelper.GetMessageItemContents(request.FromOwner.Id.Value, sessionId, itemId); + fromInventoryItems = dialogueHelper.GetMessageItemContents(request.FromOwner.Id, sessionId, itemId); fromType = "mail"; } } 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 31b6a5c2..52984bd1 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs @@ -18,7 +18,7 @@ public record BaseInteractionRequestData public record OwnerInfo { [JsonPropertyName("id")] - public MongoId? Id { get; set; } + public string? Id { get; set; } [JsonPropertyName("type")] public string? Type { get; set; }