diff --git a/ElvUI_SLE/modules/chat/chat.lua b/ElvUI_SLE/modules/chat/chat.lua
index a8cd2d6..3bd1af6 100644
--- a/ElvUI_SLE/modules/chat/chat.lua
+++ b/ElvUI_SLE/modules/chat/chat.lua
@@ -2,54 +2,49 @@
local CH = E:GetModule('Chat')
local LSM = LibStub("LibSharedMedia-3.0")
-local chatFilters = {};
-
-local specialChatIcons = {
- ["Kil'jaeden"] = {
- ["Elvz"] = "|TInterface\\AddOns\\ElvUI\\media\\textures\\ElvUI_Chat_Logo:13:22|t"
- },
+--Textures for chat
+CHAT_FLAG_SLEAUTHOR = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+CHAT_FLAG_SLEFRIEND = ""
+--Toon table
+local IconTable = {
["Illidan"] = {
- ["Affinichi"] = "|TInterface\\AddOns\\ElvUI\\media\\textures\\Bathrobe_Chat_Logo.blp:15:15|t",
- ["Uplift"] = "|TInterface\\AddOns\\ElvUI\\media\\textures\\Bathrobe_Chat_Logo.blp:15:15|t",
- ["Affinitii"] = "|TInterface\\AddOns\\ElvUI\\media\\textures\\Bathrobe_Chat_Logo.blp:15:15|t",
- ["Affinity"] = "|TInterface\\AddOns\\ElvUI\\media\\textures\\Bathrobe_Chat_Logo.blp:15:15|t",
--Darth's toon
- ["Darthpred"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
+ ["Darthpred"] = "SLEAUTHOR",
--Repooc's Toon
- ["Repooc"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+ ["Repooc"] = "SLEAUTHOR"
},
["Свежеватель Душ"] = {
--Darth's toons
- ["Дартпредатор"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Алея"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Ваззули"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Сиаранна"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Джатон"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Фикстер"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Киландра"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Нарджо"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Верзук"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- --["Большойгном"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Крениг"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+ ["Дартпредатор"] = "SLEAUTHOR",
+ ["Алея"] = "SLEAUTHOR",
+ ["Ваззули"] = "SLEAUTHOR",
+ ["Сиаранна"] = "SLEAUTHOR",
+ ["Джатон"] = "SLEAUTHOR",
+ ["Фикстер"] = "SLEAUTHOR",
+ ["Киландра"] = "SLEAUTHOR",
+ ["Нарджо"] = "SLEAUTHOR",
+ ["Верзук"] = "SLEAUTHOR",
+ ["Крениг"] = "SLEAUTHOR",
+ ["Большойгном"] = "SLEAUTHOR" --Testing toon
},
["Вечная Песня"] = {
--Darth's toons
- ["Киландра"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Равенор"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Налкас"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Ваззули"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
+ ["Киландра"] = "SLEAUTHOR",
+ ["Равенор"] = "SLEAUTHOR",
+ ["Налкас"] = "SLEAUTHOR",
+ ["Ваззули"] = "SLEAUTHOR",
--Darth's friends
- --["Леани"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+ ["Леани"] = "SLEFRIEND"
},
["Korialstrasz"] = {
- ["Sifupooc"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Repooc"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Cursewordz"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+ ["Sifupooc"] = "SLEAUTHOR",
+ ["Repooc"] = "SLEAUTHOR",
+ ["Cursewordz"] = "SLEAUTHOR"
},
["Andorhal"] = {
- ["Dapooc"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Rovert"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t",
- ["Sliceoflife"] = "|TInterface\\AddOns\\ElvUI_SLE\\media\\textures\\SLE_Chat_Logo:13:22|t"
+ ["Dapooc"] = "SLEAUTHOR",
+ ["Rovert"] = "SLEAUTHOR",
+ ["Sliceoflife"] = "SLEAUTHOR"
},
}
@@ -192,437 +187,54 @@ function CH:PositionChat(override)
self.initialMove = true;
end
-function CH:ChatFrame_MessageEventHandler(event, ...)
- if ( strsub(event, 1, 8) == "CHAT_MSG" ) then
- local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14 = ...;
- local type = strsub(event, 10);
- local info = ChatTypeInfo[type];
-
- local filter = false;
- if ( chatFilters[event] ) then
- local newarg1, newarg2, newarg3, newarg4, newarg5, newarg6, newarg7, newarg8, newarg9, newarg10, newarg11, newarg12, newarg13, newarg14;
- for _, filterFunc in next, chatFilters[event] do
- filter, newarg1, newarg2, newarg3, newarg4, newarg5, newarg6, newarg7, newarg8, newarg9, newarg10, newarg11, newarg12, newarg13, newarg14 = filterFunc(self, event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
- if ( filter ) then
- return true;
- elseif ( newarg1 ) then
- arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14 = newarg1, newarg2, newarg3, newarg4, newarg5, newarg6, newarg7, newarg8, newarg9, newarg10, newarg11, newarg12, newarg13, newarg14;
- end
- end
- end
-
- local coloredName = GetColoredName(event, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
-
- local channelLength = strlen(arg4);
- local infoType = type;
- if ( (strsub(type, 1, 7) == "CHANNEL") and (type ~= "CHANNEL_LIST") and ((arg1 ~= "INVITE") or (type ~= "CHANNEL_NOTICE_USER")) ) then
- if ( arg1 == "WRONG_PASSWORD" ) then
- local staticPopup = _G[StaticPopup_Visible("CHAT_CHANNEL_PASSWORD") or ""];
- if ( staticPopup and strupper(staticPopup.data) == strupper(arg9) ) then
- -- Don't display invalid password messages if we're going to prompt for a password (bug 102312)
- return;
- end
- end
-
- local found = 0;
- for index, value in pairs(self.channelList) do
- if ( channelLength > strlen(value) ) then
- -- arg9 is the channel name without the number in front...
- if ( ((arg7 > 0) and (self.zoneChannelList[index] == arg7)) or (strupper(value) == strupper(arg9)) ) then
- found = 1;
- infoType = "CHANNEL"..arg8;
- info = ChatTypeInfo[infoType];
- if ( (type == "CHANNEL_NOTICE") and (arg1 == "YOU_LEFT") ) then
- self.channelList[index] = nil;
- self.zoneChannelList[index] = nil;
- end
- break;
- end
- end
- end
- if ( (found == 0) or not info ) then
- return true;
- end
- end
-
- local chatGroup = Chat_GetChatCategory(type);
- local chatTarget;
- if ( chatGroup == "CHANNEL" or chatGroup == "BN_CONVERSATION" ) then
- chatTarget = tostring(arg8);
- elseif ( chatGroup == "WHISPER" or chatGroup == "BN_WHISPER" ) then
- if(not(strsub(arg2, 1, 2) == "|K")) then
- chatTarget = strupper(arg2);
- else
- chatTarget = arg2;
- end
- end
-
- if ( FCFManager_ShouldSuppressMessage(self, chatGroup, chatTarget) ) then
- return true;
- end
-
- if ( chatGroup == "WHISPER" or chatGroup == "BN_WHISPER" ) then
- if ( self.privateMessageList and not self.privateMessageList[strlower(arg2)] ) then
- return true;
- elseif ( self.excludePrivateMessageList and self.excludePrivateMessageList[strlower(arg2)]
- and ( (chatGroup == "WHISPER" and GetCVar("whisperMode") ~= "popout_and_inline") or (chatGroup == "BN_WHISPER" and GetCVar("bnWhisperMode") ~= "popout_and_inline") ) ) then
- return true;
- end
- elseif ( chatGroup == "BN_CONVERSATION" ) then
- if ( self.bnConversationList and not self.bnConversationList[arg8] ) then
- return true;
- elseif ( self.excludeBNConversationList and self.excludeBNConversationList[arg8] and GetCVar("conversationMode") ~= "popout_and_inline") then
- return true;
- end
- end
-
- if (self.privateMessageList) then
- -- Dedicated BN whisper windows need online/offline messages for only that player
- if ( (chatGroup == "BN_INLINE_TOAST_ALERT" or chatGroup == "BN_WHISPER_PLAYER_OFFLINE") and not self.privateMessageList[strlower(arg2)] ) then
- return true;
- end
-
- -- HACK to put certain system messages into dedicated whisper windows
- if ( chatGroup == "SYSTEM") then
- local matchFound = false;
- local message = strlower(arg1);
- for playerName, _ in pairs(self.privateMessageList) do
- local playerNotFoundMsg = strlower(format(ERR_CHAT_PLAYER_NOT_FOUND_S, playerName));
- local charOnlineMsg = strlower(format(ERR_FRIEND_ONLINE_SS, playerName, playerName));
- local charOfflineMsg = strlower(format(ERR_FRIEND_OFFLINE_S, playerName));
- if ( message == playerNotFoundMsg or message == charOnlineMsg or message == charOfflineMsg) then
- matchFound = true;
- break;
- end
- end
-
- if (not matchFound) then
- return true;
- end
- end
- end
+--Adding icons to specific toons' names
+--Filter
+local function SLEfilter(self, event, message, author, arg3, arg4, arg5, arg6, ...)
+ local returnTex = arg6
- if ( type == "SYSTEM" or type == "SKILL" or type == "LOOT" or type == "CURRENCY" or type == "MONEY" or
- type == "OPENING" or type == "TRADESKILLS" or type == "PET_INFO" or type == "TARGETICONS" or type == "BN_WHISPER_PLAYER_OFFLINE") then
- self:AddMessage(arg1, info.r, info.g, info.b, info.id);
- elseif ( strsub(type,1,7) == "COMBAT_" ) then
- self:AddMessage(arg1, info.r, info.g, info.b, info.id);
- elseif ( strsub(type,1,6) == "SPELL_" ) then
- self:AddMessage(arg1, info.r, info.g, info.b, info.id);
- elseif ( strsub(type,1,10) == "BG_SYSTEM_" ) then
- self:AddMessage(arg1, info.r, info.g, info.b, info.id);
- elseif ( strsub(type,1,11) == "ACHIEVEMENT" ) then
- self:AddMessage(format(arg1, "|Hplayer:"..arg2.."|h".."["..coloredName.."]".."|h"), info.r, info.g, info.b, info.id);
- elseif ( strsub(type,1,18) == "GUILD_ACHIEVEMENT" ) then
- self:AddMessage(format(arg1, "|Hplayer:"..arg2.."|h".."["..coloredName.."]".."|h"), info.r, info.g, info.b, info.id);
- elseif ( type == "IGNORED" ) then
- self:AddMessage(format(CHAT_IGNORED, arg2), info.r, info.g, info.b, info.id);
- elseif ( type == "FILTERED" ) then
- self:AddMessage(format(CHAT_FILTERED, arg2), info.r, info.g, info.b, info.id);
- elseif ( type == "RESTRICTED" ) then
- self:AddMessage(CHAT_RESTRICTED, info.r, info.g, info.b, info.id);
- elseif ( type == "CHANNEL_LIST") then
- if(channelLength > 0) then
- self:AddMessage(format(_G["CHAT_"..type.."_GET"]..arg1, tonumber(arg8), arg4), info.r, info.g, info.b, info.id);
- else
- self:AddMessage(arg1, info.r, info.g, info.b, info.id);
- end
- elseif (type == "CHANNEL_NOTICE_USER") then
- local globalstring = _G["CHAT_"..arg1.."_NOTICE_BN"];
- if ( not globalstring ) then
- globalstring = _G["CHAT_"..arg1.."_NOTICE"];
- end
- if(strlen(arg5) > 0) then
- -- TWO users in this notice (E.G. x kicked y)
- self:AddMessage(format(globalstring, arg8, arg4, arg2, arg5), info.r, info.g, info.b, info.id);
- elseif ( arg1 == "INVITE" ) then
- self:AddMessage(format(globalstring, arg4, arg2), info.r, info.g, info.b, info.id);
- else
- self:AddMessage(format(globalstring, arg8, arg4, arg2), info.r, info.g, info.b, info.id);
- end
- elseif (type == "CHANNEL_NOTICE") then
- local globalstring = _G["CHAT_"..arg1.."_NOTICE_BN"];
- if ( not globalstring ) then
- globalstring = _G["CHAT_"..arg1.."_NOTICE"];
- end
- if ( arg10 > 0 ) then
- arg4 = arg4.." "..arg10;
- end
-
- local accessID = ChatHistory_GetAccessID(Chat_GetChatCategory(type), arg8);
- local typeID = ChatHistory_GetAccessID(infoType, arg8, arg12);
- self:AddMessage(format(globalstring, arg8, arg4), info.r, info.g, info.b, info.id, false, accessID, typeID);
- elseif ( type == "BN_CONVERSATION_NOTICE" ) then
- local channelLink = format(CHAT_BN_CONVERSATION_GET_LINK, arg8, MAX_WOW_CHAT_CHANNELS + arg8);
- local playerLink = format("|HBNplayer:%s:%s:%s:%s:%s|h[%s]|h", arg2, arg13, arg11, Chat_GetChatCategory(type), arg8, arg2);
- local message = format(_G["CHAT_CONVERSATION_"..arg1.."_NOTICE"], channelLink, playerLink)
-
- local accessID = ChatHistory_GetAccessID(Chat_GetChatCategory(type), arg8);
- local typeID = ChatHistory_GetAccessID(infoType, arg8, arg12);
- self:AddMessage(message, info.r, info.g, info.b, info.id, false, accessID, typeID);
- elseif ( type == "BN_CONVERSATION_LIST" ) then
- local channelLink = format(CHAT_BN_CONVERSATION_GET_LINK, arg8, MAX_WOW_CHAT_CHANNELS + arg8);
- local message = format(CHAT_BN_CONVERSATION_LIST, channelLink, arg1);
- self:AddMessage(message, info.r, info.g, info.b, info.id, false, accessID, typeID);
- elseif ( type == "BN_INLINE_TOAST_ALERT" ) then
- if ( arg1 == "FRIEND_OFFLINE" and not BNet_ShouldProcessOfflineEvents() ) then
- return true;
- end
- local globalstring = _G["BN_INLINE_TOAST_"..arg1];
- local message;
- if ( arg1 == "FRIEND_REQUEST" ) then
- message = globalstring;
- elseif ( arg1 == "FRIEND_PENDING" ) then
- message = format(BN_INLINE_TOAST_FRIEND_PENDING, BNGetNumFriendInvites());
- elseif ( arg1 == "FRIEND_REMOVED" or arg1 == "BATTLETAG_FRIEND_REMOVED" ) then
- message = format(globalstring, arg2);
- elseif ( arg1 == "FRIEND_ONLINE" or arg1 == "FRIEND_OFFLINE") then
- local hasFocus, toonName, client, realmName, realmID, faction, race, class, guild, zoneName, level, gameText = BNGetToonInfo(arg13);
- if (toonName and toonName ~= "" and client and client ~= "") then
- local toonNameText = BNet_GetClientEmbeddedTexture(client, 14)..toonName;
- local playerLink = format("|HBNplayer:%s:%s:%s:%s:%s|h[%s] (%s)|h", arg2, arg13, arg11, Chat_GetChatCategory(type), 0, arg2, toonNameText);
- message = format(globalstring, playerLink);
- else
- local playerLink = format("|HBNplayer:%s:%s:%s:%s:%s|h[%s]|h", arg2, arg13, arg11, Chat_GetChatCategory(type), 0, arg2);
- message = format(globalstring, playerLink);
- end
- else
- local playerLink = format("|HBNplayer:%s:%s:%s:%s:%s|h[%s]|h", arg2, arg13, arg11, Chat_GetChatCategory(type), 0, arg2);
- message = format(globalstring, playerLink);
- end
- self:AddMessage(message, info.r, info.g, info.b, info.id);
- elseif ( type == "BN_INLINE_TOAST_BROADCAST" ) then
- if ( arg1 ~= "" ) then
- arg1 = RemoveExtraSpaces(arg1);
- local playerLink = format("|HBNplayer:%s:%s:%s:%s:%s|h[%s]|h", arg2, arg13, arg11, Chat_GetChatCategory(type), 0, arg2);
- self:AddMessage(format(BN_INLINE_TOAST_BROADCAST, playerLink, arg1), info.r, info.g, info.b, info.id);
- end
- elseif ( type == "BN_INLINE_TOAST_BROADCAST_INFORM" ) then
- if ( arg1 ~= "" ) then
- arg1 = RemoveExtraSpaces(arg1);
- self:AddMessage(BN_INLINE_TOAST_BROADCAST_INFORM, info.r, info.g, info.b, info.id);
- end
- elseif ( type == "BN_INLINE_TOAST_CONVERSATION" ) then
- self:AddMessage(format(BN_INLINE_TOAST_CONVERSATION, arg1), info.r, info.g, info.b, info.id);
- else
- local body;
-
- local _, fontHeight = FCF_GetChatWindowInfo(self:GetID());
-
- if ( fontHeight == 0 ) then
- --fontHeight will be 0 if it's still at the default (14)
- fontHeight = 14;
- end
-
- -- Add AFK/DND flags
- local pflag;
- if(strlen(arg6) > 0) then
- if ( arg6 == "GM" ) then
- --If it was a whisper, dispatch it to the GMChat addon.
- if ( type == "WHISPER" ) then
- return;
- end
- --Add Blizzard Icon, this was sent by a GM
- pflag = "|TInterface\\ChatFrame\\UI-ChatIcon-Blizz:12:20:0:0:32:16:4:28:0:16|t ";
- elseif ( arg6 == "DEV" ) then
- --Add Blizzard Icon, this was sent by a Dev
- pflag = "|TInterface\\ChatFrame\\UI-ChatIcon-Blizz:12:20:0:0:32:16:4:28:0:16|t ";
- else
- pflag = _G["CHAT_FLAG_"..arg6];
- end
- else
- if specialChatIcons[E.myrealm] then
- for character, texture in pairs(specialChatIcons[E.myrealm]) do
- if arg2 == character then
- pflag = texture
- end
- end
+ if IconTable[E.myrealm] then
+ for character, flag in pairs(IconTable[E.myrealm]) do
+ if author == character and flag then
+ returnTex = flag..arg6
+ end
+ end
- for realm, _ in pairs(specialChatIcons) do
- if realm ~= E.myrealm then
- for character, texture in pairs(specialChatIcons[realm]) do
- if arg2 == character.."%-"..realm then
- pflag = texture
- end
- end
- end
+ for realm, _ in pairs(IconTable) do
+ if realm ~= E.myrealm then
+ for character, flag in pairs(IconTable[realm]) do
+ if author == character.."%-"..realm and flag then
+ returnTex = flag..arg6
end
- else
- for realm, _ in pairs(specialChatIcons) do
- for character, texture in pairs(specialChatIcons[realm]) do
- if arg2 == character.."%-"..realm then
- pflag = texture
- end
- end
- end
- end
-
- if not pflag then
- pflag = "";
- end
- end
- if ( type == "WHISPER_INFORM" and GMChatFrame_IsGM and GMChatFrame_IsGM(arg2) ) then
- return;
- end
-
- local showLink = 1;
- if ( strsub(type, 1, 7) == "MONSTER" or strsub(type, 1, 9) == "RAID_BOSS") then
- showLink = nil;
- else
- arg1 = gsub(arg1, "%%", "%%%%");
- end
-
- -- Search for icon links and replace them with texture links.
- for tag in string.gmatch(arg1, "%b{}") do
- local term = strlower(string.gsub(tag, "[{}]", ""));
- if ( ICON_TAG_LIST[term] and ICON_LIST[ICON_TAG_LIST[term]] ) then
- arg1 = string.gsub(arg1, tag, ICON_LIST[ICON_TAG_LIST[term]] .. "0|t");
- elseif ( GROUP_TAG_LIST[term] ) then
- local groupIndex = GROUP_TAG_LIST[term];
- local groupList = "[";
- for i=1, GetNumGroupMembers() do
- local name, rank, subgroup, level, class, classFileName = GetRaidRosterInfo(i);
- if ( name and subgroup == groupIndex ) then
- local classColorTable = RAID_CLASS_COLORS[classFileName];
- if ( classColorTable ) then
- name = string.format("\124cff%.2x%.2x%.2x%s\124r", classColorTable.r*255, classColorTable.g*255, classColorTable.b*255, name);
- end
- groupList = groupList..(groupList == "[" and "" or PLAYER_LIST_DELIMITER)..name;
- end
- end
- groupList = groupList.."]";
- arg1 = string.gsub(arg1, tag, groupList);
- end
- end
-
- --Remove groups of many spaces
- arg1 = RemoveExtraSpaces(arg1);
-
- local playerLink;
-
- if ( type ~= "BN_WHISPER" and type ~= "BN_WHISPER_INFORM" and type ~= "BN_CONVERSATION" ) then
- playerLink = "|Hplayer:"..arg2..":"..arg11..":"..chatGroup..(chatTarget and ":"..chatTarget or "").."|h";
- else
- playerLink = "|HBNplayer:"..arg2..":"..arg13..":"..arg11..":"..chatGroup..(chatTarget and ":"..chatTarget or "").."|h";
- end
-
- local message = arg1;
- if ( arg14 ) then --isMobile
- message = ChatFrame_GetMobileEmbeddedTexture(info.r, info.g, info.b)..message;
- end
-
- if ( (strlen(arg3) > 0) and (arg3 ~= self.defaultLanguage) ) then
- local languageHeader = "["..arg3.."] ";
- if ( showLink and (strlen(arg2) > 0) ) then
- body = format(_G["CHAT_"..type.."_GET"]..languageHeader..message, pflag..playerLink.."["..coloredName.."]".."|h");
- else
- body = format(_G["CHAT_"..type.."_GET"]..languageHeader..message, pflag..arg2);
- end
- else
- if ( not showLink or strlen(arg2) == 0 ) then
- if ( type == "TEXT_EMOTE" ) then
- body = message;
- else
- body = format(_G["CHAT_"..type.."_GET"]..message, pflag..arg2, arg2);
- end
- else
- if ( type == "EMOTE" ) then
- body = format(_G["CHAT_"..type.."_GET"]..message, pflag..playerLink..coloredName.."|h");
- elseif ( type == "TEXT_EMOTE") then
- body = string.gsub(message, arg2, pflag..playerLink..coloredName.."|h", 1);
- else
- body = format(_G["CHAT_"..type.."_GET"]..message, pflag..playerLink.."["..coloredName.."]".."|h");
- end
- end
- end
-
- -- Add Channel
- arg4 = gsub(arg4, "%s%-%s.*", "");
- if( chatGroup == "BN_CONVERSATION" ) then
- body = format(CHAT_BN_CONVERSATION_GET_LINK, arg8, MAX_WOW_CHAT_CHANNELS + arg8)..body;
- elseif(channelLength > 0) then
- body = "|Hchannel:channel:"..arg8.."|h["..arg4.."]|h "..body;
- end
-
- --Add Timestamps
- if ( CH.db.timeStampFormat and CH.db.timeStampFormat ~= 'NONE' ) then
- local timeStamp = BetterDate(CH.db.timeStampFormat, CH.timeOverride or time());
- timeStamp = timeStamp:gsub(' ', '')
- timeStamp = timeStamp:gsub('AM', ' AM')
- timeStamp = timeStamp:gsub('PM', ' PM')
- body = '|cffB3B3B3['..timeStamp..'] |r'..body
- end
-
- local accessID = ChatHistory_GetAccessID(chatGroup, chatTarget);
- local typeID = ChatHistory_GetAccessID(infoType, chatTarget, arg12 == "" and arg13 or arg12);
- body = body:gsub("|Hchannel:(.-)|h%[(.-)%]|h", CH.ShortChannel)
- body = body:gsub('CHANNEL:', '')
- body = body:gsub("^(.-|h) "..L['whispers'], "%1")
- body = body:gsub("^(.-|h) "..L['says'], "%1")
- body = body:gsub("^(.-|h) "..L['yells'], "%1")
- body = body:gsub("<"..AFK..">", "[|cffFF0000"..L['AFK'].."|r] ")
- body = body:gsub("<"..DND..">", "[|cffE7E716"..L['DND'].."|r] ")
- body = body:gsub("%[BN_CONVERSATION:", '%['..L["BN:"])
- body = body:gsub("^%["..RAID_WARNING.."%]", '['..L['RW']..']')
- self:AddMessage(body, info.r, info.g, info.b, info.id, false, accessID, typeID);
- CH.timeOverride = nil;
- end
-
- if ( type == "WHISPER" or type == "BN_WHISPER" ) then
- --BN_WHISPER FIXME
- ChatEdit_SetLastTellTarget(arg2, type);
- if ( self.tellTimer and (GetTime() > self.tellTimer) ) then
- PlaySound("TellMessage");
- end
- self.tellTimer = GetTime() + CHAT_TELL_ALERT_TIME;
- --FCF_FlashTab(self);
- end
-
- if ( not self:IsShown() ) then
- if ( (self == DEFAULT_CHAT_FRAME and info.flashTabOnGeneral) or (self ~= DEFAULT_CHAT_FRAME and info.flashTab) ) then
- if ( not CHAT_OPTIONS.HIDE_FRAME_ALERTS or type == "WHISPER" or type == "BN_WHISPER" ) then --BN_WHISPER FIXME
- if (not (type == "BN_CONVERSATION" and BNIsSelf(arg13))) then
- if (not FCFManager_ShouldSuppressMessageFlash(self, chatGroup, chatTarget) ) then
- FCF_StartAlertFlash(self);
- end
- end
end
end
- end
-
- return true;
- end
-end
-
-function CH:ChatFrame_AddMessageEventFilter (event, filter)
- assert(event and filter);
-
- if ( chatFilters[event] ) then
- -- Only allow a filter to be added once
- for index, filterFunc in next, chatFilters[event] do
- if ( filterFunc == filter ) then
- return;
- end
- end
+ end
else
- chatFilters[event] = {};
- end
-
- tinsert(chatFilters[event], filter);
-end
-
-function CH:ChatFrame_RemoveMessageEventFilter (event, filter)
- assert(event and filter);
-
- if ( chatFilters[event] ) then
- for index, filterFunc in next, chatFilters[event] do
- if ( filterFunc == filter ) then
- tremove(chatFilters[event], index);
+ for realm, _ in pairs(IconTable) do
+ for character, flag in pairs(IconTable[realm]) do
+ if author == character.."%-"..realm and flag then
+ returnTex = flag..arg6
+ end
end
- end
-
- if ( #chatFilters[event] == 0 ) then
- chatFilters[event] = nil;
- end
+ end
end
-end
\ No newline at end of file
+
+ return false, message, author, arg3, arg4, arg5, returnTex, ...
+end
+--Applying filter
+ChatFrame_AddMessageEventFilter("CHAT_MSG_CHANNEL", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_YELL", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_SAY", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_WHISPER_INFORM", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_WHISPER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_GUILD", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_OFFICER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY_LEADER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_RAID", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_RAID_LEADER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_INSTANCE_CHAT", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_INSTANCE_CHAT_LEADER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_CONVERSATION", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_WHISPER", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_WHISPER_INFORM", SLEfilter)
+ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_INLINE_TOAST_BROADCAST", SLEfilter)