Compare with Previous | Blame | View Log
local RW = LibStub("AceAddon-3.0"):GetAddon("Raid Watch") local Plugin = {} RW.Plugins:SetDefaultModulePrototype(Plugin) function Plugin:OnInitialize() RW:RegisterPlugin(self) end function Plugin:OnEnable() if self.PluginEnable then self:PluginEnable() end RW.Callbacks:Fire("PluginEnabled", self) end function Plugin:OnDisable() if self.PluginDisable then self:PluginDisable() end RW.Callbacks:Fire("PluginDisabled", self) end function Plugin:RegisterCallback(event, func) assert(type(event) == "string", self:GetName()..": Usage self:RegisterCallbac(event[, func])") if func then assert(func and (type(func) == "string" or type(func) == "function"), self:GetName()..": Usage self:RegisterCallbac(event[, func])") end RW.RegisterCallback(self, event, func) end function Plugin:UnregisterCallback(event) assert(type(event) ~= "string", self:GetName()..": Usage self:UnregisterCallback(event)") RW.UnregisterCallback(self, event) end function Plugin:UnregisterAllCallbacks() RW.UnregisterAllCallbacks(self) end function Plugin:FireEvent(event, ...) assert(type(event) == "string", self:GetName()..": Usage self:FireEvent(event[, ...])") RW.Callbacks:Fire(event, ...) end