Refactor Heimdall modules to improve structure and clarity, including AchievementSniffer, BonkDetector, Bully, Commander, and Config.
This commit is contained in:
70
Heimdall.lua
70
Heimdall.lua
@@ -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
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user