From c577991095575d70e314270b7212c99d84d96982 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 28 Aug 2019 13:02:07 +0200 Subject: [PATCH] Core/Misc: fixed packet structures of CMSG_MESSAGECHAT_ADDON_PARTY, CMSG_MESSAGECHAT_ADDON_OFFICER and CMSG_AUCTION_LIST_ITEMS --- src/server/game/Handlers/AuctionHouseHandler.cpp | 10 +++++++--- src/server/game/Handlers/ChatHandler.cpp | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp index 668439e6fa..188998fb22 100644 --- a/src/server/game/Handlers/AuctionHouseHandler.cpp +++ b/src/server/game/Handlers/AuctionHouseHandler.cpp @@ -759,7 +759,7 @@ void WorldSession::HandleAuctionListItems(WorldPacket& recvData) TC_LOG_DEBUG("network", "WORLD: Received CMSG_AUCTION_LIST_ITEMS"); std::string searchedname; - uint8 levelmin, levelmax, usable, getAll; + uint8 levelmin, levelmax, usable, getAll, sortCount; uint32 listfrom, auctionSlotID, auctionMainCategory, auctionSubCategory, quality; ObjectGuid guid; @@ -774,9 +774,13 @@ void WorldSession::HandleAuctionListItems(WorldPacket& recvData) recvData >> getAll; recvData.read_skip(); // unk - // this block looks like it uses some lame byte packing or similar... - for (uint8 i = 0; i < 15; i++) + // Sorting + recvData >> sortCount; + for (uint8 i = 0; i < sortCount; i++) + { recvData.read_skip(); + recvData.read_skip(); + } Creature* creature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_AUCTIONEER); if (!creature) diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index e16f1cd319..522e0578f2 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -623,8 +623,8 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) uint32 msgLen = recvData.ReadBits(9); message = recvData.ReadString(msgLen); prefix = recvData.ReadString(prefixLen); + break; } - case CHAT_MSG_GUILD: { uint32 msgLen = recvData.ReadBits(9); @@ -638,7 +638,10 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) } if (prefix.empty() || prefix.length() > 16) + { + recvData.rfinish(); return; + } // Disabled addon channel? if (!sWorld->getBoolConfig(CONFIG_ADDON_CHANNEL)) @@ -683,7 +686,6 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) case CHAT_MSG_PARTY: case CHAT_MSG_RAID: { - Group* group = sender->GetGroup(); if (!group || group->isBGGroup()) break;