--]] |
|
local next = next |
local find = string.find |
local lower = string.lower |
local find, lower = string.find, string.lower |
|
local pError = CreateFrame('Frame') |
local orig = UIErrorsFrame:GetScript('OnEvent') |
|
local function msg(...) |
print(format('|cffff8080pError:|r %s', ...)) |
end |
|
local function slashCommand(str) |
str = lower(str) |
|
if(str == 'reset') then |
pErrorDB = {all = false, blacklist = {}} |
msg('Savedvariables are now reset to default') |
elseif(str == 'all') then |
pErrorDB.all = not pErrorDB.all |
msg(format('Filtering all events turned %s', pErrorDB.all and 'on' or 'off')) |
pErrorDB = {} |
print('|cffff8080pError:|r Database is now reset to default') |
elseif(str == 'list') then |
if(pErrorDB.all) then |
msg('Filtering all events!') |
elseif(not pErrorDB.blacklist[1]) then |
msg('Database is empty') |
else |
msg('Listing database of events:') |
|
for k, v in next, pErrorDB.blacklist do |
msg(format('|cff95ff95 \'%s\'|r', v)) |
if(pErrorDB[1]) then |
print('|cffff8080pError:|r Listing database:') |
for _, v in next, pErrorDB do |
print(' |cff95ff95', v, '|r') |
end |
else |
print('|cffff8080pError:|r Database is empty') |
end |
elseif(#str > 0) then |
if(pErrorDB.all) then |
msg('Can\'t add to database, pError is filtering all events') |
else |
for k, v in next, pErrorDB.blacklist do |
if(find(str, v)) then |
tremove(pErrorDB.blacklist, k) |
return msg(format('Removed |cff95ff95\'%s\'|r from the database', v)) |
end |
for k, v in next, pErrorDB do |
if(find(str, v)) then |
tremove(pErrorDB, k) |
return print('|cffff8080pError:|r Removed|cff95ff95', v, '|rfrom database') |
end |
|
tinsert(pErrorDB.blacklist, str) |
msg(format('Added |cff95ff95\'%s\'|r to the database', str)) |
end |
else |
msg('Please provide an error string') |
|
tinsert(pErrorDB, str) |
print('|cffff8080pError:|r Added|cff95ff95', str, '|rto database') |
end |
end |
|
local function onEvent(self, event, str, ...) |
if(event == 'UI_ERROR_MESSAGE') then |
if(pErrorDB.all) then |
return |
elseif(pErrorDB.blacklist[1]) then |
for k, v in next, pErrorDB.blacklist do |
if(find(lower(str), v)) then return end |
if(event == 'UI_ERROR_MESSAGE' and pErrorDB[1]) then |
for k, v in next, pErrorDB do |
if(find(lower(str), v)) then |
return |
end |
end |
end |