From: Aleksi Blinnikka Date: Fri, 29 Dec 2017 08:47:36 +0000 (+0200) Subject: Create slash command to load config addon X-Git-Url: https://www.aleksib.fi/git/wowui.git/commitdiff_plain/29b33e2d8f2b3e2a90b59217bc0a2e0d6bf4ebd8?ds=sidebyside Create slash command to load config addon --- diff --git a/RaidFrameCustomization/Core.lua b/RaidFrameCustomization/Core.lua index 5ddbb44..18dbf08 100644 --- a/RaidFrameCustomization/Core.lua +++ b/RaidFrameCustomization/Core.lua @@ -38,7 +38,6 @@ function RaidFrameCustomization:OnInitialize() self.db.RegisterCallback(self, "OnProfileChanged", "RefreshConfig"); self.db.RegisterCallback(self, "OnProfileCopied", "RefreshConfig"); self.db.RegisterCallback(self, "OnProfileReset", "RefreshConfig"); - self:SetupOptions(); end function RaidFrameCustomization:OnEnable() @@ -54,3 +53,30 @@ function RaidFrameCustomization:OnDisable() end end end + +SLASH_RAIDFRAMECUSTOM1 = "/raidframecustom"; +function SlashCmdList.RAIDFRAMECUSTOM(msg, editBox) + local loaded, finished = IsAddonLoaded("RaidFrameCustomizationConfig"); + if not loaded then + local loaded, reason = LoadAddon("RaidFrameCustomizationConfig"); + if not loaded then + if reason == "DISABLED" then + print("RaidFrameCustomizationConfig is disabled"); + elseif reason == "MISSING" then + print("RaidFrameCustomizationConfig is missing"); + elseif reason == "CORRUPT" then + print("RaidFrameCustomizationConfig is corrupt"); + elseif reason == "INCOMPATIBLE" then + print("RaidFrameCustomizationConfig is incompatible"); + elseif reason == "INTERFACE_VERSION" then + print("RaidFrameCustomizationConfig has wrong interface version"); + end + return; + end + elseif not finished then + -- slash command sent again when loading process is in progress + return; + end + + InterfaceOptionsFrame_OpenToCategory(RaidFrameCustomization.optionsFrames.Indicators); +end diff --git a/RaidFrameCustomizationConfig/IndicatorsConfig.lua b/RaidFrameCustomizationConfig/IndicatorsConfig.lua index 5cbd343..29522f8 100644 --- a/RaidFrameCustomizationConfig/IndicatorsConfig.lua +++ b/RaidFrameCustomizationConfig/IndicatorsConfig.lua @@ -115,15 +115,13 @@ local function createOptionsTable(self) return options; end -function RaidFrameCustomization:SetupOptions() - local profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db); - local options = createOptionsTable(self); - local config = LibStub("AceConfig-3.0"); - config:RegisterOptionsTable("Indicators", options); - config:RegisterOptionsTable("Indicators Profiles", profiles); +local profiles = LibStub("AceDBOptions-3.0"):GetOptionsTable(RaidFrameCustomization.db); +local options = createOptionsTable(RaidFrameCustomization); +local config = LibStub("AceConfig-3.0"); +config:RegisterOptionsTable("Indicators", options); +config:RegisterOptionsTable("Indicators Profiles", profiles); - local dialog = LibStub("AceConfigDialog-3.0"); - self.optionsFrames = {}; - self.optionsFrames.Indicators = dialog:AddToBlizOptions("Indicators", "Indicators"); - self.optionsFrames.Profile = dialog:AddToBlizOptions("Indicators Profiles", "Profiles", "Indicators"); -end +local dialog = LibStub("AceConfigDialog-3.0"); +RaidFrameCustomization.optionsFrames = {}; +RaidFrameCustomization.optionsFrames.Indicators = dialog:AddToBlizOptions("Indicators", "Indicators"); +RaidFrameCustomization.optionsFrames.Profile = dialog:AddToBlizOptions("Indicators Profiles", "Profiles", "Indicators"); diff --git a/RaidFrameCustomizationConfig/RaidFrameCustomizationConfig.toc b/RaidFrameCustomizationConfig/RaidFrameCustomizationConfig.toc index aafd06c..9d6193d 100644 --- a/RaidFrameCustomizationConfig/RaidFrameCustomizationConfig.toc +++ b/RaidFrameCustomizationConfig/RaidFrameCustomizationConfig.toc @@ -4,6 +4,7 @@ ## Author: schyrio ## Notes: Configuration for RaidFrameCustomization ## LoadOnDemand: 1 +## Dependencies: RaidFrameCustomization embeds.xml