From a951da4bb251cc58559cf1ed3fde44dc402878e1 Mon Sep 17 00:00:00 2001 From: Dusk-92 Date: Wed, 12 Aug 2026 11:06:40 +0200 Subject: [PATCH] Enhance friend check and guild roster sync Refactor IsFriendOf function to use strlower for case-insensitive comparison and ensure guild roster sync on module enable. --- mods/chat-spam-filter.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mods/chat-spam-filter.lua b/mods/chat-spam-filter.lua index 4a93469..3e0f01b 100644 --- a/mods/chat-spam-filter.lua +++ b/mods/chat-spam-filter.lua @@ -35,7 +35,8 @@ end local function IsFriendOf(name) if not name then return false end for i = 1, GetNumFriends() do - if GetFriendInfo(i) == name then + local fname = GetFriendInfo(i) + if fname and strlower(fname) == strlower(name) then return true end end @@ -68,6 +69,13 @@ end local GetPlayerName = GetUnitName or UnitName module.enable = function(self) + -- force an early guild roster sync: GetNumGuildMembers() returns 0 until + -- the roster has been fetched at least once, which would otherwise let + -- guildmate emotes get filtered right after login/reload + if IsInGuild() then + GuildRoster() + end + -- periodically swap/prune the cache so it never grows forever local cleaner = CreateFrame("Frame") local elapsed_total = 0