mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
Fix duplicate whisper display in Classic chat parser
Vanilla SMSG_MESSAGECHAT writes senderGuid twice for all standard chat types. Parser only read one GUID for WHISPER/WHISPER_INFORM, shifting the read position and causing the server echo filter to fail to match the player's GUID.
This commit is contained in:
parent
67fdd7809a
commit
0b28dbf140
1 changed files with 12 additions and 2 deletions
|
|
@ -447,7 +447,16 @@ bool ClassicPacketParsers::parseMessageChat(network::Packet& packet, MessageChat
|
||||||
|
|
||||||
case ChatType::SAY:
|
case ChatType::SAY:
|
||||||
case ChatType::PARTY:
|
case ChatType::PARTY:
|
||||||
case ChatType::YELL: {
|
case ChatType::YELL:
|
||||||
|
case ChatType::WHISPER:
|
||||||
|
case ChatType::WHISPER_INFORM:
|
||||||
|
case ChatType::GUILD:
|
||||||
|
case ChatType::OFFICER:
|
||||||
|
case ChatType::RAID:
|
||||||
|
case ChatType::RAID_LEADER:
|
||||||
|
case ChatType::RAID_WARNING:
|
||||||
|
case ChatType::EMOTE:
|
||||||
|
case ChatType::TEXT_EMOTE: {
|
||||||
// senderGuid(u64) + senderGuid(u64) — written twice by server
|
// senderGuid(u64) + senderGuid(u64) — written twice by server
|
||||||
data.senderGuid = packet.readUInt64();
|
data.senderGuid = packet.readUInt64();
|
||||||
/*duplicateGuid*/ packet.readUInt64();
|
/*duplicateGuid*/ packet.readUInt64();
|
||||||
|
|
@ -481,8 +490,9 @@ bool ClassicPacketParsers::parseMessageChat(network::Packet& packet, MessageChat
|
||||||
}
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
// GUILD, OFFICER, RAID, WHISPER, WHISPER_INFORM, etc: senderGuid(u64)
|
// All other types: senderGuid(u64) + senderGuid(u64) — written twice
|
||||||
data.senderGuid = packet.readUInt64();
|
data.senderGuid = packet.readUInt64();
|
||||||
|
/*duplicateGuid*/ packet.readUInt64();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue