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 GetLocaleForChannel fun(channel: string): string
---@field WhoQueryService WhoQueryService
---@field Whoer InitTable|{ShouldNotifyForZone: fun(zone: string): boolean}
---@field AchievementSniffer InitTable
---@field AchievementSniffer AchievementSniffer
---@field AgentTracker AgentTracker
---@field BonkDetector InitTable
---@field Bully InitTable
---@field CombatAlerter InitTable
---@field Commander InitTable
---@field Config InitTable
---@field Configurator InitTable
---@field DeathReporter InitTable
---@field Dueler InitTable
---@field Echoer InitTable
---@field Emoter InitTable
---@field Inviter InitTable
---@field Macroer InitTable
---@field Messenger InitTable
---@field MinimapTagger InitTable
---@field Network InitTable
---@field NetworkMessenger InitTable
---@field Noter InitTable
---@field Sniffer InitTable
---@field Spotter InitTable
---@field StinkyCache InitTable
---@field BonkDetector BonkDetector
---@field Bully Bully
---@field CombatAlerter CombatAlerter
---@field Commander Commander
---@field Config Config
---@field Configurator Configurator
---@field DeathReporter DeathReporter
---@field Dueler Dueler
---@field Echoer Echoer
---@field Emoter Emoter
---@field Inviter Inviter
---@field Macroer Macroer
---@field Messenger Messenger
---@field MinimapTagger MinimapTagger
---@field Network Network
---@field NetworkMessenger NetworkMessenger
---@field Noter Noter
---@field Sniffer Sniffer
---@field Spotter Spotter
---@field StinkyCache StinkyCache
---@field StinkyTracker StinkyTracker
---@field Whoer Whoer
--- Config ---
---@class HeimdallConfig
@@ -119,19 +119,6 @@ local function init()
---@field debug boolean
---@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
---@field enabled boolean
---@field debug boolean
@@ -149,25 +136,12 @@ local function init()
---@field channels string[]
---@field prefix string
---@class HeimdallMacroerConfig
---@field enabled boolean
---@field debug boolean
---@field priority string[]
---@class HeimdallStinkyTrackerConfig
---@field enabled boolean
---@field debug boolean
---@field ignoredTimeout number
---@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
---@field enabled boolean
---@field debug boolean

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,6 @@
local _, shared = ...
---@cast shared HeimdallShared
local ModuleName = "Commander"
---@class HeimdallCommanderConfig
---@field enabled boolean
@@ -8,8 +9,6 @@ local _, shared = ...
---@field commander string
---@field commands table<string, boolean>
local ModuleName = "Commander"
local helpMessages = {
ru = {
"1) who - пишет вам никнеймы текущих врагов и локу.",
@@ -354,10 +353,6 @@ shared.Commander = {
and (
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
or (command.commanderOnly and sender == Heimdall_Data.config.commander.commander)
)

View File

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