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