aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp78
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp26
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp25
-rw-r--r--src/server/game/Server/Packets/ItemPackets.h45
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp8
-rw-r--r--src/server/game/Server/WorldSession.h12
6 files changed, 127 insertions, 67 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 6745299b195..921e883a4e4 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -343,22 +343,19 @@ void WorldSession::HandleReadItem(WorldPacket& recvData)
_player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL);
}
-void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
+void WorldSession::HandleSellItemOpcode(WorldPackets::Item::SellItem& packet)
{
- TC_LOG_DEBUG("network", "WORLD: Received CMSG_SELL_ITEM");
- ObjectGuid vendorguid, itemguid;
- uint32 count;
+ TC_LOG_DEBUG("network", "WORLD: Received CMSG_SELL_ITEM: Vendor %s, Item %s, Amount: %u",
+ packet.VendorGUID.ToString().c_str(), packet.ItemGUID.ToString().c_str(), packet.Amount);
- recvData >> vendorguid >> itemguid >> count;
-
- if (!itemguid)
+ if (packet.ItemGUID.IsEmpty())
return;
- Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(vendorguid, UNIT_NPC_FLAG_VENDOR);
+ Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(packet.VendorGUID, UNIT_NPC_FLAG_VENDOR);
if (!creature)
{
- TC_LOG_DEBUG("network", "WORLD: HandleSellItemOpcode - %s not found or you can not interact with him.", vendorguid.ToString().c_str());
- _player->SendSellError(SELL_ERR_CANT_FIND_VENDOR, NULL, itemguid);
+ TC_LOG_DEBUG("network", "WORLD: HandleSellItemOpcode - %s not found or you can not interact with him.", packet.VendorGUID.ToString().c_str());
+ _player->SendSellError(SELL_ERR_CANT_FIND_VENDOR, nullptr, packet.ItemGUID);
return;
}
@@ -366,27 +363,27 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- Item* pItem = _player->GetItemByGuid(itemguid);
+ Item* pItem = _player->GetItemByGuid(packet.ItemGUID);
if (pItem)
{
// prevent sell not owner item
if (_player->GetGUID() != pItem->GetOwnerGUID())
{
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
// prevent sell non empty bag by drag-and-drop at vendor's item list
if (pItem->IsNotEmptyBag())
{
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
// prevent sell currently looted item
if (_player->GetLootGUID() == pItem->GetGUID())
{
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
@@ -397,14 +394,14 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
return; // Therefore, no feedback to client
// special case at auto sell (sell all)
- if (count == 0)
- count = pItem->GetCount();
+ if (packet.Amount == 0)
+ packet.Amount = pItem->GetCount();
else
{
// prevent sell more items that exist in stack (possible only not from client)
- if (count > pItem->GetCount())
+ if (packet.Amount > pItem->GetCount())
{
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
}
@@ -414,18 +411,18 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
{
if (pProto->GetSellPrice() > 0)
{
- if (count < pItem->GetCount()) // need split items
+ if (packet.Amount < pItem->GetCount()) // need split items
{
- Item* pNewItem = pItem->CloneItem(count, _player);
+ Item* pNewItem = pItem->CloneItem(packet.Amount, _player);
if (!pNewItem)
{
- TC_LOG_ERROR("network", "WORLD: HandleSellItemOpcode - could not create clone of item %u; count = %u", pItem->GetEntry(), count);
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ TC_LOG_ERROR("network", "WORLD: HandleSellItemOpcode - could not create clone of item %u; count = %u", pItem->GetEntry(), packet.Amount);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
- pItem->SetCount(pItem->GetCount() - count);
- _player->ItemRemovedQuestCheck(pItem->GetEntry(), count);
+ pItem->SetCount(pItem->GetCount() - packet.Amount);
+ _player->ItemRemovedQuestCheck(pItem->GetEntry(), packet.Amount);
if (_player->IsInWorld())
pItem->SendUpdateToPlayer(_player);
pItem->SetState(ITEM_CHANGED, _player);
@@ -442,31 +439,27 @@ void WorldSession::HandleSellItemOpcode(WorldPacket& recvData)
_player->AddItemToBuyBackSlot(pItem);
}
- uint32 money = pProto->GetSellPrice() * count;
+ uint32 money = pProto->GetSellPrice() * packet.Amount;
_player->ModifyMoney(money);
_player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS, money);
}
else
- _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_SELL_ITEM, creature, packet.ItemGUID);
return;
}
}
- _player->SendSellError(SELL_ERR_CANT_FIND_ITEM, creature, itemguid);
+ _player->SendSellError(SELL_ERR_CANT_FIND_ITEM, creature, packet.ItemGUID);
return;
}
-void WorldSession::HandleBuybackItem(WorldPacket& recvData)
+void WorldSession::HandleBuybackItem(WorldPackets::Item::BuyBackItem& packet)
{
- TC_LOG_DEBUG("network", "WORLD: Received CMSG_BUYBACK_ITEM");
- ObjectGuid vendorguid;
- uint32 slot;
+ TC_LOG_DEBUG("network", "WORLD: Received CMSG_BUYBACK_ITEM: Vendor %s, Slot: %u", packet.VendorGUID.ToString().c_str(), packet.Slot);
- recvData >> vendorguid >> slot;
-
- Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(vendorguid, UNIT_NPC_FLAG_VENDOR);
+ Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(packet.VendorGUID, UNIT_NPC_FLAG_VENDOR);
if (!creature)
{
- TC_LOG_DEBUG("network", "WORLD: HandleBuybackItem - Unit (%s) not found or you can not interact with him.", vendorguid.ToString().c_str());
+ TC_LOG_DEBUG("network", "WORLD: HandleBuybackItem - Unit (%s) not found or you can not interact with him.", packet.VendorGUID.ToString().c_str());
_player->SendSellError(SELL_ERR_CANT_FIND_VENDOR, NULL, ObjectGuid::Empty);
return;
}
@@ -475,10 +468,10 @@ void WorldSession::HandleBuybackItem(WorldPacket& recvData)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- Item* pItem = _player->GetItemFromBuyBackSlot(slot);
+ Item* pItem = _player->GetItemFromBuyBackSlot(packet.Slot);
if (pItem)
{
- uint32 price = _player->GetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + slot - BUYBACK_SLOT_START);
+ uint32 price = _player->GetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + packet.Slot - BUYBACK_SLOT_START);
if (!_player->HasEnoughMoney(uint64(price)))
{
_player->SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, pItem->GetEntry(), 0);
@@ -490,7 +483,7 @@ void WorldSession::HandleBuybackItem(WorldPacket& recvData)
if (msg == EQUIP_ERR_OK)
{
_player->ModifyMoney(-(int32)price);
- _player->RemoveItemFromBuyBackSlot(slot, false);
+ _player->RemoveItemFromBuyBackSlot(packet.Slot, false);
_player->ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
_player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, pItem->GetEntry(), pItem->GetCount());
_player->StoreItem(dest, pItem, true);
@@ -1255,14 +1248,11 @@ void WorldSession::HandleCancelTempEnchantmentOpcode(WorldPacket& recvData)
item->ClearEnchantment(TEMP_ENCHANTMENT_SLOT);
}
-void WorldSession::HandleItemRefundInfoRequest(WorldPacket& recvData)
+void WorldSession::HandleItemRefundInfoRequest(WorldPackets::Item::ItemRefundInfo& packet)
{
- TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_REFUND_INFO");
+ TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_REFUND_INFO: Item %s", packet.ItemGUID.ToString().c_str());
- ObjectGuid guid;
- recvData >> guid; // item guid
-
- Item* item = _player->GetItemByGuid(guid);
+ Item* item = _player->GetItemByGuid(packet.ItemGUID);
if (!item)
{
TC_LOG_DEBUG("network", "Item refund: item not found!");
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index af7759393ae..30f3b45b47b 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -859,19 +859,15 @@ void WorldSession::HandleStableSwapPetCallback(PreparedQueryResult result, uint3
SendStableResult(STABLE_SUCCESS_UNSTABLE);
}
-void WorldSession::HandleRepairItemOpcode(WorldPacket& recvData)
+void WorldSession::HandleRepairItemOpcode(WorldPackets::Item::RepairItem& packet)
{
- TC_LOG_DEBUG("network", "WORLD: CMSG_REPAIR_ITEM");
+ TC_LOG_DEBUG("network", "WORLD: CMSG_REPAIR_ITEM: Npc %s, Item %s, UseGuildBank: %u",
+ packet.NpcGUID.ToString().c_str(), packet.ItemGUID.ToString().c_str(), packet.UseGuildBank);
- ObjectGuid npcGUID, itemGUID;
- uint8 guildBank; // new in 2.3.2, bool that means from guild bank money
-
- recvData >> npcGUID >> itemGUID >> guildBank;
-
- Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(npcGUID, UNIT_NPC_FLAG_REPAIR);
+ Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(packet.NpcGUID, UNIT_NPC_FLAG_REPAIR);
if (!unit)
{
- TC_LOG_DEBUG("network", "WORLD: HandleRepairItemOpcode - %s not found or you can not interact with him.", npcGUID.ToString().c_str());
+ TC_LOG_DEBUG("network", "WORLD: HandleRepairItemOpcode - %s not found or you can not interact with him.", packet.NpcGUID.ToString().c_str());
return;
}
@@ -882,18 +878,18 @@ void WorldSession::HandleRepairItemOpcode(WorldPacket& recvData)
// reputation discount
float discountMod = _player->GetReputationPriceDiscount(unit);
- if (!itemGUID.IsEmpty())
+ if (!packet.ItemGUID.IsEmpty())
{
- TC_LOG_DEBUG("network", "ITEM: Repair %s, at %s", itemGUID.ToString().c_str(), npcGUID.ToString().c_str());
+ TC_LOG_DEBUG("network", "ITEM: Repair %s, at %s", packet.ItemGUID.ToString().c_str(), packet.NpcGUID.ToString().c_str());
- Item* item = _player->GetItemByGuid(itemGUID);
+ Item* item = _player->GetItemByGuid(packet.ItemGUID);
if (item)
- _player->DurabilityRepair(item->GetPos(), true, discountMod, guildBank != 0);
+ _player->DurabilityRepair(item->GetPos(), true, discountMod, packet.UseGuildBank);
}
else
{
- TC_LOG_DEBUG("network", "ITEM: Repair all items at %s", npcGUID.ToString().c_str());
- _player->DurabilityRepairAll(true, discountMod, guildBank != 0);
+ TC_LOG_DEBUG("network", "ITEM: Repair all items at %s", packet.NpcGUID.ToString().c_str());
+ _player->DurabilityRepairAll(true, discountMod, packet.UseGuildBank);
}
}
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index 4d3c6a552a8..b5465b47e35 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -17,6 +17,31 @@
#include "ItemPackets.h"
+void WorldPackets::Item::BuyBackItem::Read()
+{
+ _worldPacket >> VendorGUID;
+ _worldPacket >> Slot;
+}
+
+void WorldPackets::Item::ItemRefundInfo::Read()
+{
+ _worldPacket >> ItemGUID;
+}
+
+void WorldPackets::Item::RepairItem::Read()
+{
+ _worldPacket >> NpcGUID;
+ _worldPacket >> ItemGUID;
+ UseGuildBank = _worldPacket.ReadBit();
+}
+
+void WorldPackets::Item::SellItem::Read()
+{
+ _worldPacket >> VendorGUID;
+ _worldPacket >> ItemGUID;
+ _worldPacket >> Amount;
+}
+
WorldPacket const* WorldPackets::Item::SetProficiency::Write()
{
_worldPacket << ProficiencyMask;
diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h
index 1510ecd70d4..d84d2266a3c 100644
--- a/src/server/game/Server/Packets/ItemPackets.h
+++ b/src/server/game/Server/Packets/ItemPackets.h
@@ -25,6 +25,51 @@ namespace WorldPackets
{
namespace Item
{
+ class BuyBackItem final : public ClientPacket
+ {
+ public:
+ BuyBackItem(WorldPacket&& packet) : ClientPacket(CMSG_BUYBACK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid VendorGUID;
+ uint32 Slot = 0;
+ };
+
+ class ItemRefundInfo final : public ClientPacket
+ {
+ public:
+ ItemRefundInfo(WorldPacket&& packet) : ClientPacket(CMSG_ITEM_REFUND_INFO, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid ItemGUID;
+ };
+
+ class RepairItem final : public ClientPacket
+ {
+ public:
+ RepairItem(WorldPacket&& packet) : ClientPacket(CMSG_REPAIR_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid NpcGUID;
+ ObjectGuid ItemGUID;
+ bool UseGuildBank = false;
+ };
+
+ class SellItem final : public ClientPacket
+ {
+ public:
+ SellItem(WorldPacket&& packet) : ClientPacket(CMSG_SELL_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid VendorGUID;
+ ObjectGuid ItemGUID;
+ uint32 Amount = 0;
+ };
+
class SetProficiency final : public ServerPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 4c1bd983384..d2956f64e27 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -199,7 +199,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_BINDER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleBinderActivateOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUSY_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_BUYBACK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuybackItem );
+ DEFINE_HANDLER(CMSG_BUYBACK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::BuyBackItem, &WorldSession::HandleBuybackItem);
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUY_BANK_SLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyBankSlotOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUY_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyItemOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_CALENDAR_ADD_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarAddEvent );
@@ -381,7 +381,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_INSPECT_HONOR_STATS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectHonorStatsOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_INSTANCE_LOCK_WARNING_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ITEM_REFUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefund );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_ITEM_REFUND_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefundInfoRequest );
+ DEFINE_HANDLER(CMSG_ITEM_REFUND_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::ItemRefundInfo, &WorldSession::HandleItemRefundInfoRequest);
DEFINE_OPCODE_HANDLER_OLD(CMSG_ITEM_TEXT_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemTextQuery );
DEFINE_HANDLER(CMSG_JOIN_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::JoinChannel, &WorldSession::HandleJoinChannel);
DEFINE_OPCODE_HANDLER_OLD(CMSG_KEEP_ALIVE, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_EarlyProccess );
@@ -563,7 +563,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_RECLAIM_CORPSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_RECRUIT_A_FRIEND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::ReorderCharacters, &WorldSession::HandleReorderCharacters);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_REPAIR_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode );
+ DEFINE_HANDLER(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::RepairItem, &WorldSession::HandleRepairItemOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_REPOP_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_REPORT_PVP_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK );
DEFINE_HANDLER(CMSG_REQUEST_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::ClientConfig::RequestAccountData, &WorldSession::HandleRequestAccountData);
@@ -590,7 +590,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SELF_RES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSelfResOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_SELL_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode );
+ DEFINE_HANDLER(CMSG_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::SellItem, &WorldSession::HandleSellItemOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_SEND_MAIL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSendMail );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SEND_SOR_REQUEST_VIA_ADDRESS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SEND_SOR_REQUEST_VIA_BNET_ACCOUNT_ID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index beed0547b5f..1779530fcba 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -148,6 +148,10 @@ namespace WorldPackets
namespace Item
{
+ class BuyBackItem;
+ class ItemRefundInfo;
+ class RepairItem;
+ class SellItem;
class SplitItem;
class SwapInvItem;
class SwapItem;
@@ -658,7 +662,7 @@ class WorldSession
void HandleShowingCloakOpcode(WorldPacket& recvData);
// repair
- void HandleRepairItemOpcode(WorldPacket& recvPacket);
+ void HandleRepairItemOpcode(WorldPackets::Item::RepairItem& packet);
// Knockback
void HandleMoveKnockBackAck(WorldPacket& recvPacket);
@@ -882,7 +886,7 @@ class WorldSession
void HandleSwapInvItemOpcode(WorldPackets::Item::SwapInvItem& swapInvItem);
void HandleDestroyItemOpcode(WorldPackets::Item::DestroyItem& destroyItem);
void HandleAutoEquipItemOpcode(WorldPackets::Item::AutoEquipItem& autoEquipItem);
- void HandleSellItemOpcode(WorldPacket& recvPacket);
+ void HandleSellItemOpcode(WorldPackets::Item::SellItem& packet);
void HandleBuyItemInSlotOpcode(WorldPacket& recvPacket);
void HandleBuyItemOpcode(WorldPacket& recvPacket);
void HandleListInventoryOpcode(WorldPackets::NPC::Hello& packet);
@@ -890,7 +894,7 @@ class WorldSession
void HandleReadItem(WorldPacket& recvPacket);
void HandleAutoEquipItemSlotOpcode(WorldPacket& recvPacket);
void HandleSwapItem(WorldPackets::Item::SwapItem& swapItem);
- void HandleBuybackItem(WorldPacket& recvPacket);
+ void HandleBuybackItem(WorldPackets::Item::BuyBackItem& packet);
void HandleAutoBankItemOpcode(WorldPacket& recvPacket);
void HandleAutoStoreBankItemOpcode(WorldPacket& recvPacket);
void HandleWrapItemOpcode(WorldPacket& recvPacket);
@@ -1088,7 +1092,7 @@ class WorldSession
void HandleCancelTempEnchantmentOpcode(WorldPacket& recvData);
- void HandleItemRefundInfoRequest(WorldPacket& recvData);
+ void HandleItemRefundInfoRequest(WorldPackets::Item::ItemRefundInfo& packet);
void HandleItemRefund(WorldPacket& recvData);
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData);