Files
wow-weakauras/FreshShit/WhoSniffer/event.lua

62 lines
1.8 KiB
Lua

-- WHO_LIST_UPDATE
function()
for i = 1, GetNumWhoResults() do
local name, guild, level, race, class, zone = GetWhoInfo(i)
if not aura_env.ignored[name] then
---@type WHOQuery
local query = aura_env.lastQuery
if not query then
print("No query wtf?")
return
end
---@type WHOFilter[]
local filters = query.filters
for _, filter in pairs(filters) do
if not filter(name, guild, level, race, class, zone) then
--print("Filter failed", filter, name, guild, level, race, class,
-- zone)
return
end
end
local timestamp = date("%Y-%m-%dT%H:%M:%S")
local player = aura_env.stinkies[name]
if not player then
player = Player.new(name, guild, race, class, zone)
local existing = WeakAurasSaved.Cyka.WhoSniffer[name]
if not existing then WeakAurasSaved.Cyka.WhoSniffer[name] = {}
else
player.lastSeen = existing.lastSeen or "never"
player.firstSeen = existing.firstSeen or "never"
player.seenCount = existing.seenCount or 0
if player.lastSeen == "never" then
player.firstSeen = timestamp
end
end
local stinky = WeakAurasSaved.Cyka.stinkies[name]
if stinky then
PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master")
else
PlaySoundFile("Interface\\Sounds\\Cloak.ogg", "Master")
end
aura_env.Notify(player)
player.lastSeen = timestamp
player.seenCount = player.seenCount + 1
WeakAurasSaved.Cyka.WhoSniffer[name] = player
end
player.lastSeenInternal = GetTime()
player.zone = zone
player.lastSeen = timestamp
aura_env.stinkies[name] = player
end
end
-- Turns out WA cannot do this (
-- aura_env.UpdateMacro()
_G["FriendsFrameCloseButton"]:Click()
end
-- /run WeakAurasSaved.Cyka.WhoSniffer = {}