Files
wow-weakauras/FreshShit/BattlePassAccountWideTimer/init.lua

40 lines
1.2 KiB
Lua

if WeakAurasSaved.Cyka == nil then WeakAurasSaved.Cyka = {} end
if WeakAurasSaved.Cyka.LoginInfo == nil then WeakAurasSaved.Cyka.LoginInfo = {} end
Today = date("%Y-%m-%d")
if WeakAurasSaved.Cyka.LoginInfo[UnitName("player")] == nil then WeakAurasSaved.Cyka.LoginInfo[UnitName("player")] = {} end
if WeakAurasSaved.Cyka.LoginInfo[UnitName("player")][Today] == nil then WeakAurasSaved.Cyka.LoginInfo[UnitName("player")][Today] = {} end
---@param char string
---@return number
aura_env.CalculateOnlineTime = function(char)
---@type number
local loggedTime = 0
if WeakAurasSaved.Cyka.LoginInfo[char] == nil then
return loggedTime
end
if WeakAurasSaved.Cyka.LoginInfo[char][Today] == nil then
return loggedTime
end
for k, info in pairs(WeakAurasSaved.Cyka.LoginInfo[char][Today]) do
if info.LogoutTime ~= nil then
loggedTime = loggedTime + (info.LogoutTime - info.LoginTime)
else
loggedTime = loggedTime + (time() - info.LoginTime)
end
end
return loggedTime
end
---@return table<string, number> #Charname - Timeonline in seconds
aura_env.CalculateAllOnlineTime = function()
local chars = {}
for char, _ in pairs(WeakAurasSaved.Cyka.LoginInfo) do
chars[char] = aura_env.CalculateOnlineTime(char)
end
return chars
end