55 lines
1.3 KiB
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
|