From 87d6430a39a1e7480cd09925984e170484406ab9 Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Sat, 23 May 2026 13:42:17 +0200 Subject: [PATCH] chore(libs): sync Ace3 to coa-ace3 (WoWUIDev master @ 52e5f2c) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bring every embedded Ace3 / CallbackHandler / LibStub copy in line with the canonical Exiles/coa-ace3 bundle so LibStub resolution is predictable across all Exiles forks regardless of which addons are enabled. Libraries updated in this fork: AceAddon-3.0 13 (12 → 13) AceConfig-3.0 3 (2 → 3) AceConfigCmd-3.0 14 (12 → 14) AceConfigDialog-3.0 92 (50 → 92) AceConfigRegistry-3.0 22 (12 → 22) AceDB-3.0 33 (27 → 33) AceDBOptions-3.0 15 (12 → 15) AceEvent-3.0 4 AceGUI-3.0 41 (33 → 41) AceLocale-3.0 6 (2 → 6) AceTimer-3.0 17 (5 → 17) CallbackHandler-1.0 8 (6 → 8) LibStub 2 --- .../Libs/AceAddon-3.0/AceAddon-3.0.lua | 55 +- .../Libs/AceAddon-3.0/AceAddon-3.0.xml | 4 + .../Libs/AceConfig-3.0/AceConfig-3.0.lua | 13 +- .../AceConfigCmd-3.0/AceConfigCmd-3.0.lua | 176 ++--- .../AceConfigDialog-3.0.lua | 716 +++++++++++------- .../AceConfigRegistry-3.0.lua | 75 +- Kui_Nameplates/Libs/AceDB-3.0/AceDB-3.0.lua | 84 +- Kui_Nameplates/Libs/AceDB-3.0/AceDB-3.0.xml | 4 + .../AceDBOptions-3.0/AceDBOptions-3.0.lua | 312 ++++---- .../AceDBOptions-3.0/AceDBOptions-3.0.xml | 4 + .../Libs/AceEvent-3.0/AceEvent-3.0.lua | 2 +- .../Libs/AceEvent-3.0/AceEvent-3.0.xml | 4 + Kui_Nameplates/Libs/AceGUI-3.0/AceGUI-3.0.lua | 517 +++++++++---- .../AceGUIContainer-BlizOptionsGroup.lua | 20 +- .../widgets/AceGUIContainer-DropDownGroup.lua | 10 +- .../widgets/AceGUIContainer-Frame.lua | 50 +- .../widgets/AceGUIContainer-InlineGroup.lua | 5 +- .../widgets/AceGUIContainer-ScrollFrame.lua | 28 +- .../widgets/AceGUIContainer-TabGroup.lua | 245 +++++- .../widgets/AceGUIContainer-TreeGroup.lua | 185 +++-- .../widgets/AceGUIContainer-Window.lua | 129 ++-- .../widgets/AceGUIWidget-Button.lua | 19 +- .../widgets/AceGUIWidget-CheckBox.lua | 73 +- .../widgets/AceGUIWidget-ColorPicker.lua | 108 ++- .../widgets/AceGUIWidget-DropDown-Items.lua | 162 ++-- .../widgets/AceGUIWidget-DropDown.lua | 317 ++++---- .../widgets/AceGUIWidget-EditBox.lua | 68 +- .../widgets/AceGUIWidget-Heading.lua | 4 +- .../AceGUI-3.0/widgets/AceGUIWidget-Icon.lua | 18 +- .../widgets/AceGUIWidget-InteractiveLabel.lua | 9 +- .../widgets/AceGUIWidget-Keybinding.lua | 35 +- .../AceGUI-3.0/widgets/AceGUIWidget-Label.lua | 49 +- .../widgets/AceGUIWidget-MultiLineEditBox.lua | 100 ++- .../widgets/AceGUIWidget-Slider.lua | 40 +- .../Libs/AceLocale-3.0/AceLocale-3.0.lua | 41 +- .../Libs/AceLocale-3.0/AceLocale-3.0.xml | 4 + .../Libs/AceTimer-3.0/AceTimer-3.0.lua | 539 +++++-------- .../Libs/AceTimer-3.0/AceTimer-3.0.xml | 4 + .../CallbackHandler-1.0.lua | 72 +- .../CallbackHandler-1.0.xml | 4 + Kui_Nameplates/Libs/LibStub/LibStub.lua | 10 +- 41 files changed, 2530 insertions(+), 1784 deletions(-) create mode 100644 Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.xml create mode 100644 Kui_Nameplates/Libs/AceDB-3.0/AceDB-3.0.xml create mode 100644 Kui_Nameplates/Libs/AceDBOptions-3.0/AceDBOptions-3.0.xml create mode 100644 Kui_Nameplates/Libs/AceEvent-3.0/AceEvent-3.0.xml create mode 100644 Kui_Nameplates/Libs/AceLocale-3.0/AceLocale-3.0.xml create mode 100644 Kui_Nameplates/Libs/AceTimer-3.0/AceTimer-3.0.xml create mode 100644 Kui_Nameplates/Libs/CallbackHandler-1.0/CallbackHandler-1.0.xml diff --git a/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.lua b/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.lua index 603ce07..00e4e48 100644 --- a/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.lua +++ b/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.lua @@ -30,7 +30,7 @@ -- @name AceAddon-3.0.lua -- @release $Id$ -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. @@ -49,10 +49,6 @@ local select, pairs, next, type, unpack = select, pairs, next, type, unpack local loadstring, assert, error = loadstring, assert, error local setmetatable, getmetatable, rawset, rawget = setmetatable, getmetatable, rawset, rawget --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: LibStub, IsLoggedIn, geterrorhandler - --[[ xpcall safecall implementation ]] @@ -62,43 +58,12 @@ local function errorhandler(err) return geterrorhandler()(err) end -local function CreateDispatcher(argCount) - local code = [[ - local xpcall, eh = ... - local method, ARGS - local function call() return method(ARGS) end - - local function dispatch(func, ...) - method = func - if not method then return end - ARGS = ... - return xpcall(call, eh) - end - - return dispatch - ]] - - local ARGS = {} - for i = 1, argCount do ARGS[i] = "arg"..i end - code = code:gsub("ARGS", tconcat(ARGS, ", ")) - return assert(loadstring(code, "safecall Dispatcher["..argCount.."]"))(xpcall, errorhandler) -end - -local Dispatchers = setmetatable({}, {__index=function(self, argCount) - local dispatcher = CreateDispatcher(argCount) - rawset(self, argCount, dispatcher) - return dispatcher -end}) -Dispatchers[0] = function(func) - return xpcall(func, errorhandler) -end - local function safecall(func, ...) -- we check to see if the func is passed is actually a function here and don't error when it isn't -- this safecall is used for optional functions like OnInitialize OnEnable etc. When they are not -- present execution should continue without hinderance if type(func) == "function" then - return Dispatchers[select('#', ...)](func, ...) + return xpcall(func, errorhandler, ...) end end @@ -632,10 +597,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) @@ -671,4 +646,4 @@ if oldminor and oldminor < 10 then tinsert(addon.orderedModules, module) end end -end \ No newline at end of file +end diff --git a/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.xml b/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.xml new file mode 100644 index 0000000..e6ad639 --- /dev/null +++ b/Kui_Nameplates/Libs/AceAddon-3.0/AceAddon-3.0.xml @@ -0,0 +1,4 @@ + +