Files
wow-Heimdall/Weakauras/Display/event.lua

55 lines
1.3 KiB
Lua

-- TICKER_500
---@type allstates allstates
function(allstates)
local now = GetTime()
for k, state in pairs(allstates) do
local player = HeimdallStinkies[k]
if not player then
allstates[k] = {
show = false,
changed = true,
}
end
end
---@type table<string, Player>
local sortedStinkies = {}
for k, v in pairs(HeimdallStinkies) do
sortedStinkies[#sortedStinkies + 1] = v
end
table.sort(sortedStinkies, function(a, b)
---@cast a Player
---@cast b Player
if not a then return false end
if not b then return true end
if a.guild:lower() ~= b.guild:lower() then
return a.guild:lower() < b.guild:lower()
end
if a.zone:lower() ~= b.zone:lower() then
return a.zone:lower() < b.zone:lower()
end
return a.name:lower() < b.name:lower()
end)
for _, v in pairs(sortedStinkies) do
local ago = now - v.lastSeenInternal
if allstates[v.name] then
allstates[v.name].ago = string.format("%6.1fs", ago)
allstates[v.name].name = v:ToString()
allstates[v.name].changed = true
else
allstates[v.name] = {
show = true,
changed = true,
name = v:ToString(),
progressType = "timed",
duration = 60,
expirationTime = GetTime() + 60,
autohide = true,
index = ago,
ago = string.format("%6.1fs", ago),
}
end
end
return true
end