Code format
This commit is contained in:
392
Cyka.lua
392
Cyka.lua
@@ -16,7 +16,6 @@ local addonname, shared = ...
|
||||
---@field CameraSettings CameraSettings
|
||||
---@field SpellQSettings SpellQSettings
|
||||
|
||||
|
||||
---@class CykaData
|
||||
|
||||
---@class CykaConfig
|
||||
@@ -44,173 +43,262 @@ local addonname, shared = ...
|
||||
---@field everything { enabled: boolean }
|
||||
|
||||
local function init()
|
||||
if not CykaPersistentData then CykaPersistentData = {} end
|
||||
if not CykaPersistentData.config then CykaPersistentData.config = {} end
|
||||
if not CykaPersistentData then
|
||||
CykaPersistentData = {}
|
||||
end
|
||||
if not CykaPersistentData.config then
|
||||
CykaPersistentData.config = {}
|
||||
end
|
||||
|
||||
shared.GetOrDefault = function(table, keys, default)
|
||||
local value = default
|
||||
if not table then return value end
|
||||
if not keys then return value end
|
||||
shared.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
|
||||
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
|
||||
if i == #keys then
|
||||
value = traverse
|
||||
end
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
||||
---@param table table
|
||||
---@param depth number?
|
||||
shared.DumpTable = function(table, depth)
|
||||
if not table then
|
||||
print(tostring(table))
|
||||
return
|
||||
end
|
||||
if depth == nil then
|
||||
depth = 0
|
||||
end
|
||||
if (depth > 200) then
|
||||
print("Error: Depth > 200 in dumpTable()")
|
||||
return
|
||||
end
|
||||
for k, v in pairs(table) do
|
||||
if (type(v) == "table") then
|
||||
print(string.rep(" ", depth) .. k .. ":")
|
||||
shared.DumpTable(v, depth + 1)
|
||||
else
|
||||
print(string.rep(" ", depth) .. k .. ": ", v)
|
||||
end
|
||||
end
|
||||
end
|
||||
---@param table table
|
||||
---@param depth number?
|
||||
shared.DumpTable = function(table, depth)
|
||||
if not table then
|
||||
print(tostring(table))
|
||||
return
|
||||
end
|
||||
if depth == nil then
|
||||
depth = 0
|
||||
end
|
||||
if depth > 200 then
|
||||
print("Error: Depth > 200 in dumpTable()")
|
||||
return
|
||||
end
|
||||
for k, v in pairs(table) do
|
||||
if type(v) == "table" then
|
||||
print(string.rep(" ", depth) .. k .. ":")
|
||||
shared.DumpTable(v, depth + 1)
|
||||
else
|
||||
print(string.rep(" ", depth) .. k .. ": ", v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---@param table table<any, any>
|
||||
---@param value any
|
||||
shared.TableContains = function(table, value)
|
||||
for _, v in pairs(table) do
|
||||
if v == value then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
---@param table table<any, any>
|
||||
---@param value any
|
||||
shared.TableContains = function(table, value)
|
||||
for _, v in pairs(table) do
|
||||
if v == value then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
shared.config = {
|
||||
camera = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "camera", "enabled" }, true),
|
||||
speed = shared.GetOrDefault(CykaPersistentData.config, { "camera", "speed" }, 30),
|
||||
},
|
||||
spellQueue = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "spellQueue", "enabled" }, true),
|
||||
queue = shared.GetOrDefault(CykaPersistentData.config, { "spellQueue", "queue" }, 1),
|
||||
},
|
||||
autoloot = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "enabled" }, true),
|
||||
filter = {
|
||||
gold = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "gold", "enabled" },
|
||||
true),
|
||||
},
|
||||
orderResource = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "orderResource", "enabled" }, true),
|
||||
},
|
||||
mount = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "mount", "enabled" },
|
||||
true),
|
||||
},
|
||||
ilvl = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "ilvl", "enabled" },
|
||||
true),
|
||||
value = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "ilvl", "value" }, 910),
|
||||
},
|
||||
profession = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "profession", "enabled" }, true),
|
||||
professions = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "profession", "professions" }, ""),
|
||||
},
|
||||
value = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "value", "enabled" },
|
||||
true),
|
||||
byStack = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "value", "byStack" },
|
||||
false),
|
||||
value = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "value", "value" },
|
||||
10000),
|
||||
},
|
||||
greyvalue = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "greyvalue", "enabled" }, true),
|
||||
byStack = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "greyvalue", "byStack" }, false),
|
||||
value = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "greyvalue", "value" },
|
||||
100000),
|
||||
},
|
||||
questItem = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "questItem", "enabled" }, true),
|
||||
},
|
||||
classGear = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "enabled" }, true),
|
||||
ilvlThreshold = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "ilvlThreshold" }, 910),
|
||||
qualityThreshold = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "qualityThreshold" }, 3),
|
||||
},
|
||||
boe = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "boe", "enabled" },
|
||||
true),
|
||||
ilvlThreshold = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "boe", "ilvlThreshold" }, 910),
|
||||
qualityThreshold = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "boe", "qualityThreshold" }, 3),
|
||||
},
|
||||
ap = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "ap", "enabled" },
|
||||
true),
|
||||
},
|
||||
name = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "name", "enabled" },
|
||||
false),
|
||||
exact = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "filter", "name", "exact" },
|
||||
false),
|
||||
caseSensitive = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "caseSensitive" }, false),
|
||||
whitelist = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "whitelist" }, ""),
|
||||
},
|
||||
everything = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "everything", "enabled" }, true),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
shared.config = {
|
||||
camera = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "camera", "enabled" }, true),
|
||||
speed = shared.GetOrDefault(CykaPersistentData.config, { "camera", "speed" }, 30),
|
||||
},
|
||||
spellQueue = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "spellQueue", "enabled" }, true),
|
||||
queue = shared.GetOrDefault(CykaPersistentData.config, { "spellQueue", "queue" }, 1),
|
||||
},
|
||||
autoloot = {
|
||||
enabled = shared.GetOrDefault(CykaPersistentData.config, { "autoloot", "enabled" }, true),
|
||||
filter = {
|
||||
gold = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "gold", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
orderResource = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "orderResource", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
mount = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "mount", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
ilvl = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "ilvl", "enabled" },
|
||||
true
|
||||
),
|
||||
value = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "ilvl", "value" },
|
||||
910
|
||||
),
|
||||
},
|
||||
profession = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "profession", "enabled" },
|
||||
true
|
||||
),
|
||||
professions = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "profession", "professions" },
|
||||
""
|
||||
),
|
||||
},
|
||||
value = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "value", "enabled" },
|
||||
true
|
||||
),
|
||||
byStack = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "value", "byStack" },
|
||||
false
|
||||
),
|
||||
value = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "value", "value" },
|
||||
10000
|
||||
),
|
||||
},
|
||||
greyvalue = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "greyvalue", "enabled" },
|
||||
true
|
||||
),
|
||||
byStack = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "greyvalue", "byStack" },
|
||||
false
|
||||
),
|
||||
value = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "greyvalue", "value" },
|
||||
100000
|
||||
),
|
||||
},
|
||||
questItem = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "questItem", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
classGear = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "enabled" },
|
||||
true
|
||||
),
|
||||
ilvlThreshold = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "ilvlThreshold" },
|
||||
910
|
||||
),
|
||||
qualityThreshold = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "classGear", "qualityThreshold" },
|
||||
3
|
||||
),
|
||||
},
|
||||
boe = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "boe", "enabled" },
|
||||
true
|
||||
),
|
||||
ilvlThreshold = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "boe", "ilvlThreshold" },
|
||||
910
|
||||
),
|
||||
qualityThreshold = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "boe", "qualityThreshold" },
|
||||
3
|
||||
),
|
||||
},
|
||||
ap = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "ap", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
name = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "enabled" },
|
||||
false
|
||||
),
|
||||
exact = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "exact" },
|
||||
false
|
||||
),
|
||||
caseSensitive = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "caseSensitive" },
|
||||
false
|
||||
),
|
||||
whitelist = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "name", "whitelist" },
|
||||
""
|
||||
),
|
||||
},
|
||||
everything = {
|
||||
enabled = shared.GetOrDefault(
|
||||
CykaPersistentData.config,
|
||||
{ "autoloot", "filter", "everything", "enabled" },
|
||||
true
|
||||
),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
shared.Autoloot.Init()
|
||||
shared.CameraSettings.Init()
|
||||
shared.SpellQSettings.Init()
|
||||
shared.Autoloot.Init()
|
||||
shared.CameraSettings.Init()
|
||||
shared.SpellQSettings.Init()
|
||||
|
||||
print("Cyka loaded!")
|
||||
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
|
||||
if addonName == addonname then
|
||||
init()
|
||||
end
|
||||
end)
|
||||
|
||||
local logoutFrame = CreateFrame("Frame")
|
||||
logoutFrame:RegisterEvent("PLAYER_LOGOUT")
|
||||
logoutFrame:SetScript("OnEvent", function(self, event, ...)
|
||||
CykaPersistentData.config = shared.config
|
||||
CykaPersistentData.config = shared.config
|
||||
end)
|
||||
|
Reference in New Issue
Block a user