mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-25 13:03:50 +00:00
fix(chat): resolve /r reply target when name arrives after whisper
Whisper sender name may not be in the player name cache when the packet arrives. Store the sender GUID and lazily resolve the name from the cache in getLastWhisperSender(). Also backfill lastWhisperSender_ when the SMSG_NAME_QUERY_RESPONSE arrives.
This commit is contained in:
parent
c85d023329
commit
5538655383
4 changed files with 31 additions and 9 deletions
|
|
@ -255,15 +255,22 @@ void ChatHandler::handleMessageChat(network::Packet& packet) {
|
|||
}
|
||||
|
||||
// Track whisper sender for /r command
|
||||
if (data.type == ChatType::WHISPER && !data.senderName.empty()) {
|
||||
owner_.lastWhisperSender_ = data.senderName;
|
||||
if (data.type == ChatType::WHISPER) {
|
||||
// Always store GUID so getLastWhisperSender() can resolve the name
|
||||
// from the player name cache even if name wasn't available yet
|
||||
if (data.senderGuid != 0)
|
||||
owner_.lastWhisperSenderGuid_ = data.senderGuid;
|
||||
if (!data.senderName.empty())
|
||||
owner_.lastWhisperSender_ = data.senderName;
|
||||
|
||||
if (owner_.afkStatus_ && !data.senderName.empty()) {
|
||||
std::string reply = owner_.afkMessage_.empty() ? "Away from Keyboard" : owner_.afkMessage_;
|
||||
sendChatMessage(ChatType::WHISPER, "<AFK> " + reply, data.senderName);
|
||||
} else if (owner_.dndStatus_ && !data.senderName.empty()) {
|
||||
std::string reply = owner_.dndMessage_.empty() ? "Do Not Disturb" : owner_.dndMessage_;
|
||||
sendChatMessage(ChatType::WHISPER, "<DND> " + reply, data.senderName);
|
||||
if (!data.senderName.empty()) {
|
||||
if (owner_.afkStatus_) {
|
||||
std::string reply = owner_.afkMessage_.empty() ? "Away from Keyboard" : owner_.afkMessage_;
|
||||
sendChatMessage(ChatType::WHISPER, "<AFK> " + reply, data.senderName);
|
||||
} else if (owner_.dndStatus_) {
|
||||
std::string reply = owner_.dndMessage_.empty() ? "Do Not Disturb" : owner_.dndMessage_;
|
||||
sendChatMessage(ChatType::WHISPER, "<DND> " + reply, data.senderName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue