Core/PacketIO: Updated and enabled CMSG_ITEM_PURCHASE_REFUND

This commit is contained in:
Carbenium
2016-02-02 01:06:44 +01:00
parent 6fbfc61de1
commit 391992ed80
5 changed files with 22 additions and 9 deletions

View File

@@ -1083,20 +1083,17 @@ void WorldSession::HandleGetItemPurchaseData(WorldPackets::Item::GetItemPurchase
GetPlayer()->SendRefundInfo(item);
}
void WorldSession::HandleItemRefund(WorldPacket &recvData)
void WorldSession::HandleItemRefund(WorldPackets::Item::ItemPurchaseRefund& packet)
{
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!");
TC_LOG_DEBUG("network", "WorldSession::HandleItemRefund: Item (%s) not found!", packet.ItemGUID.ToString().c_str());
return;
}
// Don't try to refund item currently being disenchanted
if (_player->GetLootGUID() == guid)
if (_player->GetLootGUID() == packet.ItemGUID)
return;
GetPlayer()->RefundItem(item);

View File

@@ -109,6 +109,11 @@ WorldPacket const* WorldPackets::Item::SetItemPurchaseData::Write()
return &_worldPacket;
}
void WorldPackets::Item::ItemPurchaseRefund::Read()
{
_worldPacket >> ItemGUID;
}
WorldPacket const* WorldPackets::Item::ItemPurchaseRefundResult::Write()
{
_worldPacket << ItemGUID;

View File

@@ -147,6 +147,16 @@ namespace WorldPackets
ObjectGuid ItemGUID;
};
class ItemPurchaseRefund final : public ClientPacket
{
public:
ItemPurchaseRefund(WorldPacket&& packet) : ClientPacket(CMSG_ITEM_PURCHASE_REFUND, std::move(packet)) { }
void Read() override;
ObjectGuid ItemGUID;
};
class ItemPurchaseRefundResult final : public ServerPacket
{
public:

View File

@@ -422,7 +422,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_INSPECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::Inspect, &WorldSession::HandleInspectOpcode);
DEFINE_HANDLER(CMSG_INSPECT_PVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Inspect::InspectPVPRequest, &WorldSession::HandleInspectPVP);
DEFINE_HANDLER(CMSG_INSTANCE_LOCK_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Instance::InstanceLockResponse, &WorldSession::HandleInstanceLockResponse);
DEFINE_OPCODE_HANDLER_OLD(CMSG_ITEM_PURCHASE_REFUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefund );
DEFINE_HANDLER(CMSG_ITEM_PURCHASE_REFUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::ItemPurchaseRefund, &WorldSession::HandleItemRefund);
DEFINE_HANDLER(CMSG_ITEM_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::ItemTextQuery, &WorldSession::HandleItemTextQuery);
DEFINE_HANDLER(CMSG_JOIN_PET_BATTLE_QUEUE, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_JOIN_RATED_BATTLEGROUND, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);

View File

@@ -346,6 +346,7 @@ namespace WorldPackets
class BuyBackItem;
class DestroyItem;
class GetItemPurchaseData;
class ItemPurchaseRefund;
class RepairItem;
class ReadItem;
class SellItem;
@@ -1535,7 +1536,7 @@ class WorldSession
void HandleCancelTempEnchantmentOpcode(WorldPackets::Item::CancelTempEnchantment& cancelTempEnchantment);
void HandleGetItemPurchaseData(WorldPackets::Item::GetItemPurchaseData& packet);
void HandleItemRefund(WorldPacket& recvData);
void HandleItemRefund(WorldPackets::Item::ItemPurchaseRefund& packet);
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData);