103 lines
3.4 KiB
Lua
103 lines
3.4 KiB
Lua
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
|