diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1b02c..9c0ff52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Version 1.1.3 - 2021-10-06 +### Changed +- bumped version for all versions of WoW (Classic Era, Season of Mastery, BCC, Retail) +### Fixed +- error on missing options at first start +- updated Ace3.0 libraries for latest Shadowlands patch + ## Version 1.1.2 - 2021-05-23 ### Changed - adopted to BigWigs release script to better support different game packages diff --git a/Grichelde.toc b/Grichelde.toc index 00b4cfd..481631e 100644 --- a/Grichelde.toc +++ b/Grichelde.toc @@ -1,13 +1,13 @@ -## Interface: 11307 -## Interface-Classic: 11307 -## Interface-BCC: 20501 -## Interface-Retail: 90005 +## Interface: 11401 +## Interface-Classic: 11401 +## Interface-BCC: 20502 +## Interface-Retail: 90100 ## Title: Grichelde ## Notes: Replaces characters of your chat input line before sending. ## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden. #@debug@ -## Version: 1.1.2 +## Version: 1.1.3 #@end-debug@ #@non-debug@ # ## Version: @project-version@ @@ -17,19 +17,19 @@ #@version-classic@ ## X-Build: Classic -## X-Compatible: 20501 -## X-Compatible: 90005 +## X-Compatible: 20502 +## X-Compatible: 90100 #@end-version-classic@ #@non-version-classic@ #@version-bcc@ # ## X-Build: BCC -# ## X-Compatible: 11307 -# ## X-Compatible: 90005 +# ## X-Compatible: 11401 +# ## X-Compatible: 90100 #@end-version-bcc@ #@version-retail@ # ## X-Build: Retail -# ## X-Compatible: 11307 -# ## X-Compatible: 20501 +# ## X-Compatible: 11401 +# ## X-Compatible: 20502 #@end-version-retail@ #@end-non-version-classic@ diff --git a/GricheldeOptions.lua b/GricheldeOptions.lua index 50e58fd..f5873b8 100644 --- a/GricheldeOptions.lua +++ b/GricheldeOptions.lua @@ -254,7 +254,7 @@ function Grichelde:CreateOptionsUI() name = self.L.Options_Help_Examples_Import_Name, -- desc = self.L.Options_Help_Examples_Import_Desc, desc = function() return format(self.L.Options_Help_Examples_Import_Desc, cPrefix(self.L.Options_Help_Examples[selectedExample].name)) end, - func = function(info) self:ImportExample(selectedExample) end, + func = function(_) self:ImportExample(selectedExample) end, }, spacer4 = { @@ -617,17 +617,19 @@ function Grichelde:RefreshOptions(replacementsTable) self:TracePrint("RefreshOptions : DB table:") self:TracePrint(replacementsTable) - -- remove all previous replacements from options (not DB), except header and buttons - local replacements = self.options.args.replacements.args or {} - for k, _ in pairs(replacements) do - if (k and (find(k, "^replacement_") ~= nil)) then - replacements[k] = nil + if (self.options ~= nil) then + -- remove all previous replacements from options (not DB), except header and buttons + local replacements = self.options.args.replacements.args or {} + for k, _ in pairs(replacements) do + if (k and (find(k, "^replacement_") ~= nil)) then + replacements[k] = nil + end end - end - for replName, _ in pairs(replacementsTable or {}) do - local _, replNumber = self:SplitOnFirstMatch(replName, "_") - replacements[replName] = self:CreateMapping(toNumber(replNumber)) + for replName, _ in pairs(replacementsTable or {}) do + local _, replNumber = self:SplitOnFirstMatch(replName, "_") + replacements[replName] = self:CreateMapping(toNumber(replNumber)) + end end -- self:TracePrint("RefreshOptions : UI options:") @@ -635,7 +637,9 @@ function Grichelde:RefreshOptions(replacementsTable) end function Grichelde:RefreshDialog() - self.dialog:ConfigTableChanged(nil, self.name) + if (self.dialog ~= nil) then + self.dialog:ConfigTableChanged(nil, self.name) + end end function Grichelde:AddEmptyMapping() diff --git a/Libs/AceAddon-3.0/AceAddon-3.0.lua b/Libs/AceAddon-3.0/AceAddon-3.0.lua index 2b2a00e..1b63bd1 100644 --- a/Libs/AceAddon-3.0/AceAddon-3.0.lua +++ b/Libs/AceAddon-3.0/AceAddon-3.0.lua @@ -28,9 +28,9 @@ -- end -- @class file -- @name AceAddon-3.0.lua --- @release $Id: AceAddon-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceAddon-3.0.lua 1238 2020-08-28 16:18:42Z nevcairiel $ -local MAJOR, MINOR = "AceAddon-3.0", 12 +local MAJOR, MINOR = "AceAddon-3.0", 13 local AceAddon, oldminor = LibStub:NewLibrary(MAJOR, MINOR) if not AceAddon then return end -- No Upgrade needed. @@ -601,10 +601,20 @@ function AceAddon:IterateAddonStatus() return pairs(self.statuses) end function AceAddon:IterateEmbedsOnAddon(addon) return pairs(self.embeds[addon]) end function AceAddon:IterateModulesOfAddon(addon) return pairs(addon.modules) end +-- Blizzard AddOns which can load very early in the loading process and mess with Ace3 addon loading +local BlizzardEarlyLoadAddons = { + Blizzard_DebugTools = true, + Blizzard_TimeManager = true, + Blizzard_BattlefieldMap = true, + Blizzard_MapCanvas = true, + Blizzard_SharedMapDataProviders = true, + Blizzard_CombatLog = true, +} + -- Event Handling local function onEvent(this, event, arg1) - -- 2011-08-17 nevcairiel - ignore the load event of Blizzard_DebugTools, so a potential startup error isn't swallowed up - if (event == "ADDON_LOADED" and arg1 ~= "Blizzard_DebugTools") or event == "PLAYER_LOGIN" then + -- 2020-08-28 nevcairiel - ignore the load event of Blizzard addons which occur early in the loading process + if (event == "ADDON_LOADED" and (arg1 == nil or not BlizzardEarlyLoadAddons[arg1])) or event == "PLAYER_LOGIN" then -- if a addon loads another addon, recursion could happen here, so we need to validate the table on every iteration while(#AceAddon.initializequeue > 0) do local addon = tremove(AceAddon.initializequeue, 1) diff --git a/Libs/AceAddon-3.0/AceAddon-3.0.xml b/Libs/AceAddon-3.0/AceAddon-3.0.xml index e6ad639..dcf24c7 100644 --- a/Libs/AceAddon-3.0/AceAddon-3.0.xml +++ b/Libs/AceAddon-3.0/AceAddon-3.0.xml @@ -1,4 +1,4 @@