local function OnEvent(self, event, ...) |
if(event == 'UI_ERROR_MESSAGE') then |
local str = ... |
if(pErrorDB2.all) then |
return |
else |
for k,v in ipairs(pErrorDB2.blacklist) do |
if(string.find(string.lower(str), string.lower(v))) then return end |
end |
end |
end |
local find = string.find |
local lower = string.lower |
local format = string.format |
|
return UIErrorsFrame_OnEvent(self, event, ...) |
end |
local next = next |
local remove = table.remove |
local insert = table.insert |
|
local function OnLoad(self, event, addon) |
if(addon ~= 'pError') then return end |
local orig = UIErrorsFrame:GetScript('OnEvent') |
|
pErrorDB2 = pErrorDB2 or {all = false, blacklist = {}} |
|
UIErrorsFrame:SetScript('OnEvent', OnEvent) |
self:UnregisterEvent(event) |
local function msg(...) |
print(format('|cffff8080pError:|r %s', ...)) |
end |
|
local function pprint(...) |
print(string.format('|cffff8080pError:|r %s', ...)) |
local function loadDefaults() |
local revert = pErrorDB2 or {} -- remove at 3.1 |
pErrorDB = setmetatable(pErrorDB or revert, {__index = {all = false, blacklist = {}}}) |
end |
|
local addon = CreateFrame('Frame') |
addon:RegisterEvent('ADDON_LOADED') |
addon:SetScript('OnEvent', OnLoad) |
local function slashCommand(str) |
str = lower(str) |
|
SLASH_PERROR1 = '/perror' |
SlashCmdList.PERROR = function(str) |
if(str == 'reset') then |
pErrorDB2 = {all = false, blacklist = {}} |
pprint('Savedvariables is now reset') |
wipe(pErrorDB) |
loadDefaults() |
msg('Savedvariables are now reset to default') |
elseif(str == 'all') then |
pErrorDB2.all = not pErrorDB2.all |
pprint(string.format('Filtering of all events turned %s', pErrorDB2.all and 'on' or 'off')) |
pErrorDB.all = not pErrorDB.all |
msg(format('Filtering all events turned %s', pErrorDB.all and 'on' or 'off')) |
elseif(str == 'list') then |
if(pErrorDB2.all) then |
pprint('Filtering all events!') |
elseif(not pErrorDB2.blacklist[1]) then |
pprint('Database is empty') |
if(pErrorDB.all) then |
msg('Filtering all events!') |
elseif(not pErrorDB.blacklist[1]) then |
msg('Database is empty') |
else |
pprint('Listing database of events:') |
for k,v in pairs(pErrorDB2.blacklist) do |
pprint(format(' \'%s\'', v)) |
msg('Listing database of events:') |
|
for k, v in next, pErrorDB.blacklist do |
msg(format('|cff95ff95 \'%s\'|r', v)) |
end |
end |
elseif(#str > 0) then |
if(pErrorDB2.all) then |
pprint('Can\'t add to database, pError is filtering all events') |
if(pErrorDB.all) then |
msg('Can\'t add to database, pError is filtering all events') |
else |
local num = 0 |
for k,v in ipairs(pErrorDB2.blacklist) do |
num = num + 1 |
if(string.find(string.lower(str), string.lower(v))) then |
table.remove(pErrorDB2.blacklist, num) |
pprint(format('\'%s\' removed', v)) |
return |
for k, v in next, pErrorDB.blacklist do |
if(find(str, v)) then |
remove(pErrorDB.blacklist, k) |
return msg(format('Removed |cff95ff95\'%s\'|r from the database', v)) |
end |
end |
|
table.insert(pErrorDB2.blacklist, str) |
pprint(format('Added \'%s\' to the database', str)) |
insert(pErrorDB.blacklist, str) |
msg(format('Added |cff95ff95\'%s\'|r to the database', str)) |
end |
else |
pprint('Please provide an error string') |
msg('Please provide an error string') |
end |
end |