aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index e24e2bfc7a2..cee3a98a452 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -617,6 +617,10 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid)
WorldPackets::NPC::VendorItem& item = packet.Items[count];
+ if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(vendorItem->PlayerConditionId))
+ if (!ConditionMgr::IsPlayerMeetingCondition(_player, playerCondition))
+ item.PlayerConditionFailed = playerCondition->ID;
+
if (vendorItem->Type == ITEM_VENDOR_TYPE_ITEM)
{
ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(vendorItem->item);
@@ -658,8 +662,14 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid)
item.Quantity = leftInStock;
item.StackCount = itemTemplate->GetBuyCount();
item.Price = price;
+ item.DoNotFilterOnVendor = vendorItem->IgnoreFiltering;
item.Item.ItemID = vendorItem->item;
+ if (!vendorItem->BonusListIDs.empty())
+ {
+ item.Item.ItemBonus = boost::in_place();
+ item.Item.ItemBonus->BonusListIDs = vendorItem->BonusListIDs;
+ }
}
else if (vendorItem->Type == ITEM_VENDOR_TYPE_CURRENCY)
{
@@ -675,6 +685,7 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid)
item.Item.ItemID = vendorItem->item;
item.Type = vendorItem->Type;
item.StackCount = vendorItem->maxcount;
+ item.DoNotFilterOnVendor = vendorItem->IgnoreFiltering;
}
else
continue;