58 lines
1.8 KiB
Lua
58 lines
1.8 KiB
Lua
--CHAT_MSG_LOOT REMOVE_ITEM ADD_ITEM
|
|
function(allstates, e, msg, howmuch)
|
|
if e == "CHAT_MSG_LOOT" then
|
|
if msg then
|
|
local who = msg:match("%w+")
|
|
if who == "You" then
|
|
local howmuch = msg:match("(x%d+).$")
|
|
local what
|
|
for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do
|
|
what = itemLink
|
|
end
|
|
--WeakAuras.ScanEvents("ADD_ITEM", what, howmuch)
|
|
C_Timer.After(0.05, function() WeakAuras.ScanEvents("ADD_ITEM", what, howmuch) end)
|
|
end
|
|
end
|
|
elseif e == "ADD_ITEM" then
|
|
local what = msg
|
|
if what then
|
|
local rarity = select(3, GetItemInfo(what))
|
|
local icon = 0
|
|
local name = GetItemInfo(what)
|
|
if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end
|
|
if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end
|
|
local color = "ffffffff"
|
|
if rarity then
|
|
color = select(4, GetItemQualityColor(rarity))
|
|
end
|
|
color = "|c" .. color
|
|
local indexid = #allstates + 1
|
|
local ID
|
|
if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end
|
|
allstates[indexid] =
|
|
{
|
|
show = true,
|
|
changed = true,
|
|
expirationTime = GetTime() + 1,
|
|
index = GetTime(),
|
|
autoHide = true,
|
|
resort = true,
|
|
icon = icon,
|
|
name = what,
|
|
color = color,
|
|
amount = howmuch,
|
|
}
|
|
if ID then
|
|
allstates[indexid].itemId = ID
|
|
end
|
|
C_Timer.After(1, function() WeakAuras.ScanEvents("REMOVE_ITEM", indexid) end)
|
|
return true
|
|
end
|
|
elseif e == "REMOVE_ITEM" then
|
|
if allstates[msg] then
|
|
allstates[msg].show = false
|
|
allstates[msg].changed = true
|
|
return true
|
|
end
|
|
end
|
|
end |