Merge pull request #613 from DrakiaXYZ/fix-hideoutexamine

Fix examining item in hideout upgrade panel exception
This commit is contained in:
Chomp
2025-10-12 07:53:27 +00:00
committed by GitHub
3 changed files with 11 additions and 8 deletions
@@ -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;
@@ -519,10 +519,7 @@ public class InventoryController(
// Not fence
// get tpl from trader assort
{
return databaseService
.GetTrader(request.FromOwner.Id.Value)
.Assort.Items.FirstOrDefault(item => item.Id == request.ItemId)
?.Template;
return databaseService.GetTrader(request.FromOwner.Id).Assort.Items.FirstOrDefault(item => item.Id == request.ItemId)?.Template;
}
if (request.FromOwner.Type == "RagFair")
@@ -536,7 +533,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 +552,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
@@ -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";
}
}
@@ -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; }