Refactor code structure for improved readability and maintainability

This commit is contained in:
Torsten Brendgen
2026-04-28 23:09:04 +02:00
parent cf78405148
commit f97b7556cd
16 changed files with 1841 additions and 9 deletions

View File

@@ -0,0 +1,102 @@
local ADDON_NAME = "HailMaryGuildTools"
local HMGT = LibStub("AceAddon-3.0"):GetAddon(ADDON_NAME)
if not HMGT then return end
local L = LibStub("AceLocale-3.0"):GetLocale(ADDON_NAME, true) or {}
local EA = HMGT:NewModule("EncounterAlerts", "AceEvent-3.0")
HMGT.EncounterAlerts = EA
EA.runtimeEnabled = false
function EA:GetSettings()
local profile = HMGT.db and HMGT.db.profile
profile = profile or {}
profile.encounterAlerts = type(profile.encounterAlerts) == "table" and profile.encounterAlerts or {}
return profile.encounterAlerts
end
function EA:GetLuraRunesSettings()
local settings = self:GetSettings()
settings.luraRunes = type(settings.luraRunes) == "table" and settings.luraRunes or {}
return settings.luraRunes
end
function EA:OnEnable()
local settings = self:GetSettings()
self.runtimeEnabled = settings.enabled == true
self:RegisterEvent("PLAYER_ENTERING_WORLD", "RefreshLuraRunesContext")
self:RegisterEvent("ZONE_CHANGED", "RefreshLuraRunesContext")
self:RegisterEvent("ZONE_CHANGED_INDOORS", "RefreshLuraRunesContext")
self:RegisterEvent("ZONE_CHANGED_NEW_AREA", "RefreshLuraRunesContext")
self:RegisterEvent("GROUP_ROSTER_UPDATE", "RefreshLuraRunesContext")
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "RefreshLuraRunesContext")
self:RegisterEvent("PLAYER_TARGET_CHANGED", "RefreshLuraRunesContext")
self:RegisterEvent("ENCOUNTER_START", "HandleLuraEncounterStart")
self:RegisterEvent("ENCOUNTER_END", "HandleLuraEncounterEnd")
self:RegisterEvent("CHAT_MSG_RAID", "HandleLuraRaidChat")
self:RegisterEvent("CHAT_MSG_RAID_LEADER", "HandleLuraRaidChat")
if self.LuraRunes and self.LuraRunes.Refresh then
self.LuraRunes:Refresh()
end
end
function EA:Enable()
local settings = self:GetSettings()
settings.enabled = true
self.runtimeEnabled = true
if self.LuraRunes and self.LuraRunes.Refresh then
self.LuraRunes:Refresh()
end
end
function EA:Disable()
local settings = self:GetSettings()
settings.enabled = false
self.runtimeEnabled = false
if self.LuraRunes and self.LuraRunes.Hide then
self.LuraRunes:Hide()
end
end
function EA:GetDisplayName()
return L["OPT_MODULE_ENCOUNTER_ALERTS"] or "Encounter Alerts"
end
function EA:RefreshLuraRunesContext(event)
if self.LuraRunes and self.LuraRunes.RefreshContext then
self.LuraRunes:RefreshContext(event)
end
end
function EA:HandleLuraEncounterStart(_, encounterId, encounterName)
if self.LuraRunes and self.LuraRunes.OnEncounterStart then
self.LuraRunes:OnEncounterStart(encounterId, encounterName)
end
end
function EA:HandleLuraEncounterEnd(_, encounterId)
if self.LuraRunes and self.LuraRunes.OnEncounterEnd then
self.LuraRunes:OnEncounterEnd(encounterId)
end
end
function EA:HandleLuraRunesComm(senderName, payload)
if self.LuraRunes and self.LuraRunes.HandleComm then
self.LuraRunes:HandleComm(senderName, payload)
end
end
function EA:HandleLuraRaidChat(event, message, senderName)
if self.LuraRunes and self.LuraRunes.HandleRaidChatMessage then
self.LuraRunes:HandleRaidChatMessage(message, senderName, event)
end
end
function EA:HandleSlashCommand(input)
if self.LuraRunes and self.LuraRunes.HandleSlashCommand then
self.LuraRunes:HandleSlashCommand(input)
else
HMGT:OpenConfig()
end
end