The function "HookTest_ChatFrame_OnEvent(event)" is carried out up to 7 times if a message arrives.
Why? How can I prevent that?
Code:
local lOriginalChatFrame_OnEvent;
function HookTest_OnLoad()
this:RegisterEvent("CHAT_MSG_CHANNEL");
lOriginalChatFrame_OnEvent = ChatFrame_OnEvent;
ChatFrame_OnEvent = HookTest_ChatFrame_OnEvent;
end
function HookTest_ChatFrame_OnEvent(event)
if (event == "CHAT_MSG_CHANNEL" and arg9 == "mmetestchan") then
local msg = arg1;
local plr = arg2;
local cha = arg9;
DEFAULT_CHAT_FRAME:AddMessage("["..cha.."]["..plr.."] "..msg, 1, 1, 1);
return;
end
lOriginalChatFrame_OnEvent(event);
end
4 times with this change
Code:
local lOriginalChatFrame_OnEvent;
local hooktest=0;
function HookTest_OnLoad()
this:RegisterEvent("CHAT_MSG_CHANNEL");
lOriginalChatFrame_OnEvent = ChatFrame_OnEvent;
ChatFrame_OnEvent = HookTest_ChatFrame_OnEvent;
end
function HookTest_ChatFrame_OnEvent(event)
if (event == "CHAT_MSG_CHANNEL" and arg9 == "mmetestchan" and hooktest==0) then
local msg = arg1;
local plr = arg2;
local cha = arg9;
hooktest=1;
DEFAULT_CHAT_FRAME:AddMessage("["..cha.."]["..plr.."] "..msg, 1, 1, 1);
return;
end
lOriginalChatFrame_OnEvent(event);
hooktest=0;
end