186 lines
7.3 KiB
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
|