From 94681ecb3b4b3000d3dbea53982e472a1cbafa31 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Thu, 24 Jul 2014 04:51:06 +0400 Subject: [PATCH] Well. Hooking works --- ElvUI_SLE/modules/chat.lua | 198 +------------------------------------------- 1 file changed, 2 insertions(+), 196 deletions(-) diff --git a/ElvUI_SLE/modules/chat.lua b/ElvUI_SLE/modules/chat.lua index 9307771..802e1eb 100644 --- a/ElvUI_SLE/modules/chat.lua +++ b/ElvUI_SLE/modules/chat.lua @@ -850,206 +850,12 @@ function CH:GMIconUpdate() end end -function CH:Initialize() - if ElvCharacterDB.ChatHistory then - ElvCharacterDB.ChatHistory = nil --Depreciated - end - - self.db = E.db.chat - - if E.private.chat.enable ~= true then - stopScript = true - DEFAULT_CHAT_FRAME:RegisterEvent("GUILD_MOTD") - - local msg = GetGuildRosterMOTD() - if msg == "" then msg = nil end - if msg then - ChatFrame_SystemEventHandler(DEFAULT_CHAT_FRAME, "GUILD_MOTD", msg) - end - - return - end - - - if not ElvCharacterDB.ChatEditHistory then - ElvCharacterDB.ChatEditHistory = {}; - end - - if not ElvCharacterDB.ChatLog or not self.db.chatHistory then - ElvCharacterDB.ChatLog = {}; - end - - self:UpdateChatKeywords() - - self:UpdateFading() - E.Chat = self - self:SecureHook('ChatEdit_OnEnterPressed') - FriendsMicroButton:Kill() - ChatFrameMenuButton:Kill() - - - if WIM then - WIM.RegisterWidgetTrigger("chat_display", "whisper,chat,w2w,demo", "OnHyperlinkClick", function(self) CH.clickedframe = self end); - WIM.RegisterItemRefHandler('url', WIM_URLLink) - end - - self:SecureHook('FCF_SetChatWindowFontSize', 'SetChatFont') - self:RegisterEvent('PLAYER_ENTERING_WORLD', 'DelayGMOTD') - self:RegisterEvent('UPDATE_CHAT_WINDOWS', 'SetupChat') - self:RegisterEvent('UPDATE_FLOATING_CHAT_WINDOWS', 'SetupChat') - self:RegisterEvent('PET_BATTLE_CLOSE') +hooksecurefunc(CH, "Initialize", function(self) if E.private.sle.guildmaster then self:RegisterEvent('GUILD_ROSTER_UPDATE', Roster) CH:GMCheck() end - - self:SetupChat() - self:UpdateAnchors() - - self:RegisterEvent("GROUP_ROSTER_UPDATE", "CheckLFGRoles") - - self:RegisterEvent('CHAT_MSG_INSTANCE_CHAT', 'SaveChatHistory') - self:RegisterEvent('CHAT_MSG_INSTANCE_CHAT_LEADER', 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_BN_WHISPER", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_BN_WHISPER_INFORM", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_CHANNEL", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_EMOTE", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_GUILD", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_GUILD_ACHIEVEMENT", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_OFFICER", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_PARTY", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_PARTY_LEADER", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_RAID", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_RAID_LEADER", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_RAID_WARNING", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_SAY", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_WHISPER", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_WHISPER_INFORM", 'SaveChatHistory') - self:RegisterEvent("CHAT_MSG_YELL", 'SaveChatHistory') - - --First get all pre-existing filters and copy them to our version of chatFilters using ChatFrame_GetMessageEventFilters - for name, _ in pairs(ChatTypeGroup) do - for i=1, #ChatTypeGroup[name] do - local filterFuncTable = ChatFrame_GetMessageEventFilters(ChatTypeGroup[name][i]) - if filterFuncTable then - chatFilters[ChatTypeGroup[name][i]] = {}; - - for j=1, #filterFuncTable do - local filterFunc = filterFuncTable[j] - tinsert(chatFilters[ChatTypeGroup[name][i]], filterFunc); - end - end - end - end - - --CHAT_MSG_CHANNEL isn't located inside ChatTypeGroup - local filterFuncTable = ChatFrame_GetMessageEventFilters("CHAT_MSG_CHANNEL") - if filterFuncTable then - chatFilters["CHAT_MSG_CHANNEL"] = {}; - - for j=1, #filterFuncTable do - local filterFunc = filterFuncTable[j] - tinsert(chatFilters["CHAT_MSG_CHANNEL"], filterFunc); - end - end - - --Now hook onto Blizzards functions for other addons - self:SecureHook("ChatFrame_AddMessageEventFilter"); - self:SecureHook("ChatFrame_RemoveMessageEventFilter"); - - self:SecureHook("FCF_SetWindowAlpha") - - - ChatFrame_AddMessageEventFilter("CHAT_MSG_CHANNEL", CH.CHAT_MSG_CHANNEL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_YELL", CH.CHAT_MSG_YELL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_SAY", CH.CHAT_MSG_SAY) - ChatFrame_AddMessageEventFilter("CHAT_MSG_WHISPER_INFORM", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_WHISPER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_GUILD", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_OFFICER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY_LEADER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_RAID", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_RAID_LEADER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_INSTANCE_CHAT", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_INSTANCE_CHAT_LEADER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_CONVERSATION", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_WHISPER", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_WHISPER_INFORM", CH.FindURL) - ChatFrame_AddMessageEventFilter("CHAT_MSG_BN_INLINE_TOAST_BROADCAST", CH.FindURL) - - - GeneralDockManagerOverflowButton:ClearAllPoints() - GeneralDockManagerOverflowButton:Point('BOTTOMRIGHT', LeftChatTab, 'BOTTOMRIGHT', -2, 2) - GeneralDockManagerOverflowButtonList:SetTemplate('Transparent') - hooksecurefunc(GeneralDockManagerScrollFrame, 'SetPoint', function(self, point, anchor, attachTo, x, y) - if anchor == GeneralDockManagerOverflowButton and x == 0 and y == 0 then - self:SetPoint(point, anchor, attachTo, -2, -6) - end - end) - - if self.db.chatHistory then - self.SoundPlayed = true; - self:DisplayChatHistory() - self.SoundPlayed = nil; - end - - - local S = E:GetModule('Skins') - S:HandleNextPrevButton(CombatLogQuickButtonFrame_CustomAdditionalFilterButton, true) - local frame = CreateFrame("Frame", "CopyChatFrame", E.UIParent) - tinsert(UISpecialFrames, "CopyChatFrame") - frame:SetTemplate('Transparent') - frame:Size(700, 200) - frame:Point('BOTTOM', E.UIParent, 'BOTTOM', 0, 3) - frame:Hide() - frame:EnableMouse(true) - frame:SetFrameStrata("DIALOG") - - - local scrollArea = CreateFrame("ScrollFrame", "CopyChatScrollFrame", frame, "UIPanelScrollFrameTemplate") - scrollArea:Point("TOPLEFT", frame, "TOPLEFT", 8, -30) - scrollArea:Point("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -30, 8) - S:HandleScrollBar(CopyChatScrollFrameScrollBar) - - local editBox = CreateFrame("EditBox", "CopyChatFrameEditBox", frame) - editBox:SetMultiLine(true) - editBox:SetMaxLetters(99999) - editBox:EnableMouse(true) - editBox:SetAutoFocus(false) - editBox:SetFontObject(ChatFontNormal) - editBox:Width(scrollArea:GetWidth()) - editBox:Height(200) - editBox:SetScript("OnEscapePressed", function() CopyChatFrame:Hide() end) - scrollArea:SetScrollChild(editBox) - CopyChatFrameEditBox:SetScript("OnTextChanged", function(self, userInput) - if userInput then return end - local _, max = CopyChatScrollFrameScrollBar:GetMinMaxValues() - for i=1, max do - ScrollFrameTemplate_OnMouseWheel(CopyChatScrollFrame, -1) - end - end) - - local close = CreateFrame("Button", "CopyChatFrameCloseButton", frame, "UIPanelCloseButton") - close:SetPoint("TOPRIGHT") - close:SetFrameLevel(close:GetFrameLevel() + 1) - close:EnableMouse(true) - - S:HandleCloseButton(close) - - --Disable Blizzard - InterfaceOptionsSocialPanelTimestampsButton:SetAlpha(0) - InterfaceOptionsSocialPanelTimestampsButton:SetScale(0.000001) - InterfaceOptionsSocialPanelTimestamps:SetAlpha(0) - InterfaceOptionsSocialPanelTimestamps:SetScale(0.000001) - - InterfaceOptionsSocialPanelChatStyle:EnableMouse(false) - InterfaceOptionsSocialPanelChatStyleButton:Hide() - InterfaceOptionsSocialPanelChatStyle:SetAlpha(0) - - CombatLogQuickButtonFrame_CustomAdditionalFilterButton:Size(20, 22) - CombatLogQuickButtonFrame_CustomAdditionalFilterButton:Point("TOPRIGHT", CombatLogQuickButtonFrame_Custom, "TOPRIGHT", 0, -1) -end +end) --Previously layout.lua local LO = E:GetModule('Layout'); -- 1.7.9.5