29b33e2 - Create slash command to load config addon
authorAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Fri, 29 Dec 2017 08:47:36 +0000
committerAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Fri, 29 Dec 2017 08:47:36 +0000
RaidFrameCustomization/Core.lua
RaidFrameCustomizationConfig/IndicatorsConfig.lua
RaidFrameCustomizationConfig/RaidFrameCustomizationConfig.toc

index 5ddbb44..18dbf08 100644 (file)
@@ -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
index 5cbd343..29522f8 100644 (file)
@@ -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");
index aafd06c..9d6193d 100644 (file)
@@ -4,6 +4,7 @@
 ## Author: schyrio
 ## Notes: Configuration for RaidFrameCustomization
 ## LoadOnDemand: 1
+## Dependencies: RaidFrameCustomization
 
 embeds.xml