From 9666b871f8eea945d9ad9b3ee338b0fd1cac02de Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 28 Mar 2026 15:31:16 -0700 Subject: [PATCH] fix: BG announcer filter was suppressing ALL chat messages The filter matched ALL chat types for patterns like "[H:" + "A:" which are common in normal messages. Any SAY/WHISPER/GUILD message containing both substrings was silently dropped. This broke all incoming chat. Now only filters SYSTEM messages and only matches specific BG announcer keywords: "Queue status", "BG Queue", "BGAnnouncer". --- src/game/chat_handler.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/game/chat_handler.cpp b/src/game/chat_handler.cpp index 952ecc22..02ccd11e 100644 --- a/src/game/chat_handler.cpp +++ b/src/game/chat_handler.cpp @@ -197,16 +197,13 @@ void ChatHandler::handleMessageChat(network::Packet& packet) { } // Filter BG queue announcer spam (server-side module on ChromieCraft/AzerothCore). - // Can arrive as SYSTEM, CHANNEL, or even SAY/YELL from special NPCs. - { + // Only filter SYSTEM messages to avoid suppressing player chat. + if (data.type == ChatType::SYSTEM) { const auto& msg = data.message; if (msg.find("Queue status") != std::string::npos || msg.find("BG Queue") != std::string::npos || - msg.find("Announcer]") != std::string::npos || - msg.find("BGAnnouncer") != std::string::npos || - (msg.find("[H:") != std::string::npos && msg.find("A:") != std::string::npos) || - (msg.find("[H: ") != std::string::npos && msg.find(", A: ") != std::string::npos)) { - return; // Suppress BG queue announcer spam + msg.find("BGAnnouncer") != std::string::npos) { + return; } }