Implement enabling/disabling commands
This commit is contained in:
@@ -123,6 +123,7 @@ local function init()
|
||||
---@field enabled boolean
|
||||
---@field masterChannel string
|
||||
---@field commander string
|
||||
---@field commands table<string, boolean>
|
||||
|
||||
--- Data ---
|
||||
---@class HeimdallMessengerData
|
||||
@@ -240,6 +241,7 @@ local function init()
|
||||
enabled = shared.GetOrDefault(Heimdall_Data, { "config", "commander", "enabled" }, false),
|
||||
masterChannel = shared.GetOrDefault(Heimdall_Data, { "config", "commander", "masterChannel" }, "Agent"),
|
||||
commander = shared.GetOrDefault(Heimdall_Data, { "config", "commander", "commander" }, "Heimdállr"),
|
||||
commands = shared.GetOrDefault(Heimdall_Data, { "config", "commander", "commands" }, {}),
|
||||
},
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
## Interface: 70300
|
||||
## Title: Heimdall
|
||||
## Version: 2.11.0
|
||||
## Version: 2.12.0
|
||||
## Notes: Watches over areas and alerts when hostiles spotted
|
||||
## Author: Cyka
|
||||
## SavedVariables: Heimdall_Data
|
||||
|
BIN
Heimdall.zip
(Stored with Git LFS)
BIN
Heimdall.zip
(Stored with Git LFS)
Binary file not shown.
@@ -191,8 +191,11 @@ function shared.Commander.Init()
|
||||
sender = string.match(sender, "^[^-]+")
|
||||
|
||||
for _, command in ipairs(commands) do
|
||||
if not command.commanderOnly or
|
||||
(command.commanderOnly and sender == Heimdall_Data.config.commander.commander) then
|
||||
local enabled = Heimdall_Data.config.commander.commands[command.keywordRe] == true or false
|
||||
if enabled and
|
||||
(not command.commanderOnly
|
||||
or (command.commanderOnly
|
||||
and sender == Heimdall_Data.config.commander.commander)) then
|
||||
if msg:match(command.keywordRe) then
|
||||
local messages = command.callback({ strsplit(" ", msg) })
|
||||
for _, message in ipairs(messages) do
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,9 +1,9 @@
|
||||
---@param str string
|
||||
---@return table<string, boolean>
|
||||
local function StringToMap(str)
|
||||
local function StringToMap(str, deliminer)
|
||||
if not str then return {} end
|
||||
local map = {}
|
||||
local parts = { strsplit("\n", str) }
|
||||
local parts = { strsplit(deliminer, str) }
|
||||
for _, line in ipairs(parts) do
|
||||
line = strtrim(line)
|
||||
if line ~= "" then
|
||||
@@ -15,10 +15,10 @@ end
|
||||
|
||||
---@param str string
|
||||
---@return string[]
|
||||
local function StringToArray(str)
|
||||
local function StringToArray(str, deliminer)
|
||||
if not str then return {} end
|
||||
local ret = {}
|
||||
local array = { strsplit("\n", str) }
|
||||
local array = { strsplit(deliminer, str) }
|
||||
for i, line in ipairs(array) do
|
||||
line = strtrim(line)
|
||||
if line ~= "" then
|
||||
@@ -43,11 +43,11 @@ local config = {
|
||||
},
|
||||
who = {
|
||||
enabled = aura_env.config.who.enabled,
|
||||
ignored = StringToMap(aura_env.config.who.ignored),
|
||||
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),
|
||||
zoneNotifyFor = StringToMap(aura_env.config.who.zoneNotifyFor, "\n"),
|
||||
},
|
||||
messenger = {
|
||||
enabled = aura_env.config.messenger.enabled,
|
||||
@@ -61,8 +61,8 @@ local config = {
|
||||
zoneOverride = aura_env.config.deathReporter.zoneOverride,
|
||||
duelThrottle = aura_env.config.deathReporter.duelThrottle,
|
||||
},
|
||||
whisperNotify = StringToArray(aura_env.config.whisperNotify),
|
||||
stinkies = StringToMap(aura_env.config.stinkies),
|
||||
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,
|
||||
@@ -94,12 +94,13 @@ local config = {
|
||||
},
|
||||
macroer = {
|
||||
enabled = aura_env.config.macroer.enabled,
|
||||
priority = StringToArray(aura_env.config.macroer.priority),
|
||||
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, ","),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -158,6 +159,7 @@ 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.whisperNotify = config.whisperNotify
|
||||
Heimdall_Data.config.stinkies = config.stinkies
|
||||
|
Reference in New Issue
Block a user