From 12f5aaf286a0996664b8f0f18d26b131fda455b0 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 28 Mar 2026 15:01:25 -0700 Subject: [PATCH] fix: filter BG queue announcer spam from system chat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ChromieCraft/AzerothCore BG queue announcer module floods chat with SYSTEM messages like "Queue status for Alterac Valley [H: 12/40, A: 15/40]". Now filtered by detecting common patterns: "Queue status", "BG Queue", "Announcer]", and "[H:...A:..." format. Equipment status: resolved items ARE rendering (head, shoulders, chest, legs confirmed with displayIds). Remaining unresolved slots (weapons) are item queries the server hasn't responded to yet — timing issue, not a client bug. Items trickle in over ~5 seconds as queries return. --- src/game/chat_handler.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/game/chat_handler.cpp b/src/game/chat_handler.cpp index 327efc3c..e33090ba 100644 --- a/src/game/chat_handler.cpp +++ b/src/game/chat_handler.cpp @@ -196,6 +196,19 @@ void ChatHandler::handleMessageChat(network::Packet& packet) { } } + // Filter BG queue announcer spam (server-side module on ChromieCraft/AzerothCore). + // These are SYSTEM messages with BG queue status that flood the chat. + if (data.type == ChatType::SYSTEM) { + const auto& msg = data.message; + // Common patterns: "[BG Queue Announcer]", "Queue status for", "[H: N/N, A: N/N]" + if (msg.find("Queue status") != std::string::npos || + msg.find("BG Queue") != std::string::npos || + msg.find("Announcer]") != std::string::npos || + (msg.find("[H:") != std::string::npos && msg.find("A:") != std::string::npos)) { + return; // Suppress BG queue announcer spam + } + } + // Filter officer chat if player doesn't have officer chat permission. // Some servers send officer chat to all guild members regardless of rank. // WoW guild right bit 0x40 = GR_RIGHT_OFFCHATSPEAK, 0x80 = GR_RIGHT_OFFCHATLISTEN