Refactor Heimdall modules to improve structure and clarity, including AchievementSniffer, BonkDetector, Bully, Commander, and Config.

This commit is contained in:
2025-05-18 12:27:00 +02:00
parent 0057ac3a5c
commit b16cf762ac
6 changed files with 2774 additions and 2799 deletions

View File

@@ -36,30 +36,30 @@ local function init()
---@field Memoize fun(f: function): function ---@field Memoize fun(f: function): function
---@field GetLocaleForChannel fun(channel: string): string ---@field GetLocaleForChannel fun(channel: string): string
---@field WhoQueryService WhoQueryService ---@field WhoQueryService WhoQueryService
---@field Whoer InitTable|{ShouldNotifyForZone: fun(zone: string): boolean} ---@field AchievementSniffer AchievementSniffer
---@field AchievementSniffer InitTable
---@field AgentTracker AgentTracker ---@field AgentTracker AgentTracker
---@field BonkDetector InitTable ---@field BonkDetector BonkDetector
---@field Bully InitTable ---@field Bully Bully
---@field CombatAlerter InitTable ---@field CombatAlerter CombatAlerter
---@field Commander InitTable ---@field Commander Commander
---@field Config InitTable ---@field Config Config
---@field Configurator InitTable ---@field Configurator Configurator
---@field DeathReporter InitTable ---@field DeathReporter DeathReporter
---@field Dueler InitTable ---@field Dueler Dueler
---@field Echoer InitTable ---@field Echoer Echoer
---@field Emoter InitTable ---@field Emoter Emoter
---@field Inviter InitTable ---@field Inviter Inviter
---@field Macroer InitTable ---@field Macroer Macroer
---@field Messenger InitTable ---@field Messenger Messenger
---@field MinimapTagger InitTable ---@field MinimapTagger MinimapTagger
---@field Network InitTable ---@field Network Network
---@field NetworkMessenger InitTable ---@field NetworkMessenger NetworkMessenger
---@field Noter InitTable ---@field Noter Noter
---@field Sniffer InitTable ---@field Sniffer Sniffer
---@field Spotter InitTable ---@field Spotter Spotter
---@field StinkyCache InitTable ---@field StinkyCache StinkyCache
---@field StinkyTracker StinkyTracker ---@field StinkyTracker StinkyTracker
---@field Whoer Whoer
--- Config --- --- Config ---
---@class HeimdallConfig ---@class HeimdallConfig
@@ -119,19 +119,6 @@ local function init()
---@field debug boolean ---@field debug boolean
---@field interval number ---@field interval number
---@class HeimdallInviterConfig
---@field enabled boolean
---@field debug boolean
---@field channels string[]
---@field keyword string
---@field allAssist boolean
---@field agentsAssist boolean
---@field throttle number
---@field kickOffline boolean
---@field cleanupInterval number
---@field afkThreshold number
---@field listeningChannel table<string, boolean>
---@class HeimdallDuelerConfig ---@class HeimdallDuelerConfig
---@field enabled boolean ---@field enabled boolean
---@field debug boolean ---@field debug boolean
@@ -149,25 +136,12 @@ local function init()
---@field channels string[] ---@field channels string[]
---@field prefix string ---@field prefix string
---@class HeimdallMacroerConfig
---@field enabled boolean
---@field debug boolean
---@field priority string[]
---@class HeimdallStinkyTrackerConfig ---@class HeimdallStinkyTrackerConfig
---@field enabled boolean ---@field enabled boolean
---@field debug boolean ---@field debug boolean
---@field ignoredTimeout number ---@field ignoredTimeout number
---@field channels string[] ---@field channels string[]
---@class HeimdallSnifferConfig
---@field enabled boolean
---@field debug boolean
---@field channels string[]
---@field throttle number
---@field zoneOverride string?
---@field stinky boolean
---@class HeimdallMinimapTaggerConfig ---@class HeimdallMinimapTaggerConfig
---@field enabled boolean ---@field enabled boolean
---@field debug boolean ---@field debug boolean

View File

@@ -74,9 +74,9 @@ local Achievements = {
12448, 12448,
} }
---@diagnostic disable-next-line: missing-fields ---@class AchievementSniffer
shared.AchievementSniffer = {} shared.AchievementSniffer = {
function shared.AchievementSniffer.Init() Init = function()
if Heimdall_Data.config.achievementSniffer.debug then if Heimdall_Data.config.achievementSniffer.debug then
print(string.format("[%s] Module initialized", ModuleName)) print(string.format("[%s] Module initialized", ModuleName))
end end
@@ -290,4 +290,5 @@ function shared.AchievementSniffer.Init()
Tick() Tick()
print("[Heimdall] AchievementSniffer loaded") print("[Heimdall] AchievementSniffer loaded")
end end,
}

View File

@@ -1,5 +1,6 @@
local _, shared = ... local _, shared = ...
---@cast shared HeimdallShared ---@cast shared HeimdallShared
local ModuleName = "BonkDetector"
---@class HeimdallBonkDetectorConfig ---@class HeimdallBonkDetectorConfig
---@field enabled boolean ---@field enabled boolean
@@ -7,8 +8,7 @@ local _, shared = ...
---@field channels string[] ---@field channels string[]
---@field throttle number ---@field throttle number
local ModuleName = "BonkDetector" ---@class BonkDetector
shared.BonkDetector = { shared.BonkDetector = {
---@return nil ---@return nil
Init = function() Init = function()

View File

@@ -1,12 +1,12 @@
local _, shared = ... local _, shared = ...
---@cast shared HeimdallShared ---@cast shared HeimdallShared
local ModuleName = "Bully"
---@class HeimdallBullyConfig ---@class HeimdallBullyConfig
---@field enabled boolean ---@field enabled boolean
---@field debug boolean ---@field debug boolean
local ModuleName = "Bully" ---@class Bully
shared.Bully = { shared.Bully = {
---@return nil ---@return nil
Init = function() Init = function()

View File

@@ -1,5 +1,6 @@
local _, shared = ... local _, shared = ...
---@cast shared HeimdallShared ---@cast shared HeimdallShared
local ModuleName = "Commander"
---@class HeimdallCommanderConfig ---@class HeimdallCommanderConfig
---@field enabled boolean ---@field enabled boolean
@@ -8,8 +9,6 @@ local _, shared = ...
---@field commander string ---@field commander string
---@field commands table<string, boolean> ---@field commands table<string, boolean>
local ModuleName = "Commander"
local helpMessages = { local helpMessages = {
ru = { ru = {
"1) who - пишет вам никнеймы текущих врагов и локу.", "1) who - пишет вам никнеймы текущих врагов и локу.",
@@ -354,10 +353,6 @@ shared.Commander = {
and ( and (
not command.commanderOnly not command.commanderOnly
-- if Heimdall_Data.config.commander.debug then print(string.format("[%s] Ignoring command, sender %s not commander %s", ModuleName, sender, Heimdall_Data.config.commander.commander)) end -- if Heimdall_Data.config.commander.debug then print(string.format("[%s] Ignoring command, sender %s not commander %s", ModuleName, sender, Heimdall_Data.config.commander.commander)) end
or (command.commanderOnly and sender == Heimdall_Data.config.commander.commander) or (command.commanderOnly and sender == Heimdall_Data.config.commander.commander)
) )

View File

@@ -1,5 +1,6 @@
local _, shared = ... local _, shared = ...
---@cast shared HeimdallShared ---@cast shared HeimdallShared
local ModuleName = "Config"
---@param str string ---@param str string
---@return table<string, boolean> ---@return table<string, boolean>
@@ -398,9 +399,9 @@ end
--HeimdallTestFrame:SetWidth(512) --HeimdallTestFrame:SetWidth(512)
--configFrame:Add(HeimdallTestFrame, 20, 12) --configFrame:Add(HeimdallTestFrame, 20, 12)
---@diagnostic disable-next-line: missing-fields ---@class Config
shared.Config = {} shared.Config = {
function shared.Config.Init() Init = function()
configFrame.frame:SetScale(Heimdall_Data.config.scale) configFrame.frame:SetScale(Heimdall_Data.config.scale)
local buttonColors = { local buttonColors = {
@@ -570,7 +571,9 @@ function shared.Config.Init()
) )
configFrame:Add(scale, 2, 2) configFrame:Add(scale, 2, 2)
local title = configFrame.frame:CreateFontString(nil, "ARTWORK", "GameFontNormal") local title = configFrame.frame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
title:SetText(string.format("%s - v%s", shared._L("heimdallConfig", Heimdall_Data.config.locale), shared.VERSION)) title:SetText(
string.format("%s - v%s", shared._L("heimdallConfig", Heimdall_Data.config.locale), shared.VERSION)
)
configFrame:Add(title, 2, 7) configFrame:Add(title, 2, 7)
local debug = CreateBasicButton( local debug = CreateBasicButton(
@@ -2462,7 +2465,8 @@ function shared.Config.Init()
achievementSnifferConfigFrame.frame, achievementSnifferConfigFrame.frame,
shared._L("enabled", Heimdall_Data.config.locale), shared._L("enabled", Heimdall_Data.config.locale),
function() function()
Heimdall_Data.config.achievementSniffer.enabled = not Heimdall_Data.config.achievementSniffer.enabled Heimdall_Data.config.achievementSniffer.enabled =
not Heimdall_Data.config.achievementSniffer.enabled
return Heimdall_Data.config.achievementSniffer.enabled return Heimdall_Data.config.achievementSniffer.enabled
end end
) )
@@ -2658,7 +2662,8 @@ function shared.Config.Init()
configFrame.frame:Hide() configFrame.frame:Hide()
print("[Heimdall] Config loaded") print("[Heimdall] Config loaded")
end end,
}
SlashCmdList["HEIMDALL_CONFIG"] = function() configFrame.frame:Show() end SlashCmdList["HEIMDALL_CONFIG"] = function() configFrame.frame:Show() end
SLASH_HEIMDALL_CONFIG1 = "/heimdall_config" SLASH_HEIMDALL_CONFIG1 = "/heimdall_config"