diff options
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/ItemHandler.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 7dca74d59d0..721e0a9b54e 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -26,6 +26,8 @@ #include "Item.h" #include "SpellInfo.h" +#include "Packets/QueryPackets.h" + void WorldSession::HandleSplitItemOpcode(WorldPacket& recvData) { //TC_LOG_DEBUG("network", "WORLD: CMSG_SPLIT_ITEM"); @@ -305,31 +307,26 @@ void WorldSession::HandleDestroyItemOpcode(WorldPacket& recvData) } // Only _static_ data send in this packet !!! -void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recvData) +void WorldSession::HandleItemQuerySingleOpcode(WorldPackets::Query::QueryItemSingle& query) { - //TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE"); - uint32 item; - recvData >> item; + TC_LOG_INFO("network", "STORAGE: Item Query = %u", query.ItemID); - TC_LOG_INFO("network", "STORAGE: Item Query = %u", item); - - ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item); - if (itemTemplate) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(query.ItemID)) { if (sWorld->getBoolConfig(CONFIG_CACHE_DATA_QUERIES)) SendPacket(&itemTemplate->QueryData[static_cast<uint32>(GetSessionDbLocaleIndex())]); else { - WorldPacket queryPacket = itemTemplate->BuildQueryData(GetSessionDbLocaleIndex()); - SendPacket(&queryPacket); + WorldPacket response = itemTemplate->BuildQueryData(GetSessionDbLocaleIndex()); + SendPacket(&response); } } else { - TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE - NO item INFO! (ENTRY: %u)", item); - WorldPacket data(SMSG_ITEM_QUERY_SINGLE_RESPONSE, 4); - data << uint32(item | 0x80000000); - SendPacket(&data); + TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE - NO item INFO! (ENTRY: %u)", query.ItemID); + WorldPackets::Query::QueryItemSingleResponse response; + response.ItemID = query.ItemID; + SendPacket(response.Write()); } } |