MessageEvent = AceLibrary("AceAddon-2.0"):new("AceHook-2.0", "AceConsole-2.0")function MessageEvent:OnInitialize() self:RegisterChatCommand({"/mess", "/messevent"}, { type = "group", args = { show = { name = 'show', type = 'text', desc = 'Enable event messages for a single chatFrame, or all chatFrames.', validate = { 'all', '1', '2', '3', '4', '5', '6', '7' }, get = false, set = function(frame) self:EventsToggle(true, frame) self:Print("Events now shown for ["..frame.."].") end, }, hide = { name = 'hide', type = 'text', desc = 'Disable event messages for a single chatFrame, or all chatFrames.', validate = { 'all', '1', '2', '3', '4', '5', '6', '7' }, get = false, set = function(frame) self:EventsToggle(false, frame) self:Print("Events now hidden for ["..frame.."].") end, }, report = { name = 'report', type = 'execute', desc = 'Reports the hook status of all the chatFrames.', func = function() for i=1,7 do local frame = getglobal("ChatFrame"..i) self:Print("ChatFrame"..i.." is hooked: ["..tostring(self:IsHooked(frame, "AddMessage")).."].") end end, }, }, })endfunction MessageEvent:OnDisable() self:UnhookAll()endfunction MessageEvent:EventsToggle(aShow, aFrame) if string.lower(aFrame) == "all" then for i=1,7 do local frame = getglobal("ChatFrame"..i) if not aShow and self:IsHooked(frame, "AddMessage") then self:Unhook(frame, "AddMessage") elseif not self:IsHooked(frame, "AddMessage") then self:Hook(frame, "AddMessage") end end return end local num = tonumber(aFrame) local frame = getglobal("ChatFrame"..num) if not aShow and self:IsHooked(frame, "AddMessage") then self:Unhook(frame, "AddMessage") elseif not self:IsHooked(frame, "AddMessage") then self:Hook(frame, "AddMessage") endendfunction MessageEvent:AddMessage(frame, text, r, g, b, id) self.hooks[frame]["AddMessage"].orig(frame, text.." ["..tostring(event).."]", r, g, b, id)end