Interface action failed because of an AddOn
Ramurotand opened this issue ยท 1 comments
Version 80100.39
Retail Game Version 8.2
Quest Frame no longer opens in combat. I believe this is related to the fact that addOns can no longer HideUIPanel or ShowUIPanel in combat (or taint the execution path before Blizzard calls that function).
To reproduce this issue disable all addOns except QuickQuest, get into combat, then click on an npc quest giver to get the message "Interface action failed because of an AddOn" in the chat frame.
I may be mistaken, but I think line 264 of QuickQuest.lua is overwriting a Blizzard function and tainting the execution path so it can no longer ShowUIPanel() later on.
Here is the taintLog:
7/4 03:56:19.612 Global variable INTERFACE_ACTION_BLOCKED_SHOWN tainted by QuickQuest - Interface\FrameXML\UIParent.lua:5296 DisplayInterfaceActionBlockedMessage()
7/4 03:56:19.612 Interface\FrameXML\UIParent.lua:3188 CheckProtectedFunctionsAllowed()
7/4 03:56:19.612 Interface\FrameXML\UIParent.lua:3200 ShowUIPanel()
7/4 03:56:19.612 Interface\FrameXML\QuestFrame.lua:97 QuestFrame_OnEvent()
7/4 03:56:19.612 Interface\AddOns\QuickQuest\QuickQuest.lua:264 method()
7/4 03:56:19.612 Interface\AddOns\QuickQuest\QuickQuest.lua:9 ?()
7/4 03:56:19.612 Interface\AddOns\QuickQuest\QuickQuest.lua:2
Original code:
QuickQuest:Register('QUEST_DETAIL', function(...)
if(not QuestGetAutoAccept() and not QuestIsFromAreaTrigger() and not QuickQuestBlacklistDB[GetQuestID()]) then
QuestFrame_OnEvent(QuestFrame, 'QUEST_DETAIL', ...)
end
end, true)
My small hack to get at least get some functionality without the error:
QuickQuest:Register('QUEST_DETAIL', function(...)
--[[if(not QuestGetAutoAccept() and not QuestIsFromAreaTrigger() and not QuickQuestBlacklistDB[GetQuestID()]) then
QuestFrame_OnEvent(QuestFrame, 'QUEST_DETAIL', ...)
end]]
if (QuestGetAutoAccept() or QuestIsFromAreaTrigger() or QuickQuestBlacklistDB[GetQuestID()]) then
return
end
end, true)