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

67 lines
2.0 KiB
Lua

---@param input string
---@param deliminer string
---@return table<string>
aura_env.Split = function(input, deliminer)
local ret = {}
for str in string.gmatch(input, "([^" .. deliminer .. "]+)") do
table.insert(ret, str)
end
return ret
end
---@class BattlepassInfo
---@field week number
---@field getRew number
---@field dayRewardComplete number
---@field lostDay number
---@field cost number
---@field currentDayOnlineTimeMinutes number
---@field currentDayOnlineTimeMilliseconds number
BattlepassInfo = {
PingApi = function()
SendAddonMessage('UIMSG_TO_SERVER', "UIMSG_GET_ONLINETIME_DAY" .. "\t", 'WHISPER', UnitName('player'))
end,
ParseApi = function(msg)
local packets = aura_env.Split(msg, ":")
if packets[1] ~= "UISMSG_EVT_WEEK_TIME" then return end
BattlepassInfo.currentDayOnlineTimeMilliseconds = tonumber(packets[2])
BattlepassInfo.week = tonumber(packets[3]) + 1
BattlepassInfo.getRew = tonumber(packets[4])
BattlepassInfo.dayRewardComplete = tonumber(packets[5])
BattlepassInfo.lostDay = tonumber(packets[6])
BattlepassInfo.cost = tonumber(packets[7])
BattlepassInfo.currentDayOnlineTimeMinutes = math.ceil(BattlepassInfo.currentDayOnlineTimeMilliseconds / 60000)
if BattlepassInfo.currentDayOnlineTimeMinutes >= 120 then
print(BattlepassInfo)
end
end,
}
setmetatable(BattlepassInfo, {
__call = BattlepassInfo.PingApi,
__index = BattlepassInfo,
__tostring = function()
local ret = {}
for k, v in pairs(BattlepassInfo) do
table.insert(ret, k .. ": " .. tostring(v))
end
return table.concat(ret, "\n")
end
})
for k, v in pairs(BattlepassInfo) do
if type(v) == "number" then
BattlepassInfo[k] = 0
end
end
BattlepassInfo()
-- TODO: Make DINGDINGDING when cooked
-- TODO: Make hide when reward complete
-- dayRewardComplete = 1 for cooked (or complete?)
-- delta < 0 for day complete
-- in this case BattlepassInfo.currentDayOnlineTimeMinutes >= 120
-- TODO: To auto claim reward do:
-- UENR:SendPacket('UIMSG_WEEKLY_REW_GET')