Files
wow-Heimdall/Weakauras/Config/init.lua

186 lines
7.3 KiB
Lua

---@param str string
---@return table<string, boolean>
local function StringToMap(str, deliminer)
if not str then return {} end
local map = {}
local parts = { strsplit(deliminer, str) }
for _, line in ipairs(parts) do
line = strtrim(line)
if line ~= "" then
map[line] = true
end
end
return map
end
---@param str string
---@return string[]
local function StringToArray(str, deliminer)
if not str then return {} end
local ret = {}
local array = { strsplit(deliminer, str) }
for i, line in ipairs(array) do
line = strtrim(line)
if line ~= "" then
ret[i] = line
end
end
return ret
end
if not Heimdall_Data then Heimdall_Data = {} end
local config = {
spotter = {
enabled = aura_env.config.spotter.enabled,
everyone = aura_env.config.spotter.everyone,
hostile = aura_env.config.spotter.hostile,
alliance = aura_env.config.spotter.alliance,
stinky = aura_env.config.spotter.stinky,
notifyChannel = aura_env.config.spotter.notifyChannel,
zoneOverride = aura_env.config.spotter.zoneOverride,
throttleTime = aura_env.config.spotter.throttleTime
},
who = {
enabled = aura_env.config.who.enabled,
ignored = StringToMap(aura_env.config.who.ignored, "\n"),
notifyChannel = aura_env.config.who.notifyChannel,
ttl = aura_env.config.who.ttl,
doWhisper = aura_env.config.who.doWhisper,
zoneNotifyFor = StringToMap(aura_env.config.who.zoneNotifyFor, "\n"),
},
messenger = {
enabled = aura_env.config.messenger.enabled,
interval = aura_env.config.messenger.interval,
},
deathReporter = {
enabled = aura_env.config.deathReporter.enabled,
throttle = aura_env.config.deathReporter.throttle,
doWhisper = aura_env.config.deathReporter.doWhisper,
notifyChannel = aura_env.config.deathReporter.notifyChannel,
zoneOverride = aura_env.config.deathReporter.zoneOverride,
duelThrottle = aura_env.config.deathReporter.duelThrottle,
},
whisperNotify = StringToArray(aura_env.config.whisperNotify, "\n"),
stinkies = StringToMap(aura_env.config.stinkies, "\n"),
inviter = {
enabled = aura_env.config.inviter.enabled,
listeningChannel = aura_env.config.inviter.listeningChannel,
keyword = aura_env.config.inviter.keyword,
allAssist = aura_env.config.inviter.allAssist,
agentsAssist = aura_env.config.inviter.agentsAssist,
throttle = aura_env.config.inviter.throttle,
kickOffline = aura_env.config.inviter.kickOffline,
cleanupInterval = aura_env.config.inviter.cleanupInterval,
afkThreshold = aura_env.config.inviter.afkThreshold,
},
dueler = {
enabled = aura_env.config.dueler.enabled,
declineOther = aura_env.config.dueler.declineOther,
},
bully = {
enabled = aura_env.config.bully.enabled,
},
agentTracker = {
enabled = aura_env.config.agentTracker.enabled,
masterChannel = aura_env.config.agentTracker.masterChannel,
},
emoter = {
enabled = aura_env.config.emoter.enabled,
masterChannel = aura_env.config.emoter.masterChannel,
prefix = aura_env.config.emoter.prefix,
},
echoer = {
enabled = aura_env.config.echoer.enabled,
masterChannel = aura_env.config.echoer.masterChannel,
prefix = aura_env.config.echoer.prefix,
},
macroer = {
enabled = aura_env.config.macroer.enabled,
priority = StringToArray(aura_env.config.macroer.priority, "\n"),
},
commander = {
enabled = aura_env.config.commander.enabled,
masterChannel = aura_env.config.commander.masterChannel,
commander = aura_env.config.commander.commander,
commands = StringToMap(aura_env.config.commander.commands, ","),
},
combatAlerter = {
enabled = aura_env.config.combatAlerter.enabled,
masterChannel = aura_env.config.combatAlerter.masterChannel,
},
stinkyTracker = {
enabled = aura_env.config.stinkyTracker.enabled,
masterChannel = aura_env.config.stinkyTracker.masterChannel,
},
}
Heimdall_Data.config.spotter.enabled = config.spotter.enabled
Heimdall_Data.config.spotter.everyone = config.spotter.everyone
Heimdall_Data.config.spotter.hostile = config.spotter.hostile
Heimdall_Data.config.spotter.alliance = config.spotter.alliance
Heimdall_Data.config.spotter.stinky = config.spotter.stinky
Heimdall_Data.config.spotter.notifyChannel = config.spotter.notifyChannel
Heimdall_Data.config.spotter.zoneOverride = config.spotter.zoneOverride
Heimdall_Data.config.spotter.throttleTime = config.spotter.throttleTime
Heimdall_Data.config.who.enabled = config.who.enabled
Heimdall_Data.config.who.ignored = config.who.ignored
Heimdall_Data.config.who.notifyChannel = config.who.notifyChannel
Heimdall_Data.config.who.ttl = config.who.ttl
Heimdall_Data.config.who.doWhisper = config.who.doWhisper
Heimdall_Data.config.who.zoneNotifyFor = config.who.zoneNotifyFor
Heimdall_Data.config.messenger.enabled = config.messenger.enabled
Heimdall_Data.config.messenger.interval = config.messenger.interval
Heimdall_Data.config.deathReporter.enabled = config.deathReporter.enabled
Heimdall_Data.config.deathReporter.throttle = config.deathReporter.throttle
Heimdall_Data.config.deathReporter.doWhisper = config.deathReporter.doWhisper
Heimdall_Data.config.deathReporter.notifyChannel = config.deathReporter.notifyChannel
Heimdall_Data.config.deathReporter.zoneOverride = config.deathReporter.zoneOverride
Heimdall_Data.config.deathReporter.duelThrottle = config.deathReporter.duelThrottle
Heimdall_Data.config.inviter.enabled = config.inviter.enabled
Heimdall_Data.config.inviter.listeningChannel = config.inviter.listeningChannel
Heimdall_Data.config.inviter.keyword = config.inviter.keyword
Heimdall_Data.config.inviter.allAssist = config.inviter.allAssist
Heimdall_Data.config.inviter.agentsAssist = config.inviter.agentsAssist
Heimdall_Data.config.inviter.throttle = config.inviter.throttle
Heimdall_Data.config.inviter.kickOffline = config.inviter.kickOffline
Heimdall_Data.config.inviter.cleanupInterval = config.inviter.cleanupInterval
Heimdall_Data.config.inviter.afkThreshold = config.inviter.afkThreshold
Heimdall_Data.config.dueler.enabled = config.dueler.enabled
Heimdall_Data.config.dueler.declineOther = config.dueler.declineOther
Heimdall_Data.config.bully.enabled = config.bully.enabled
Heimdall_Data.config.agentTracker.enabled = config.agentTracker.enabled
Heimdall_Data.config.agentTracker.masterChannel = config.agentTracker.masterChannel
Heimdall_Data.config.emoter.enabled = config.emoter.enabled
Heimdall_Data.config.emoter.masterChannel = config.emoter.masterChannel
Heimdall_Data.config.emoter.prefix = config.emoter.prefix
Heimdall_Data.config.echoer.enabled = config.echoer.enabled
Heimdall_Data.config.echoer.masterChannel = config.echoer.masterChannel
Heimdall_Data.config.echoer.prefix = config.echoer.prefix
Heimdall_Data.config.macroer.enabled = config.macroer.enabled
Heimdall_Data.config.macroer.priority = config.macroer.priority
Heimdall_Data.config.commander.enabled = config.commander.enabled
Heimdall_Data.config.commander.masterChannel = config.commander.masterChannel
Heimdall_Data.config.commander.commander = config.commander.commander
Heimdall_Data.config.commander.commands = config.commander.commands
Heimdall_Data.config.combatAlerter.enabled = config.combatAlerter.enabled
Heimdall_Data.config.combatAlerter.masterChannel = config.combatAlerter.masterChannel
Heimdall_Data.config.stinkyTracker.enabled = config.stinkyTracker.enabled
Heimdall_Data.config.stinkyTracker.masterChannel = config.stinkyTracker.masterChannel
Heimdall_Data.config.whisperNotify = config.whisperNotify
Heimdall_Data.config.stinkies = config.stinkies