You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
687 B

local _, addon = ...
local addonCallbacks = {}
--[[ namespace:HookAddOn(_addonName_, _callback_)
Registers a hook for when an addon with the name `addonName` loads with a `callback` function.
--]]
function addon:HookAddOn(addonName, callback)
if C_AddOns.IsAddOnLoaded(addonName) then
callback(self)
else
table.insert(addonCallbacks, {
addonName = addonName,
callback = callback,
})
end
end
addon:RegisterEvent('ADDON_LOADED', function(self, addonName)
for _, info in next, addonCallbacks do
if info.addonName == addonName then
local successful, err = pcall(info.callback)
if not successful then
error(err)
end
end
end
end)