Created overload of IsValidItem

This commit is contained in:
Chomp
2025-07-19 14:06:49 +01:00
parent 71481b3021
commit 096ec842ba
@@ -286,16 +286,29 @@ public class ItemHelper(
var baseTypes = invalidBaseTypes ?? _defaultInvalidBaseTypes;
var itemDetails = GetItem(tpl);
if (!itemDetails.Key)
{
return false;
}
return itemDetails.Key && IsValidItem(itemDetails.Value, baseTypes);
}
return !(itemDetails.Value.Properties.QuestItem ?? false)
&& string.Equals(itemDetails.Value.Type, "Item", StringComparison.OrdinalIgnoreCase)
&& GetItemPrice(tpl) > 0
&& !itemFilterService.IsItemBlacklisted(tpl)
&& baseTypes.All(x => !IsOfBaseclass(tpl, x));
/// <summary>
/// Checks if a tpl is a valid item. Valid meaning that it's an item that can be stored in stash
/// Valid means:
/// Not quest item
/// 'Item' type
/// Not on the invalid base types array
/// Price above 0 roubles
/// </summary>
/// <param name="item">Item from DB to check</param>
/// <param name="invalidBaseTypes">OPTIONAL - Base types deemed invalid</param>
/// <returns>true for items that may be in player possession and not quest items</returns>
public bool IsValidItem(TemplateItem item, ISet<MongoId>? invalidBaseTypes = null)
{
var baseTypes = invalidBaseTypes ?? _defaultInvalidBaseTypes;
return !(item.Properties.QuestItem ?? false)
&& string.Equals(item.Type, "Item", StringComparison.OrdinalIgnoreCase)
&& GetItemPrice(item.Id) > 0
&& !itemFilterService.IsItemBlacklisted(item.Id)
&& baseTypes.All(x => !IsOfBaseclass(item.Id, x));
}
/// <summary>