Rework data structure
This commit is contained in:
57
Autoloot.lua
57
Autoloot.lua
@@ -1,53 +1,16 @@
|
|||||||
local addonname, data = ...
|
local addonname, shared = ...
|
||||||
---@cast data HeimdallData
|
---@cast shared CykaShared
|
||||||
---@cast addonname string
|
---@cast addonname string
|
||||||
|
|
||||||
data.Inviter = {}
|
---@class Autoloot
|
||||||
function data.Inviter.Init()
|
---@field Init fun()
|
||||||
if not data.config.inviter.enabled then
|
|
||||||
print("Heimdall - Inviter disabled")
|
shared.Autoloot = {}
|
||||||
|
function shared.Autoloot.Init()
|
||||||
|
if not shared.config.autoloot.enabled then
|
||||||
|
print("Cyka - Autoloot disabled")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local inviterGroupFrame = CreateFrame("Frame")
|
print("Cyka - Autoloot loaded")
|
||||||
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")
|
|
||||||
end
|
end
|
||||||
|
|||||||
38
Cyka.lua
38
Cyka.lua
@@ -1,20 +1,30 @@
|
|||||||
local addonname, data = ...
|
local addonname, shared = ...
|
||||||
---@cast data CykaData
|
---@cast shared CykaShared
|
||||||
---@cast addonname string
|
---@cast addonname string
|
||||||
|
|
||||||
|
---@class CykaPersistentData
|
||||||
|
---@field config CykaConfig
|
||||||
|
---@field data CykaData
|
||||||
|
|
||||||
|
---@class CykaShared
|
||||||
|
---@field config CykaConfig
|
||||||
|
---@field data CykaData
|
||||||
|
---@field GetOrDefault fun(table: table<any, any>, keys: string[], default: any): any
|
||||||
|
---@field Autoloot Autoloot
|
||||||
|
|
||||||
|
---@class CykaData
|
||||||
|
|
||||||
|
---@class CykaConfig
|
||||||
|
---@field autoloot CykaAutolootConfig
|
||||||
|
|
||||||
|
---@class CykaAutolootConfig
|
||||||
|
---@field enabled boolean
|
||||||
|
|
||||||
local function init()
|
local function init()
|
||||||
---@class CykaData
|
|
||||||
if not CykaPersistentData then CykaPersistentData = {} end
|
if not CykaPersistentData then CykaPersistentData = {} end
|
||||||
if not CykaPersistentData.config then CykaPersistentData.config = {} end
|
if not CykaPersistentData.config then CykaPersistentData.config = {} end
|
||||||
|
|
||||||
---@class CykaData
|
shared.GetOrDefault = function(table, keys, default)
|
||||||
---@field config CykaConfig
|
|
||||||
---@field GetOrDefault fun(table: table<any, any>, keys: string[], default: any): any
|
|
||||||
|
|
||||||
--- Config ---
|
|
||||||
---@class CykaConfig
|
|
||||||
|
|
||||||
data.GetOrDefault = function(table, keys, default)
|
|
||||||
local value = default
|
local value = default
|
||||||
if not table then return value end
|
if not table then return value end
|
||||||
if not keys then return value end
|
if not keys then return value end
|
||||||
@@ -35,7 +45,11 @@ local function init()
|
|||||||
return value
|
return value
|
||||||
end
|
end
|
||||||
|
|
||||||
data.config = {}
|
shared.config = {
|
||||||
|
autoloot = {
|
||||||
|
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "enabled" }, true),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print("Cyka loaded!")
|
print("Cyka loaded!")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user