local addonname, data = ... ---@cast data CykaData ---@cast addonname string local function init() ---@class CykaData if not CykaPersistentData then CykaPersistentData = {} end if not CykaPersistentData.config then CykaPersistentData.config = {} end ---@class CykaData ---@field config CykaConfig ---@field GetOrDefault fun(table: table, keys: string[], default: any): any --- Config --- ---@class CykaConfig data.GetOrDefault = function(table, keys, default) local value = default if not table then return value end if not keys then return value end local traverse = table for i = 1, #keys do local key = keys[i] if traverse[key] ~= nil then traverse = traverse[key] else break end if i == #keys then value = traverse end end return value end data.config = {} print("Cyka loaded!") end local loadedFrame = CreateFrame("Frame") loadedFrame:RegisterEvent("ADDON_LOADED") loadedFrame:SetScript("OnEvent", function(self, event, addonName) if addonName == addonname then init() end end)