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 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
|
||||||
|
@@ -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,
|
||||||
|
}
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
@@ -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)
|
||||||
)
|
)
|
||||||
|
@@ -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"
|
||||||
|
Reference in New Issue
Block a user