--[[ Copyright (c) 2009, Adrian L Lange All rights reserved. You're allowed to use this addon, free of monetary charge, but you are not allowed to modify, alter, or redistribute this addon without express, written permission of the author. --]] local next = next local find, lower = string.find, string.lower local addon = CreateFrame('Frame', 'pError') local orig = UIErrorsFrame:GetScript('OnEvent') local function slashCommand(str) if(str == 'reset') then addon.db = {} print('|cffff8080pError:|r Database is now reset to default') elseif(str == 'list') then if(addon.db[1]) then print('|cffff8080pError:|r Listing database:') for k, v in next, addon.db do print(' |cff95ff95', v, '|r') end else print('|cffff8080pError:|r Database is empty') end elseif(#str > 0) then for k, v in next, addon.db do if(find(str, v)) then tremove(addon.db, k) return print('|cffff8080pError:|r Removed|cff95ff95', v, '|rfrom database') end end tinsert(addon.db, str) print('|cffff8080pError:|r Added|cff95ff95', str, '|rto database') end end local function errorEvent(self, event, str, ...) if(event == 'UI_ERROR_MESSAGE' and addon.db[1]) then for k, v in next, addon.db do if(find(lower(str), v)) then return end end end return orig(self, event, str, ...) end addon:RegisterEvent('ADDON_LOADED') addon:SetScript('OnEvent', function(self, event, name) if(name ~= self:GetName()) then return end self:UnregisterEvent(event) self.db = pErrorDB or {} SLASH_pError1 = '/perror' SlashCmdList[name] = function(str) slashCommand(lower(str)) end UIErrorsFrame:SetScript('OnEvent', errorEvent) end)