mirror of
https://github.com/brues-code/SuperCleveRoidMacros.git
synced 2026-09-16 03:38:00 +00:00
Fix addon initialization order with guard checks
Refactor mouseover extensions to split initialization into two phases: OnLoad (empty) and OnAddOnLoad (actual setup). This ensures hooks are only registered when the target addon's globals are defined. Add guard clauses to check for required functions before hooking. Also remove Cursive's premature initialization attempt.
This commit is contained in:
@@ -47,11 +47,14 @@ function Extension.OnLeave()
|
||||
CleveRoids.ClearMouseoverFrom("native")
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not CT_RA_MemberFrame_OnEnter then return end
|
||||
Extension.Hook("CT_RA_MemberFrame_OnEnter", "OnEnter")
|
||||
Extension.HookMethod(_G["GameTooltip"], "Hide", "OnLeave")
|
||||
Extension.HookMethod(_G["GameTooltip"], "FadeOut", "OnLeave")
|
||||
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("CT_RaidAssist", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("CT_RaidAssist", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -23,7 +23,9 @@ function Extension.SetHook(widget)
|
||||
end)
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not CT_AssistFrame then
|
||||
return
|
||||
end
|
||||
@@ -35,4 +37,4 @@ function Extension.OnLoad()
|
||||
Extension.SetHook(CT_AssistFrame_Drag)
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("CT_UnitFrames", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("CT_UnitFrames", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -74,9 +74,4 @@ function Extension.OnLoad()
|
||||
end)
|
||||
end
|
||||
|
||||
-- Also try to hook immediately in case Cursive is already loaded
|
||||
if Cursive and Cursive.ui then
|
||||
HookCursiveUI()
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("Cursive", Extension.OnLoad)
|
||||
|
||||
@@ -25,7 +25,10 @@ function Extension.OnLeaveElement()
|
||||
CleveRoids.ClearMouseoverFrom("native")
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not DUF_UnitFrame_OnEnter then return end
|
||||
CleveRoids.ClearHooks()
|
||||
Extension.Hook("DUF_UnitFrame_OnEnter", "OnEnterFrame")
|
||||
Extension.Hook("DUF_UnitFrame_OnLeave", "OnLeaveFrame")
|
||||
@@ -34,4 +37,4 @@ function Extension.OnLoad()
|
||||
Extension.Hook("DUF_Element_OnLeave", "OnLeaveElement")
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("DiscordUnitFrames", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("DiscordUnitFrames", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -18,7 +18,10 @@ function Extension.OnLeave()
|
||||
CleveRoids.ClearMouseoverFrom("native")
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not GridFrame then return end
|
||||
CleveRoids.Hooks.Grid = { CreateFrames = GridFrame.frameClass.prototype.CreateFrames}
|
||||
GridFrame.frameClass.prototype.CreateFrames = CleveRoids.GrdCreateFrames
|
||||
end
|
||||
@@ -106,4 +109,4 @@ function CleveRoids:GrdCreateFrames()
|
||||
ClickCastFrames[self.frame] = true
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("Grid", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("Grid", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -38,7 +38,9 @@ function CleveRoids:NotGrid_CreateFrames()
|
||||
end
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
-- NotGrid loads before CleveRoids, so if NotGrid is enabled, then it's global will exist.
|
||||
if not NotGrid then
|
||||
return
|
||||
@@ -49,4 +51,4 @@ function Extension.OnLoad()
|
||||
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("NotGrid", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("NotGrid", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -18,7 +18,10 @@ function Extension.OnLeave()
|
||||
CleveRoids.ClearMouseoverFrom("native")
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not PerfectRaid then return end
|
||||
CleveRoids.Hooks.PerfectRaid = { CreateFrame = PerfectRaid.CreateFrame }
|
||||
PerfectRaid.CreateFrame = CleveRoids.PerfectRaidCreateFrame
|
||||
end
|
||||
@@ -129,4 +132,4 @@ function CleveRoids.PerfectRaidCreateFrame(self, num)
|
||||
--]]
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("PerfectRaid", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("PerfectRaid", Extension.OnAddOnLoad)
|
||||
|
||||
@@ -16,10 +16,13 @@ function Extension.OnLeave()
|
||||
CleveRoids.ClearMouseoverFrom("native")
|
||||
end
|
||||
|
||||
function Extension.OnLoad()
|
||||
function Extension.OnLoad() end
|
||||
|
||||
function Extension.OnAddOnLoad()
|
||||
if not sRaidFrames then return end
|
||||
Extension.HookMethod(sRaidFrames, "UnitTooltip", "OnEnter")
|
||||
Extension.HookMethod(_G["GameTooltip"], "Hide", "OnLeave")
|
||||
Extension.HookMethod(_G["GameTooltip"], "FadeOut", "OnLeave")
|
||||
end
|
||||
|
||||
EventUtil.ContinueOnAddOnLoaded("sRaidFrames", Extension.OnLoad)
|
||||
EventUtil.ContinueOnAddOnLoaded("sRaidFrames", Extension.OnAddOnLoad)
|
||||
|
||||
Reference in New Issue
Block a user