diff --git a/Autoloot.lua b/Autoloot.lua index fc439f2..c93fd9f 100644 --- a/Autoloot.lua +++ b/Autoloot.lua @@ -1,53 +1,16 @@ -local addonname, data = ... ----@cast data HeimdallData +local addonname, shared = ... +---@cast shared CykaShared ---@cast addonname string -data.Inviter = {} -function data.Inviter.Init() - if not data.config.inviter.enabled then - print("Heimdall - Inviter disabled") +---@class Autoloot +---@field Init fun() + +shared.Autoloot = {} +function shared.Autoloot.Init() + if not shared.config.autoloot.enabled then + print("Cyka - Autoloot disabled") return end - local inviterGroupFrame = CreateFrame("Frame") - inviterGroupFrame:RegisterEvent("GROUP_ROSTER_UPDATE") - inviterGroupFrame:SetScript("OnEvent", function(self, event, ...) - if not UnitIsGroupLeader("player") then return end - - if not IsInRaid() then - ConvertToRaid() - end - - if not IsEveryoneAssistant() then - SetEveryoneIsAssistant(true) - end - end) - - local inviterChannelFrame = CreateFrame("Frame") - inviterChannelFrame:RegisterEvent("CHAT_MSG_CHANNEL") - inviterChannelFrame:SetScript("OnEvent", function(self, event, msg, sender, ...) - local channelId = select(6, ...) - local channelname = "" - ---@type any[] - local channels = { GetChannelList() } - for i = 1, #channels, 2 do - ---@type number - local id = channels[i] - ---@type string - local name = channels[i + 1] - if id == channelId then - channelname = name - end - end - - if channelname ~= data.config.inviter.listeningChannel then - return - end - - if msg == data.config.inviter.keyword then - InviteUnit(sender) - end - end) - - print("Heimdall - Inviter loaded") + print("Cyka - Autoloot loaded") end diff --git a/Cyka.lua b/Cyka.lua index 5ed0e4e..5af6503 100644 --- a/Cyka.lua +++ b/Cyka.lua @@ -1,20 +1,30 @@ -local addonname, data = ... ----@cast data CykaData +local addonname, shared = ... +---@cast shared CykaShared ---@cast addonname string +---@class CykaPersistentData +---@field config CykaConfig +---@field data CykaData + +---@class CykaShared +---@field config CykaConfig +---@field data CykaData +---@field GetOrDefault fun(table: table, keys: string[], default: any): any +---@field Autoloot Autoloot + +---@class CykaData + +---@class CykaConfig +---@field autoloot CykaAutolootConfig + +---@class CykaAutolootConfig +---@field enabled boolean + 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) + shared.GetOrDefault = function(table, keys, default) local value = default if not table then return value end if not keys then return value end @@ -35,7 +45,11 @@ local function init() return value end - data.config = {} + shared.config = { + autoloot = { + enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "enabled" }, true), + } + } print("Cyka loaded!") end