From 776baa2796a41f31d1228b23e878fa1d8b1d37f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Wed, 3 Apr 2024 15:33:35 +0200 Subject: [PATCH] Add account wide battle pass timer --- .../BattlePassAccountWideTimer/event.lua | 20 ++++++++++ FreshShit/BattlePassAccountWideTimer/export | 1 + FreshShit/BattlePassAccountWideTimer/init.lua | 39 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 FreshShit/BattlePassAccountWideTimer/event.lua create mode 100644 FreshShit/BattlePassAccountWideTimer/export create mode 100644 FreshShit/BattlePassAccountWideTimer/init.lua diff --git a/FreshShit/BattlePassAccountWideTimer/event.lua b/FreshShit/BattlePassAccountWideTimer/event.lua new file mode 100644 index 0000000..46a7cf9 --- /dev/null +++ b/FreshShit/BattlePassAccountWideTimer/event.lua @@ -0,0 +1,20 @@ +--TICKER_1000 +---@param allstates allstates +---@param e string +function(allstates, e) + local chars = aura_env.CalculateAllOnlineTime() + for char, time in pairs(chars) do + local timeInMinutes = time / 60 + + ---@type state + local state = { + changed = true, + show = true, + name = char, + time = string.format("%.1f", timeInMinutes), + index = char, + } + allstates[char] = state + end + return true +end \ No newline at end of file diff --git a/FreshShit/BattlePassAccountWideTimer/export b/FreshShit/BattlePassAccountWideTimer/export new file mode 100644 index 0000000..1302ca0 --- /dev/null +++ b/FreshShit/BattlePassAccountWideTimer/export @@ -0,0 +1 @@ +!nJ1dVjUYr8VlPkQjQhu(ZfsUQEvLqi6ipoteRZLx7t12l2RH9fZUu71jH0(8N9oZU2GbmC5QOsv5eN9SZo)93mE3XPPJTdjXH0QEZo1B7qM7qcW)buNglFXHCZOhTCitKXbS4RP(pfelx4qUoI)2B04GmpBPmsXbs0u1mz8OfkUuKa7x5qwokmmHPCUTtJpDvNwn70UvJR60OzhNWAF8sylcFyl3l5cG5E9TS7pUqv9KrYyqkwnDSA4y1s)BB9VFejcBampYcQpdFLq9l0ljrrJvgdiKl4jZmpdpAOcpRI5tNYItmkWEfb8Xa2K0Wq7LlyoKV0F493(WqyD9R00yAlqblyrrdcYDYK0jSNzcfb2f)vhIBVUeBxID3XGWsrLswerxccNiOZz57sVfqbmAKA2AHCFmtleY99hoe5lvS20ugJ3xgLoxS21JPb80eig1ObiiwuyEa1E09d7Flye0i(uHdX8sSurXqfgkr1oMnDDclss1P(0eMRFenjXzI2D9rIZtHeDre0S62ut4VX2MiqEsoUPCsTPoP2uNuBQtQnQFbYmvWNtvmNRbX5tJm(ObuGwJ5P(btH8b5FMsJzzE3MgfL594moSnsS2Hm5VGLqiN7di50ffBLG2OfMgLamHiKcwHsXWsjaejaY3irxt6pH5lfqAphnO3jiH5uU49Z9ki57JFnWvXIf0OVbawDIRvhTnQrfywmIphqzwxGqdbSGqDluoarAY4U3m4bcKp5qr9d)8F)LbJE8k7prlIf51Nq0h3AiFQbgOK(pxOSlB0gXvOaUMQurS7HeFxFFzkIXcJbinu9qvuDEAAmp4rEaaPrZXuFFlYJjFq6nUFFODcn2FitmfzRDNgfwZaH2yYfJzhJVXH8AHzw7IlAxVD72F8tqdL2xEbIn1vbT02FaVuVhacpuhxMOFURPvdl(bHMgcHxv9ltvrCegm6b7HdS6d(LekOnaLg6kUdGB1nJc4jyvUn7v4LtXc9mVAzENQ4ZzRBeIzRY4tLM9s1SxpY2E0xruYRSIaPUUE7UR5TTmqL05tW2lGBEdlXhRCMtF1XQtdDhbfBHoO(sU4Gvbalsbnths)xxWnirOBU2CFITe6qTISXhcyHuOSg2igscqfrgaBPa3QqrVxBAsUnDrfwuZDSOLq0tgM519TKz0yAjL3k36awCLHUfmOW8XXr53qJFAgd6aarJzC)NG0MrLRwWDf9sMLUk64ybxhb9lZ8glLWVFrgfuH)R5XfzXvZHU()4O(VqJIsmX)VrrGVrJAYympN4M(ENJKYTyW3dPXaQ73d2WqkpUcNFntjUAwG1U8izaFdvLX7vZay4JWPCyqjNrZ6vXGaSM7QL2muC1rYs(k9fJDa9NIsQimamGMIzzG(Nosk2g97UX(VqxMRjGIBbHnD2MnoskTNmnopUtGV)wL)Qzr7XAgqT38iP9XmvAm0mtjZ8(jOHYBZOI)eG)KVWkW)gwCvs3cgCZxERiYXQlypkaYcIPrMOsFZPaY8S4tNPQk8uWpgIY521WmAwT)FBO6HflouOkF5TcvhRoMegTCnRDmpD(Z4xVyveNqMlkHlZP5CTPjk5C8Z4pSiqV)8tQdFawIhr038vzsx49FGRDqcKUgzJFEo)jchS4hz0N6chfmHqFMfuV3YNOzEF(ZzEcEK2Fe7JNmV)1VL5Xebz3ThbvFOCkxmqekFpICdUlj8S7SLb0LAIym5Sto9Vv7051on4KZFhQ(xWJCzb5PZoXCrOto)F8Jzo7rc)i(FvI4x0U1rWwwlOnIAz3vRwT)6cOeyEMNp8bl4WsWT5etnleNxizq(z3H3U0LjEUEpAKFAeeOhjWJLINjtl6WuHgUDgkliYN5z(dfgweTwufRej9Xogrs4UcbRKtJ1mekbJ6PpK5X1zDoyo8fWxuto7Wbb0ckC7ZbuHCTil(dtjOuXDbhW2O9S)9gH6D20AdFdlU8R)HmVZ2rU1wRlUajD(UYMfLW(VwJ4zGp783PI0P)QEPiLxs63LdwkJiu0jrS)SbR8HIS6FjZ731dc7RUBbUDPgHysC5heVkGu3OO9HLoFh0cMBtkWYBIuWLadY1OW3bqzpydTkmGiTIoe0FB0ELbuJnJXYV)aEmFVPOfS5)lUdUcuDAEJ)khe07AUnFNX(aNTXEqVFQ)y3MMBODOji5pJ5)0k9wy11QvscB0NbpLo6fjLFSmdS1DHwbcwXjKCzhcr8DGwLrtLbmknSBnMrlW9GnY1jULbIVYfPAF5Zfc5pM51PrfLX7qzDxrTRTxfzwvd33F3bWGfqfRXoItzFy)SMmt(Y7HptD8NlIr7LpvrjRjRvhIRW5qGVbxVz4jFyRa15hqqCra71dPXFBxsRagLkw3kCwz9i67MYXTMwAE52mEao(dW0dQAkN6Zv9mZ2q8RsGzRAWvnuLgguJ9mzSFf0apCzX8o))6j7v1q1ATN5IV9O227W1Qy6D44S0d6jMLKOVf3lY4GhJPlCipU6PTNg8QrcU)d0RJ4BnPiZaIQ8MYwTAU11wTADrf3N3Qv7DgXJvRpU7yp0e33b61szRXwOTG9Evo9ooW9OSAD1oxd1Q1LBCbzTm2DwryKsT7yklM4ouzRhsDPHNtsKrs42cQ8Xz66lNpHQooJK3mr4Vf(AZbHD)5WF1q9z8ozTWbA68F( diff --git a/FreshShit/BattlePassAccountWideTimer/init.lua b/FreshShit/BattlePassAccountWideTimer/init.lua new file mode 100644 index 0000000..3bd853b --- /dev/null +++ b/FreshShit/BattlePassAccountWideTimer/init.lua @@ -0,0 +1,39 @@ +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 #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 + +