diff --git a/Heimdall.lua b/Heimdall.lua index 5a33771..28b01ad 100644 --- a/Heimdall.lua +++ b/Heimdall.lua @@ -78,6 +78,7 @@ local function init() ---@field networkMessenger HeimdallNetworkMessengerConfig ---@field configurator HeimdallConfiguratorConfig ---@field stinkyCache HeimdallStinkyCacheConfig + ---@field essencex HeimdallEssencexConfig ---@field whisperNotify table ---@field addonPrefix string ---@field stinkies table @@ -248,6 +249,17 @@ local function init() ---@field commander string ---@field ttl number + ---@class HeimdallEssencexConfig + ---@field enabled boolean + ---@field debug boolean + ---@field masterChannel string + ---@field who boolean + ---@field spotter boolean + --/run Heimdall_Data.config.essencex.masterChannel="EssenceAgent" + --/run Heimdall_Data.config.essencex.enabled=true + --/run Heimdall_Data.config.essencex.spotter=true + --/run Heimdall_Data.config.essencex.who=true + --- Data --- ---@class HeimdallMessengerData ---@field queue table @@ -495,6 +507,13 @@ local function init() commander = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "commander" }, "Heimdállr"), ttl = shared.GetOrDefault(Heimdall_Data, { "config", "stinkyCache", "ttl" }, 10), }, + essencex = { + enabled = shared.GetOrDefault(Heimdall_Data, { "config", "essencex", "enabled" }, false), + debug = shared.GetOrDefault(Heimdall_Data, { "config", "essencex", "debug" }, false), + masterChannel = shared.GetOrDefault(Heimdall_Data, { "config", "essencex", "masterChannel" }, "Essencex"), + who = shared.GetOrDefault(Heimdall_Data, { "config", "essencex", "who" }, false), + spotter = shared.GetOrDefault(Heimdall_Data, { "config", "essencex", "spotter" }, false), + }, addonPrefix = shared.GetOrDefault(Heimdall_Data, { "config", "addonPrefix" }, "HEIMDALL"), } diff --git a/Modules/Config.lua b/Modules/Config.lua index cd013fe..d5b6712 100644 --- a/Modules/Config.lua +++ b/Modules/Config.lua @@ -955,7 +955,7 @@ function shared.Config.Init() Heimdall_Data.config.inviter.listeningChannel, function(self) local text = self:GetText() - if string.match(text, "%d+") then + if string.match(text, "%D+") then Heimdall_Data.config.inviter.listeningChannel = text print("Listening channel set to", tostring(text)) else diff --git a/Modules/Spotter.lua b/Modules/Spotter.lua index 30a671a..475d23e 100644 --- a/Modules/Spotter.lua +++ b/Modules/Spotter.lua @@ -153,6 +153,7 @@ function shared.Spotter.Init() print(string.format("[%s] Player %s coordinates: %.2f, %.2f", ModuleName, name, x * 100, y * 100)) end + local pvpOn = UnitIsPVP(unit) local stinky = shared.IsStinky(name) or false SetMapToCurrentZone() SetMapByID(GetCurrentMapAreaID()) @@ -163,6 +164,7 @@ function shared.Spotter.Init() stinky and string.format("(%s)", "!!!!") or "", race, faction, + pvpOn and shared.L.en.tidbits.pvpOn or shared.L.en.tidbits.pvpOff, string.gsub(FormatHP(hp), "M", "kk"), string.gsub(FormatHP(maxHp), "M", "kk"), location, @@ -210,11 +212,20 @@ function shared.Spotter.Init() stinky and string.format("(%s)", "!!!!") or "", ruRace or race, ruFaction or faction, - FormatHP(hp), - FormatHP(maxHp), + pvpOn and shared.L.ru.tidbits.pvpOn or shared.L.ru.tidbits.pvpOff, + string.gsub(FormatHP(hp), "M", "kk"), + string.gsub(FormatHP(maxHp), "M", "kk"), string.format("%s (%s)", ruZone or zone, ruSubzone or subzone), tostring(GetCurrentMapAreaID()), x * 100, y * 100) + if Heimdall_Data.config.essencex.spotter and Heimdall_Data.config.essencex.enabled then + local msg = { + channel = "CHANNEL", + data = Heimdall_Data.config.essencex.masterChannel, + message = text + } + table.insert(shared.messenger.queue, msg) + end if Heimdall_Data.config.spotter.debug then print(string.format("[%s] Sending notification: %s", ModuleName, text)) diff --git a/Modules/Whoer.lua b/Modules/Whoer.lua index 31f608d..85b0bda 100644 --- a/Modules/Whoer.lua +++ b/Modules/Whoer.lua @@ -200,6 +200,10 @@ function shared.Whoer.Init() } --table.insert(shared.messenger.queue, msg) table.insert(shared.networkMessenger.queue, msg) + if Heimdall_Data.config.essencex.who and Heimdall_Data.config.essencex.enabled then + msg.data = Heimdall_Data.config.essencex.masterChannel + table.insert(shared.messenger.queue, msg) + end if Heimdall_Data.config.who.doWhisper then if Heimdall_Data.config.who.debug then @@ -277,6 +281,11 @@ function shared.Whoer.Init() } --table.insert(shared.messenger.queue, msg) table.insert(shared.networkMessenger.queue, msg) + if Heimdall_Data.config.essencex.who and Heimdall_Data.config.essencex.enabled then + msg.data = Heimdall_Data.config.essencex.masterChannel + table.insert(shared.messenger.queue, msg) + end + if Heimdall_Data.config.who.doWhisper then for _, name in pairs(Heimdall_Data.config.whisperNotify) do ---@type Message @@ -331,6 +340,12 @@ function shared.Whoer.Init() } --table.insert(shared.messenger.queue, msg) table.insert(shared.networkMessenger.queue, msg) + if Heimdall_Data.config.essencex.who and Heimdall_Data.config.essencex.enabled then + --if player.guild == "БеспредеЛ" then + msg.data = Heimdall_Data.config.essencex.masterChannel + table.insert(shared.messenger.queue, msg) + --end + end if Heimdall_Data.config.who.doWhisper then for _, name in pairs(Heimdall_Data.config.whisperNotify) do diff --git a/_L.lua b/_L.lua index 3a014dd..1fca00e 100644 --- a/_L.lua +++ b/_L.lua @@ -10,7 +10,7 @@ shared.L = { bonkDetected = "%s hit %s (%s)", combatAlerterInCombat = "I am in combat with %s at %s (%s) at [%s](%2.2f, %2.2f)", snifferStinky = "I smell a stinky %s", - spotterSpotted = "I see (%s) %s/%s %s of race %s (%s) with health %s/%s at %s [%s](%2.2f, %2.2f)", + spotterSpotted = "I see (%s) %s/%s %s of race %s (%s) with pvp %s and health %s/%s at %s [%s](%2.2f, %2.2f)", whoerNew = "%s %s of class %s, race %s (%s) and guild %s in %s, first seen: %s, last seen: %s, times seen: %d", whoerMoved = "%s of class %s (%s - %s) and guild %s moved to %s", whoerGone = "%s of class %s and guild %s left %s", @@ -19,6 +19,8 @@ shared.L = { hostile = "hostile", friendly = "friendly", unknown = "unknown", + pvpOn = "ON", + pvpOff = "OFF", }, config = { afkThreshold = "Afk Threshold", @@ -92,7 +94,7 @@ shared.L = { bonkDetected = "%s ударил %s (%s)", combatAlerterInCombat = "Я в бою с %s на %s (%s) на [%s](%2.2f, %2.2f)", snifferStinky = "Я чувствую запах %s", - spotterSpotted = "Я вижу (%s) %s/%s %s (%s) с %s/%s здоровьем на %s [%s](%2.2f, %2.2f)", + spotterSpotted = "Я вижу (%s) %s/%s %s расы %s (%s) с pvp %s и здоровьем %s/%s на %s [%s](%2.2f, %2.2f)", whoerNew = "%s %s класса %s, расы %s (%s) и гильдии %s в %s, первый раз видели: %s, последний раз видели: %s, раз видели: %d", whoerMoved = "%s класса %s (%s - %s) и гильдии %s переместился в %s", @@ -104,6 +106,8 @@ shared.L = { hostile = "враждебный", friendly = "дружественный", unknown = "неизвестный", + pvpOn = "вкл", + pvpOff = "выкл", }, config = { alertSound = "Звук Оповещения",