From 93a881808c4c9264085cb21fc3b20d5b4b7c72b9 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Tue, 13 Sep 2016 23:03:30 +0300 Subject: [PATCH] Fix "script ran too long" by unhooking shit while in combat. Lesser of 2 evils. --- ElvUI_SLE/modules/chat/chat.lua | 7 ++++++ ElvUI_SLE/modules/chat/links.lua | 44 ++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/ElvUI_SLE/modules/chat/chat.lua b/ElvUI_SLE/modules/chat/chat.lua index 4ebe4e2..36991c0 100644 --- a/ElvUI_SLE/modules/chat/chat.lua +++ b/ElvUI_SLE/modules/chat/chat.lua @@ -130,6 +130,12 @@ function C:GMIconUpdate() end function C:Combat(event) + --To get rid of "script ran too long" in links + if event == "PLAYER_REGEN_DISABLED" then + C:Unhook("SetItemRef") + elseif event == "PLAYER_REGEN_ENABLED" then + C:RawHook("SetItemRef", true) + end if C.db.combathide == "NONE" or not C.db.combathide then return end if event == "PLAYER_REGEN_DISABLED" then if C.db.combathide == "BOTH" or C.db.combathide == "RIGHT" then @@ -140,6 +146,7 @@ function C:Combat(event) LeftChatPanel:Hide() LeftChatToggleButton:Hide() end + elseif event == "PLAYER_REGEN_ENABLED" then if not RightChatPanel:IsShown() then RightChatPanel:Show() diff --git a/ElvUI_SLE/modules/chat/links.lua b/ElvUI_SLE/modules/chat/links.lua index 7fdd779..6ce418d 100644 --- a/ElvUI_SLE/modules/chat/links.lua +++ b/ElvUI_SLE/modules/chat/links.lua @@ -164,32 +164,30 @@ function C:ParseChatEventInv(event, msg, sender, ...) end function C:SetItemRef(link, text, button, chatframe) - if not T.InCombatLockdown() then - local linktype, id = T.split(":", link) - if C.db.dpsSpam then - if linktype == "SLD" then - local meterID = T.tonumber(id) - -- put stuff in the ItemRefTooltip from FrameXML - ShowUIPanel(ItemRefTooltip); - if ( not ItemRefTooltip:IsShown() ) then - ItemRefTooltip:SetOwner(UIParent, "ANCHOR_PRESERVE"); - end - ItemRefTooltip:ClearLines() - ItemRefTooltip:AddLine(C.Meters[meterID].title) - ItemRefTooltip:AddLine(T.format(L["Reported by %s"],C.Meters[meterID].src)) - for _,message in T.ipairs(C.Meters[meterID].data) do ItemRefTooltip:AddLine(message,1,1,1) end - ItemRefTooltip:Show() - return nil + local linktype, id = T.split(":", link) + if C.db.dpsSpam then + if linktype == "SLD" then + local meterID = T.tonumber(id) + -- put stuff in the ItemRefTooltip from FrameXML + ShowUIPanel(ItemRefTooltip); + if ( not ItemRefTooltip:IsShown() ) then + ItemRefTooltip:SetOwner(UIParent, "ANCHOR_PRESERVE"); end - end - if IsAltKeyDown() and linktype == "player" and E.db.sle.chat.invite.altInv then - InviteUnit(id) - return nil - elseif linktype == "invite" then - InviteUnit(id) + ItemRefTooltip:ClearLines() + ItemRefTooltip:AddLine(C.Meters[meterID].title) + ItemRefTooltip:AddLine(T.format(L["Reported by %s"],C.Meters[meterID].src)) + for _,message in T.ipairs(C.Meters[meterID].data) do ItemRefTooltip:AddLine(message,1,1,1) end + ItemRefTooltip:Show() return nil end end + if IsAltKeyDown() and linktype == "player" and E.db.sle.chat.invite.altInv then + InviteUnit(id) + return nil + elseif linktype == "invite" then + InviteUnit(id) + return nil + end return self.hooks.SetItemRef(link, text, button) end @@ -225,7 +223,7 @@ end function C:InitLinks() C:SpamFilter() C:CreateInvKeys() - C:RawHook(nil, "SetItemRef", true) + C:RawHook("SetItemRef", true) -- Borrowed from Deadly Boss Mods do local old = ItemRefTooltip.SetHyperlink -- we have to hook this function since the default ChatFrame code assumes that all links except for player and channel links are valid arguments for this function -- 1.7.9.5