Add option to echo to russian channel

This commit is contained in:
2025-01-14 18:04:18 +01:00
parent fa5b73b5fe
commit 308b65e2f6
7 changed files with 67 additions and 48 deletions

View File

@@ -68,6 +68,7 @@ local function init()
---@field agents table<string, string> ---@field agents table<string, string>
---@field scale number ---@field scale number
---@field locale string ---@field locale string
---@field echoToRussian boolean
---@class HeimdallSpotterConfig ---@class HeimdallSpotterConfig
---@field enabled boolean ---@field enabled boolean
@@ -406,6 +407,7 @@ local function init()
stinkies = shared.GetOrDefault(Heimdall_Data, { "config", "stinkies" }, {}), stinkies = shared.GetOrDefault(Heimdall_Data, { "config", "stinkies" }, {}),
scale = shared.GetOrDefault(Heimdall_Data, { "config", "scale" }, 1), scale = shared.GetOrDefault(Heimdall_Data, { "config", "scale" }, 1),
locale = shared.GetOrDefault(Heimdall_Data, { "config", "locale" }, "en"), locale = shared.GetOrDefault(Heimdall_Data, { "config", "locale" }, "en"),
echoToRussian = shared.GetOrDefault(Heimdall_Data, { "config", "echoToRussian" }, true),
bonkDetector = { bonkDetector = {
enabled = shared.GetOrDefault(Heimdall_Data, { "config", "bonkDetector", "enabled" }, false), enabled = shared.GetOrDefault(Heimdall_Data, { "config", "bonkDetector", "enabled" }, false),
debug = shared.GetOrDefault(Heimdall_Data, { "config", "bonkDetector", "debug" }, false), debug = shared.GetOrDefault(Heimdall_Data, { "config", "bonkDetector", "debug" }, false),

View File

@@ -102,17 +102,15 @@ function shared.BonkDetector.Init()
end end
table.insert(shared.messenger.queue, message) table.insert(shared.messenger.queue, message)
-- Russian message if Heimdall_Data.config.echoToRussian then
---@type Message -- Russian message
message = { local ruMessage = {
channel = "CHANNEL", channel = "CHANNEL",
data = notifyChannel .. "ru", data = notifyChannel .. "ru",
message = string.format(shared.L.ru.bonkDetected, source, destination, subevent), message = string.format(shared.L.ru.bonkDetected, source, destination, subevent),
} }
if Heimdall_Data.config.bonkDetector.debug then table.insert(shared.messenger.queue, ruMessage)
print(string.format("[%s] Queueing Russian message: %s", ModuleName, message.message))
end end
table.insert(shared.messenger.queue, message)
end) end)
print("[Heimdall] BonkDetector loaded") print("[Heimdall] BonkDetector loaded")

View File

@@ -94,18 +94,20 @@ function shared.CombatAlerter.Init()
end end
subZone = shared.L.ru.zones[subZone] or subZone subZone = shared.L.ru.zones[subZone] or subZone
---@type Message if Heimdall_Data.config.echoToRussian then
msg = { -- Russian message
channel = "CHANNEL", local ruMsg = {
data = Heimdall_Data.config.combatAlerter.masterChannel .. "ru", channel = "CHANNEL",
message = string.format(shared.L.ru.combatAlerterInCombat, data = Heimdall_Data.config.combatAlerter.masterChannel .. "ru",
source, message = string.format(shared.L.ru.combatAlerterInCombat,
zone, subZone, source,
tostring(GetCurrentMapAreaID()), zone, subZone,
x * 100, y * 100 tostring(GetCurrentMapAreaID()),
), x * 100, y * 100
} ),
table.insert(shared.messenger.queue, msg) }
table.insert(shared.messenger.queue, ruMsg)
end
elseif Heimdall_Data.config.combatAlerter.debug then elseif Heimdall_Data.config.combatAlerter.debug then
print(string.format("[%s] Source not in stinky list, ignoring: %s", ModuleName, source)) print(string.format("[%s] Source not in stinky list, ignoring: %s", ModuleName, source))
end end

View File

@@ -118,19 +118,21 @@ function shared.DeathReporter.Init()
end end
subZone = shared.L.ru.zones[subZone] or subZone subZone = shared.L.ru.zones[subZone] or subZone
---@type Message if Heimdall_Data.config.echoToRussian then
msg = { -- Russian message
channel = "CHANNEL", local ruMsg = {
data = Heimdall_Data.config.deathReporter.masterChannel .. "ru", channel = "CHANNEL",
message = string.format(shared.L.ru.killed, data = Heimdall_Data.config.deathReporter.masterChannel .. "ru",
source, message = string.format(shared.L.ru.killed,
destination, source,
spellName, destination,
string.format("%s (%s)", zone, subZone), spellName,
zoneId, string.format("%s (%s)", zone, subZone),
x * 100, y * 100) zoneId,
} x * 100, y * 100)
table.insert(shared.messenger.queue, msg) }
table.insert(shared.messenger.queue, ruMsg)
end
end) end)
end end

View File

@@ -41,12 +41,15 @@ function shared.Sniffer.Init()
end end
table.insert(shared.messenger.queue, msg) table.insert(shared.messenger.queue, msg)
msg = { if Heimdall_Data.config.echoToRussian then
channel = "CHANNEL", -- Russian message
data = Heimdall_Data.config.deathReporter.notifyChannel .. "ru", local ruMsg = {
message = string.format(shared.L.ru.snifferStinky, stinky), channel = "CHANNEL",
} data = Heimdall_Data.config.deathReporter.notifyChannel .. "ru",
table.insert(shared.messenger.queue, msg) message = string.format(shared.L.ru.snifferStinky, stinky),
}
table.insert(shared.messenger.queue, ruMsg)
end
end end
local cleuFrame = CreateFrame("Frame") local cleuFrame = CreateFrame("Frame")

View File

@@ -220,13 +220,15 @@ function shared.Spotter.Init()
print(string.format("[%s] Sending notification: %s", ModuleName, text)) print(string.format("[%s] Sending notification: %s", ModuleName, text))
end end
---@type Message if Heimdall_Data.config.echoToRussian then
msg = { -- Russian message
channel = "CHANNEL", local ruMsg = {
data = Heimdall_Data.config.spotter.notifyChannel .. "ru", channel = "CHANNEL",
message = text data = Heimdall_Data.config.spotter.notifyChannel .. "ru",
} message = text
table.insert(shared.messenger.queue, msg) }
table.insert(shared.messenger.queue, ruMsg)
end
end end
local frame = CreateFrame("Frame") local frame = CreateFrame("Frame")

View File

@@ -219,6 +219,16 @@ function shared.Whoer.Init()
end end
end end
if Heimdall_Data.config.echoToRussian then
-- Russian message
local ruMsg = {
channel = "CHANNEL",
data = Heimdall_Data.config.who.notifyChannel .. "ru",
message = player:NotifyRu()
}
table.insert(shared.messenger.queue, ruMsg)
end
return nil return nil
end end
---@param player Player ---@param player Player