Refactor code structure for improved readability and maintainability
This commit is contained in:
102
Modules/EncounterAlerts/EncounterAlerts.lua
Normal file
102
Modules/EncounterAlerts/EncounterAlerts.lua
Normal 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
|
||||
Reference in New Issue
Block a user