aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-06-14 21:28:48 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-14 21:28:48 +0200
commit27e08e48e117a3c31e3d45d8bfe5d307d93ebc81 (patch)
tree5674e82092b08796214e6ce7f8cf48f90a4629b5 /src/server/game/Server
parentd2733eb6f1f9a550ec6511b5fa696b67b11044b3 (diff)
Core/PacketIO: Updated AH and mail packets
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.cpp75
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.h31
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp34
-rw-r--r--src/server/game/Server/Packets/ItemPackets.h8
-rw-r--r--src/server/game/Server/Packets/MailPackets.cpp56
-rw-r--r--src/server/game/Server/Packets/MailPackets.h8
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp26
7 files changed, 152 insertions, 86 deletions
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp
index 143ba11ddca..6bff90b10ae 100644
--- a/src/server/game/Server/Packets/AuctionHousePackets.cpp
+++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp
@@ -24,7 +24,6 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AuctionHouse::AuctionItem
data << auctionItem.Item; // ItemInstance
data << int32(auctionItem.Count);
data << int32(auctionItem.Charges);
- data << int32(auctionItem.Enchantments.size());
data << int32(auctionItem.Flags);
data << int32(auctionItem.AuctionItemID);
data << auctionItem.Owner;
@@ -33,8 +32,16 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AuctionHouse::AuctionItem
data << uint64(auctionItem.BuyoutPrice);
data << int32(auctionItem.DurationLeft);
data << uint8(auctionItem.DeleteReason);
+ data.WriteBits(auctionItem.Enchantments.size(), 4);
+ data.WriteBits(auctionItem.Gems.size(), 2);
+ data.WriteBit(auctionItem.CensorServerSideInfo);
+ data.WriteBit(auctionItem.CensorBidInfo);
+ data.FlushBits();
+
+ for (auto const& gem : auctionItem.Gems)
+ data << gem;
- for (auto const& enchant : auctionItem.Enchantments)
+ for (WorldPackets::AuctionHouse::AuctionItem::AuctionItemEnchant const& enchant : auctionItem.Enchantments)
{
data << int32(enchant.ID);
data << uint32(enchant.Expiration);
@@ -42,19 +49,14 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AuctionHouse::AuctionItem
data << uint8(enchant.Slot);
}
- data.FlushBits();
-
- bool censorServerSideInfo = !data.WriteBit(auctionItem.CensorServerSideInfo);
- bool censorBidInfo = !data.WriteBit(auctionItem.CensorBidInfo);
-
- if (censorServerSideInfo)
+ if (!auctionItem.CensorServerSideInfo)
{
data << auctionItem.ItemGuid;
data << auctionItem.OwnerAccountID;
data << int32(auctionItem.EndTime);
}
- if (censorBidInfo)
+ if (!auctionItem.CensorBidInfo)
{
data << auctionItem.Bidder;
data << uint64(auctionItem.BidAmount);
@@ -195,14 +197,12 @@ WorldPacket const* WorldPackets::AuctionHouse::AuctionListItemsResult::Write()
_worldPacket << int32(Items.size());
_worldPacket << int32(TotalCount);
_worldPacket << int32(DesiredDelay);
-
- for (auto const& item : Items)
- _worldPacket << item;
-
- _worldPacket.FlushBits();
_worldPacket.WriteBit(OnlyUsable);
_worldPacket.FlushBits();
+ for (AuctionItem const& item : Items)
+ _worldPacket << item;
+
return &_worldPacket;
}
@@ -212,7 +212,7 @@ WorldPacket const* WorldPackets::AuctionHouse::AuctionListOwnerItemsResult::Writ
_worldPacket << uint32(TotalCount);
_worldPacket << uint32(DesiredDelay);
- for (auto const& item : Items)
+ for (AuctionItem const& item : Items)
_worldPacket << item;
return &_worldPacket;
@@ -224,7 +224,7 @@ WorldPacket const* WorldPackets::AuctionHouse::AuctionListBidderItemsResult::Wri
_worldPacket << uint32(TotalCount);
_worldPacket << uint32(DesiredDelay);
- for (auto const& item : Items)
+ for (AuctionItem const& item : Items)
_worldPacket << item;
return &_worldPacket;
@@ -236,25 +236,36 @@ void WorldPackets::AuctionHouse::AuctionListItems::Read()
_worldPacket >> Auctioneer;
_worldPacket >> MinLevel;
_worldPacket >> MaxLevel;
- _worldPacket >> InvType;
- _worldPacket >> ItemClass;
- _worldPacket >> ItemSubclass;
_worldPacket >> Quality;
_worldPacket >> SortCount;
+ KnownPets.resize(_worldPacket.read<uint32>());
+ _worldPacket >> MaxPetLevel;
+ for (std::size_t i = 0; i < KnownPets.size(); ++i)
+ _worldPacket >> KnownPets[i];
- _worldPacket.FlushBits();
- uint32 nameLength = _worldPacket.ReadBits(8);
- Name = _worldPacket.ReadString(nameLength);
+ Name = _worldPacket.ReadString(_worldPacket.ReadBits(8));
+ ClassFilters.resize(_worldPacket.ReadBits(3));
OnlyUsable = _worldPacket.ReadBit();
ExactMatch = _worldPacket.ReadBit();
+ for (ClassFilter& classFilter : ClassFilters)
+ {
+ _worldPacket >> classFilter.ItemClass;
+ classFilter.SubClassFilters.resize(_worldPacket.ReadBits(5));
+ for (ClassFilter::SubClassFilter& subclassFilter : classFilter.SubClassFilters)
+ {
+ _worldPacket >> subclassFilter.ItemSubclass;
+ _worldPacket >> subclassFilter.InvTypeMask;
+ }
+ }
+
_worldPacket.read_skip<uint32>(); // DataSize = (SortCount * 2)
for (int32 i = 0; i < SortCount; i++)
{
WorldPackets::AuctionHouse::AuctionListItems::Sort sort;
- _worldPacket >> sort.UnkByte1;
- _worldPacket >> sort.UnkByte2;
- DataSort.emplace_back(sort);
+ _worldPacket >> sort.Type;
+ _worldPacket >> sort.Direction;
+ DataSort.push_back(sort);
}
}
@@ -266,7 +277,7 @@ void WorldPackets::AuctionHouse::AuctionListOwnerItems::Read()
WorldPacket const* WorldPackets::AuctionHouse::AuctionListPendingSalesResult::Write()
{
- _worldPacket << int32(Mails.size());
+ _worldPacket << uint32(Mails.size());
_worldPacket << int32(TotalNumRecords);
for (auto const& mail : Mails)
@@ -312,12 +323,12 @@ WorldPacket const* WorldPackets::AuctionHouse::AuctionOutBidNotification::Write(
WorldPacket const* WorldPackets::AuctionHouse::AuctionReplicateResponse::Write()
{
- _worldPacket << int32(Result);
- _worldPacket << int32(DesiredDelay);
- _worldPacket << int32(ChangeNumberGlobal);
- _worldPacket << int32(ChangeNumberCursor);
- _worldPacket << int32(ChangeNumberTombstone);
- _worldPacket << int32(Items.size());
+ _worldPacket << uint32(Result);
+ _worldPacket << uint32(DesiredDelay);
+ _worldPacket << uint32(ChangeNumberGlobal);
+ _worldPacket << uint32(ChangeNumberCursor);
+ _worldPacket << uint32(ChangeNumberTombstone);
+ _worldPacket << uint32(Items.size());
for (auto const& item : Items)
_worldPacket << item;
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h
index e6aa6faac16..8ea9615e301 100644
--- a/src/server/game/Server/Packets/AuctionHousePackets.h
+++ b/src/server/game/Server/Packets/AuctionHousePackets.h
@@ -59,6 +59,7 @@ namespace WorldPackets
uint32 EndTime = 0;
ObjectGuid Bidder;
uint64 BidAmount = 0;
+ std::vector<Item::ItemGemInstanceData> Gems;
};
struct AuctionOwnerNotification
@@ -254,25 +255,37 @@ namespace WorldPackets
public:
struct Sort
{
- uint8 UnkByte1 = 0;
- uint8 UnkByte2 = 0;
+ uint8 Type = 0;
+ uint8 Direction = 0;
+ };
+
+ struct ClassFilter
+ {
+ struct SubClassFilter
+ {
+ int32 ItemSubclass;
+ uint32 InvTypeMask;
+ };
+
+ int32 ItemClass;
+ Array<SubClassFilter, 31> SubClassFilters;
};
AuctionListItems(WorldPacket&& packet) : ClientPacket(CMSG_AUCTION_LIST_ITEMS, std::move(packet)) { }
void Read() override;
- ObjectGuid Auctioneer;
- uint8 SortCount = 0;
- uint8 MaxLevel = 100;
uint32 Offset = 0;
- int32 ItemClass = 0;
+ ObjectGuid Auctioneer;
uint8 MinLevel = 1;
- int32 InvType = 0;
+ uint8 MaxLevel = 100;
int32 Quality = 0;
- int32 ItemSubclass = 0;
- bool ExactMatch = true;
+ uint8 SortCount = 0;
+ Array<uint8> KnownPets;
+ int8 MaxPetLevel;
std::string Name;
+ Array<ClassFilter, 7> ClassFilters;
+ bool ExactMatch = true;
bool OnlyUsable = false;
std::vector<Sort> DataSort;
};
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index e627d80fdea..08648353635 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -165,7 +165,7 @@ WorldPacket const* WorldPackets::Item::SetProficiency::Write()
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemBonusInstanceData const& itemBonusInstanceData)
{
- data << itemBonusInstanceData.Context;
+ data << uint8(itemBonusInstanceData.Context);
data << uint32(itemBonusInstanceData.BonusListIDs.size());
for (uint32 bonusID : itemBonusInstanceData.BonusListIDs)
data << bonusID;
@@ -173,20 +173,18 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemBonusInstanceDa
return data;
}
-ByteBuffer& operator>>(ByteBuffer& data, Optional<WorldPackets::Item::ItemBonusInstanceData>& itemBonusInstanceData)
+ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemBonusInstanceData& itemBonusInstanceData)
{
uint32 bonusListIdSize;
- itemBonusInstanceData = boost::in_place();
-
- data >> itemBonusInstanceData->Context;
+ data >> itemBonusInstanceData.Context;
data >> bonusListIdSize;
for (uint32 i = 0u; i < bonusListIdSize; ++i)
{
uint32 bonusId;
data >> bonusId;
- itemBonusInstanceData->BonusListIDs.push_back(bonusId);
+ itemBonusInstanceData.BonusListIDs.push_back(bonusId);
}
return data;
@@ -221,18 +219,34 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemInstance& itemI
bool const hasModifications = data.ReadBit();
if (hasItemBonus)
- data >> itemInstance.ItemBonus;
+ {
+ itemInstance.ItemBonus = boost::in_place();
+ data >> *itemInstance.ItemBonus;
+ }
if (hasModifications)
{
- WorldPackets::CompactArray<int32> modifications;
- data >> modifications;
- itemInstance.Modifications = std::move(modifications);
+ itemInstance.Modifications = boost::in_place();
+ data >> *itemInstance.Modifications;
}
return data;
}
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemGemInstanceData const& itemGemInstanceData)
+{
+ data << uint8(itemGemInstanceData.Slot);
+ data << itemGemInstanceData.Item;
+ return data;
+}
+
+ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemGemInstanceData& itemGemInstanceData)
+{
+ data >> itemGemInstanceData.Slot;
+ data >> itemGemInstanceData.Item;
+ return data;
+}
+
ByteBuffer& WorldPackets::Item::operator>>(ByteBuffer& data, InvUpdate& invUpdate)
{
invUpdate.Items.resize(data.ReadBits(2));
diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h
index 833d1bd9261..7228efc5676 100644
--- a/src/server/game/Server/Packets/ItemPackets.h
+++ b/src/server/game/Server/Packets/ItemPackets.h
@@ -53,6 +53,12 @@ namespace WorldPackets
bool operator!=(ItemInstance const& r) const { return !(*this == r); }
};
+ struct ItemGemInstanceData
+ {
+ uint8 Slot;
+ ItemInstance Item;
+ };
+
class BuyBackItem final : public ClientPacket
{
public:
@@ -533,5 +539,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemBonusInstanceDa
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemBonusInstanceData& itemBonusInstanceData);
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemInstance const& itemInstance);
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemInstance& itemInstance);
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemGemInstanceData const& itemGemInstanceData);
+ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Item::ItemGemInstanceData& itemGemInstanceData);
#endif // ItemPackets_h__
diff --git a/src/server/game/Server/Packets/MailPackets.cpp b/src/server/game/Server/Packets/MailPackets.cpp
index fc1c75dd2e1..12f48debe3d 100644
--- a/src/server/game/Server/Packets/MailPackets.cpp
+++ b/src/server/game/Server/Packets/MailPackets.cpp
@@ -33,32 +33,54 @@ WorldPackets::Mail::MailAttachedItem::MailAttachedItem(::Item const* item, uint8
for (uint8 j = 0; j < MAX_INSPECTED_ENCHANTMENT_SLOT; j++)
{
- Enchants[j].Enchant = item->GetEnchantmentId((EnchantmentSlot)j);
- Enchants[j].Duration = item->GetEnchantmentDuration((EnchantmentSlot)j);
- Enchants[j].Charges = item->GetEnchantmentCharges((EnchantmentSlot)j);
+ if (!item->GetEnchantmentId((EnchantmentSlot)j))
+ continue;
+
+ MailAttachedItemEnchant enchant;
+ enchant.Enchant = item->GetEnchantmentId((EnchantmentSlot)j);
+ enchant.Duration = item->GetEnchantmentDuration((EnchantmentSlot)j);
+ enchant.Charges = item->GetEnchantmentCharges((EnchantmentSlot)j);
+ enchant.Slot = j;
+ Enchants.push_back(enchant);
+ }
+
+ for (std::size_t i = 0; i < item->GetDynamicValues(ITEM_DYNAMIC_FIELD_GEMS).size(); ++i)
+ {
+ uint32 gemItemId = item->GetDynamicValue(ITEM_DYNAMIC_FIELD_GEMS, i);
+ if (!gemItemId)
+ continue;
+
+ Item::ItemGemInstanceData gem;
+ gem.Slot = i;
+ gem.Item.ItemID = gemItemId;
+ Gems.push_back(gem);
}
}
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailAttachedItem const& att)
{
data << uint8(att.Position);
- data << uint32(att.AttachID);
+ data << int32(att.AttachID);
+ data << int32(att.Count);
+ data << int32(att.Charges);
+ data << uint32(att.MaxDurability);
+ data << int32(att.Durability);
data << att.Item;
+ data.WriteBits(att.Enchants.size(), 4);
+ data.WriteBits(att.Gems.size(), 2);
+ data.WriteBit(att.Unlocked);
+ data.FlushBits();
+
+ for (auto const& gem : att.Gems)
+ data << gem;
for (auto const& en : att.Enchants)
{
data << int32(en.Enchant);
- data << int32(en.Duration);
+ data << uint32(en.Duration);
data << int32(en.Charges);
}
- data << int32(att.Count);
- data << int32(att.Charges);
- data << int32(att.MaxDurability);
- data << int32(att.Durability);
- data.WriteBit(att.Unlocked);
- data.FlushBits();
-
return data;
}
@@ -100,26 +122,22 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Mail::MailListEntry const
{
data << int32(entry.MailID);
data << int8(entry.SenderType);
-
data << int64(entry.Cod);
data << int32(entry.StationeryID);
data << int64(entry.SentMoney);
data << int32(entry.Flags);
data << float(entry.DaysLeft);
data << int32(entry.MailTemplateID);
-
data << int32(entry.Attachments.size());
-
- for (auto const& att : entry.Attachments)
- data << att;
-
data.WriteBit(entry.SenderCharacter.is_initialized());
data.WriteBit(entry.AltSenderID.is_initialized());
-
data.WriteBits(entry.Subject.size(), 8);
data.WriteBits(entry.Body.size(), 13);
data.FlushBits();
+ for (auto const& att : entry.Attachments)
+ data << att;
+
if (entry.SenderCharacter)
data << *entry.SenderCharacter;
diff --git a/src/server/game/Server/Packets/MailPackets.h b/src/server/game/Server/Packets/MailPackets.h
index 927d8022c73..6a2928bb9a5 100644
--- a/src/server/game/Server/Packets/MailPackets.h
+++ b/src/server/game/Server/Packets/MailPackets.h
@@ -32,8 +32,9 @@ namespace WorldPackets
struct MailAttachedItemEnchant
{
int32 Enchant = 0;
- int32 Duration = 0;
+ uint32 Duration = 0;
int32 Charges = 0;
+ uint8 Slot = 0;
};
struct MailAttachedItem
@@ -45,10 +46,11 @@ namespace WorldPackets
Item::ItemInstance Item;
int32 Count = 0;
int32 Charges = 0;
- int32 MaxDurability = 0;
+ uint32 MaxDurability = 0;
int32 Durability = 0;
bool Unlocked = false;
- MailAttachedItemEnchant Enchants[8];
+ std::vector<MailAttachedItemEnchant> Enchants;
+ std::vector<Item::ItemGemInstanceData> Gems;
};
struct MailListEntry
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 1f9badfbdef..d03b3e6044b 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -138,7 +138,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_ATTACK_SWING, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Combat::AttackSwing, &WorldSession::HandleAttackSwingOpcode);
DEFINE_HANDLER(CMSG_AUCTION_HELLO_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionHelloRequest, &WorldSession::HandleAuctionHelloOpcode);
DEFINE_HANDLER(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionListBidderItems, &WorldSession::HandleAuctionListBidderItems);
- DEFINE_HANDLER(CMSG_AUCTION_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionListItems, &WorldSession::HandleAuctionListItems);
+ DEFINE_HANDLER(CMSG_AUCTION_LIST_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionListItems, &WorldSession::HandleAuctionListItems);
DEFINE_HANDLER(CMSG_AUCTION_LIST_OWNER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionListOwnerItems, &WorldSession::HandleAuctionListOwnerItems);
DEFINE_HANDLER(CMSG_AUCTION_LIST_PENDING_SALES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionListPendingSales, &WorldSession::HandleAuctionListPendingSales);
DEFINE_HANDLER(CMSG_AUCTION_PLACE_BID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionPlaceBid, &WorldSession::HandleAuctionPlaceBid);
@@ -686,7 +686,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_SELL_WOW_TOKEN_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SELL_WOW_TOKEN_START, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SEND_CONTACT_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Social::SendContactList, &WorldSession::HandleContactListOpcode);
- DEFINE_HANDLER(CMSG_SEND_MAIL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Mail::SendMail, &WorldSession::HandleSendMail);
+ DEFINE_HANDLER(CMSG_SEND_MAIL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Mail::SendMail, &WorldSession::HandleSendMail);
DEFINE_HANDLER(CMSG_SEND_SOR_REQUEST_VIA_ADDRESS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SEND_TEXT_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::CTextEmote, &WorldSession::HandleTextEmoteOpcode);
DEFINE_HANDLER(CMSG_SET_ACHIEVEMENTS_HIDDEN, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
@@ -857,17 +857,17 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_STOP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_ERROR, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACK_SWING_LANDED_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_CLOSED_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_CLOSED_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OUTBID_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_BID_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_REPLICATE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_WON_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OUTBID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_BID_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_REPLICATE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_WON_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_POINTS_DEPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1318,7 +1318,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ROLL_WON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOSS_OF_CONTROL_AURA_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAIL_QUERY_NEXT_TIME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJECTIVES_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MAP_OBJ_EVENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1573,7 +1573,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_RANGED_COMBAT_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_WEEKLY_CURRENCY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPEC_WIPE_CONFIRM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);