From 6f2def720ce753d047a54ce4e6c522c20f4ed226 Mon Sep 17 00:00:00 2001 From: andrew6180 <16847730+andrew6180@users.noreply.github.com> Date: Mon, 15 Jan 2024 09:18:25 -0700 Subject: [PATCH 01/21] LibSharedMedia: Ascension Fonts Upgrade --- .../LibSharedMedia-3.0/LibSharedMedia-3.0.lua | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/Kui_Nameplates/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua b/Kui_Nameplates/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua index 592c33e..15f0529 100644 --- a/Kui_Nameplates/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua +++ b/Kui_Nameplates/Libs/LibSharedMedia-3.0/LibSharedMedia-3.0.lua @@ -99,9 +99,9 @@ if locale == "koKR" then elseif locale == "zhCN" then LOCALE_MASK = lib.LOCALE_BIT_zhCN -- - SML_MT_font["伤害数字"] = [[Fonts\ZYKai_C.ttf]] - SML_MT_font["默认"] = [[Fonts\ZYKai_T.ttf]] - SML_MT_font["聊天"] = [[Fonts\ZYHei.ttf]] + SML_MT_font["伤害数字"] = [[Fonts\ARKai_C.ttf]] + SML_MT_font["默认"] = [[Fonts\ARKai_T.ttf]] + SML_MT_font["聊天"] = [[Fonts\ARHei.ttf]] -- lib.DefaultMedia["font"] = "默认" -- someone from zhCN please adjust if needed -- @@ -118,22 +118,35 @@ elseif locale == "zhTW" then elseif locale == "ruRU" then LOCALE_MASK = lib.LOCALE_BIT_ruRU -- - SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] - SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]] - SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS.TTF]] - SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] - SML_MT_font["Skurri"] = [[Fonts\SKURRI.TTF]] + SML_MT_font["2002"] = [[Fonts\2002.TTF]] + SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]] + SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]] + SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]] + SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]] + SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] + SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT___CYR.TTF]] + SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]] + SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]] + SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] + SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]] -- - lib.DefaultMedia.font = "Arial Narrow" + lib.DefaultMedia.font = "Friz Quadrata TT" -- else LOCALE_MASK = lib.LOCALE_BIT_western locale_is_western = true -- + SML_MT_font["2002"] = [[Fonts\2002.TTF]] + SML_MT_font["2002 Bold"] = [[Fonts\2002B.TTF]] + SML_MT_font["AR CrystalzcuheiGBK Demibold"] = [[Fonts\ARHei.TTF]] + SML_MT_font["AR ZhongkaiGBK Medium (Combat)"] = [[Fonts\ARKai_C.TTF]] + SML_MT_font["AR ZhongkaiGBK Medium"] = [[Fonts\ARKai_T.TTF]] SML_MT_font["Arial Narrow"] = [[Fonts\ARIALN.TTF]] SML_MT_font["Friz Quadrata TT"] = [[Fonts\FRIZQT__.TTF]] - SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS.TTF]] - SML_MT_font["Skurri"] = [[Fonts\SKURRI.TTF]] + SML_MT_font["MoK"] = [[Fonts\K_Pagetext.TTF]] + SML_MT_font["Morpheus"] = [[Fonts\MORPHEUS_CYR.TTF]] + SML_MT_font["Nimrod MT"] = [[Fonts\NIM_____.ttf]] + SML_MT_font["Skurri"] = [[Fonts\SKURRI_CYR.TTF]] -- lib.DefaultMedia.font = "Friz Quadrata TT" -- From ae058b6fc7d43c59beae35cb25154b6e7521bdd9 Mon Sep 17 00:00:00 2001 From: andrew6180 <16847730+andrew6180@users.noreply.github.com> Date: Mon, 15 Jan 2024 09:40:18 -0700 Subject: [PATCH 02/21] 263 --- Kui_Nameplates/Kui_Nameplates.toc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kui_Nameplates/Kui_Nameplates.toc b/Kui_Nameplates/Kui_Nameplates.toc index 324f619..c2f749c 100644 --- a/Kui_Nameplates/Kui_Nameplates.toc +++ b/Kui_Nameplates/Kui_Nameplates.toc @@ -1,7 +1,7 @@ ## Interface: 30300 ## Author: Kesava ## Title: Kui |cff9966ffNameplates|r -## Version: 262 +## Version: 263 ## Notes: Prettier nameplates. ## SavedVariables: KuiNameplatesGDB ## X-Curse-Packaged-Version: 262 From 1c881ef6739a9c55f75cc60dec48be04b9caacca Mon Sep 17 00:00:00 2001 From: andrew6180 <16847730+andrew6180@users.noreply.github.com> Date: Tue, 29 Jul 2025 09:16:04 -0700 Subject: [PATCH 03/21] Add popup to disable platebuffs or kui if both enabled --- Kui_Nameplates/Core/Config.lua | 18 +++++++++++++++++- Kui_Nameplates/Core/Core.lua | 4 ++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Kui_Nameplates/Core/Config.lua b/Kui_Nameplates/Core/Config.lua index 8ff5928..75ea2e6 100644 --- a/Kui_Nameplates/Core/Config.lua +++ b/Kui_Nameplates/Core/Config.lua @@ -1250,4 +1250,20 @@ do UpdateFrameSize ) end -end \ No newline at end of file +end + +StaticPopupDialogs.KUINAMEPLATES_INCOMPATIBLE = { + text = "KuiNameplates is not compatible with PlateBuffs. Please disable PlateBuffs or KuiNameplates.", + button1 = "Disable PlateBuffs", + button2 = "Disable KuiNameplates", + whileDead = 1, + OnButton1 = function() + DisableAddOn("PlateBuffs") + ReloadUI() + end, + OnButton2 = function() + DisableAddOn("KuiNameplates") + ReloadUI() + end, + hideOnEscape = 0, +} \ No newline at end of file diff --git a/Kui_Nameplates/Core/Core.lua b/Kui_Nameplates/Core/Core.lua index 1c2ee33..a7779e6 100644 --- a/Kui_Nameplates/Core/Core.lua +++ b/Kui_Nameplates/Core/Core.lua @@ -500,6 +500,10 @@ function addon:OnInitialize() -- on messages addon.Castbar = addon:GetModule("Castbar") addon.TankModule = addon:GetModule("TankMode") + + if IsAddOnLoaded("PlateBuffs") then + StaticPopup_Show("KUINAMEPLATES_INCOMPATIBLE") + end end ---------------------------------------------------------------------- enable -- function addon:OnEnable() From 7c35ddfa8dd9ef0d739c6c3a3312ae1e3bb6b73c Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Fri, 8 May 2026 04:03:12 +0200 Subject: [PATCH 04/21] ci: preserve upstream line endings (CRLF) for clean upstream diffs --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fa1385d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* -text From 7c7784eefa8b5ca5ebfac6c5d5d062f4bb8b6f28 Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Fri, 8 May 2026 23:21:50 +0200 Subject: [PATCH 05/21] Add CoAClassColors.lua: mirror RAID_CLASS_COLORS into CUSTOM_CLASS_COLORS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kui_Nameplates picks its colour source table once at load (Modules/ClassColours.lua:90 and Libs/Kui/Kui.lua:56-60): cc_table = CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS with no per-key fallback. When the !ClassColors addon is loaded it injects a vanilla-10-only CUSTOM_CLASS_COLORS, so the 22 CoA tokens silently fall through and class-coloured friendly names disappear (plus a nil-arg in kui.GetClassColour for the str path). New file mirrors any RAID_CLASS_COLORS entry that CUSTOM_CLASS_COLORS is missing, when !ClassColors is loaded. Idempotent — only fills nil keys, so user customisations win. RAID_CLASS_COLORS itself is left untouched (the Voljin/CoA client populates it from patch-B.MPQ → SharedXML/SharedConstants.lua). Same pattern as coa-omen and coa-shadowedunitframes' fixes. --- Kui_Nameplates/CoAClassColors.lua | 74 +++++++++++++++++++++++++++++++ Kui_Nameplates/Kui_Nameplates.toc | 9 ++++ 2 files changed, 83 insertions(+) create mode 100644 Kui_Nameplates/CoAClassColors.lua diff --git a/Kui_Nameplates/CoAClassColors.lua b/Kui_Nameplates/CoAClassColors.lua new file mode 100644 index 0000000..cc9b3de --- /dev/null +++ b/Kui_Nameplates/CoAClassColors.lua @@ -0,0 +1,74 @@ +-- CoAClassColors.lua +-- +-- Forwards the live client's RAID_CLASS_COLORS palette into +-- _G.CUSTOM_CLASS_COLORS so Kui_Nameplates renders Conquest-of-Azeroth +-- class names and bars correctly when the !ClassColors addon is +-- loaded. +-- +-- Background +-- ---------- +-- The CoA Voljin client (and the Ascension classic+ client) ship +-- Interface/SharedXML/SharedConstants.lua with all 32 class +-- file_strings populated in _G.RAID_CLASS_COLORS — 10 vanilla + HERO + +-- 21 CoA customs (BARBARIAN, WITCHDOCTOR, DEMONHUNTER, FLESHWARDEN, +-- MONK = Templar, PROPHET = Venomancer, …). +-- +-- Kui_Nameplates picks its source table once in +-- Modules/ClassColours.lua:90 with +-- cc_table = CUSTOM_CLASS_COLORS or RAID_CLASS_COLORS +-- and Libs/Kui/Kui.lua:56-60 has the same shape: +-- if CUSTOM_CLASS_COLORS then class = CUSTOM_CLASS_COLORS[class] +-- else class = RAID_CLASS_COLORS[class] +-- end +-- When !ClassColors is loaded it injects a separate +-- _G.CUSTOM_CLASS_COLORS populated from its own (vanilla-10-only) +-- defaults plus user overrides. There is *no* per-key fallback to +-- RAID_CLASS_COLORS, so on a !ClassColors-equipped client the 22 CoA +-- tokens silently miss and SetTextColor is called with a nil colour +-- (no class-coloured friendly names; nil-arg error in +-- kui.GetClassColour for the str path). +-- +-- Strategy +-- -------- +-- If CUSTOM_CLASS_COLORS exists at file-load time (i.e. !ClassColors +-- already loaded — Kui_Nameplates.toc declares it as an OptionalDep, +-- so it loads first when installed), copy any RAID_CLASS_COLORS entry +-- that CUSTOM_CLASS_COLORS is missing. Never overwrite — +-- !ClassColors user preferences and any other addon's earlier write +-- win. +-- +-- We deliberately don't touch RAID_CLASS_COLORS itself: the client +-- already populates it, and any value we'd choose here would be a +-- guess relative to the realm-authoritative palette in +-- SharedConstants.lua. +-- +-- Source of truth: _G.RAID_CLASS_COLORS at FrameXML load time +-- (Voljin/PTR realm: patch-B.MPQ → SharedXML/SharedConstants.lua). + +local CCC = _G.CUSTOM_CLASS_COLORS +if type(CCC) ~= "table" then return end + +local CC = _G.RAID_CLASS_COLORS +if type(CC) ~= "table" then return end + +local function colorStr(r, g, b) + return string.format("ff%02x%02x%02x", r * 255 + 0.5, g * 255 + 0.5, b * 255 + 0.5) +end + +local function unpackColor(c) + if type(c) ~= "table" then return end + if c.GetRGB then return c:GetRGB() end + return c.r, c.g, c.b +end + +for token, src in pairs(CC) do + if CCC[token] == nil then + local r, g, b = unpackColor(src) + if r and g and b then + CCC[token] = { + r = r, g = g, b = b, + colorStr = colorStr(r, g, b), + } + end + end +end diff --git a/Kui_Nameplates/Kui_Nameplates.toc b/Kui_Nameplates/Kui_Nameplates.toc index c2f749c..8161d58 100644 --- a/Kui_Nameplates/Kui_Nameplates.toc +++ b/Kui_Nameplates/Kui_Nameplates.toc @@ -3,6 +3,7 @@ ## Title: Kui |cff9966ffNameplates|r ## Version: 263 ## Notes: Prettier nameplates. +## OptionalDeps: !ClassColors ## SavedVariables: KuiNameplatesGDB ## X-Curse-Packaged-Version: 262 ## X-Curse-Project-Name: KuiNameplates @@ -13,5 +14,13 @@ Embeds.xml Locales.xml + +## CoA patches ## +# Mirror RAID_CLASS_COLORS into CUSTOM_CLASS_COLORS for the 22 CoA +# class tokens before any module captures cc_table. Loaded after +# Embeds (defensive — this file uses no libs) and before Core/Modules +# so ClassColours.lua:90 sees the populated CCC at OnInitialize time. +CoAClassColors.lua + Core.xml Modules.xml \ No newline at end of file From 4c5c8d42c32d1d5ac13279845fbe9a71c86b5e24 Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Fri, 8 May 2026 23:42:59 +0200 Subject: [PATCH 06/21] Bump version to 263-coa1 Marks this fork as carrying the CoAClassColors.lua patch, so users can tell at a glance (e.g. via /reload addon list) that they are running the guild-patched build. Suffix follows the coa-omen convention (3.0.9-coa1). --- Kui_Nameplates/Kui_Nameplates.toc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kui_Nameplates/Kui_Nameplates.toc b/Kui_Nameplates/Kui_Nameplates.toc index 8161d58..63ae847 100644 --- a/Kui_Nameplates/Kui_Nameplates.toc +++ b/Kui_Nameplates/Kui_Nameplates.toc @@ -1,7 +1,7 @@ ## Interface: 30300 ## Author: Kesava ## Title: Kui |cff9966ffNameplates|r -## Version: 263 +## Version: 263-coa1 ## Notes: Prettier nameplates. ## OptionalDeps: !ClassColors ## SavedVariables: KuiNameplatesGDB From 77fa7d7f49ac1c27654d7cd478ecacd64d89d282 Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Fri, 8 May 2026 23:44:50 +0200 Subject: [PATCH 07/21] Bump version to 264 Carries the CoAClassColors.lua patch on top of upstream 263. --- Kui_Nameplates/Kui_Nameplates.toc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kui_Nameplates/Kui_Nameplates.toc b/Kui_Nameplates/Kui_Nameplates.toc index 63ae847..a83c846 100644 --- a/Kui_Nameplates/Kui_Nameplates.toc +++ b/Kui_Nameplates/Kui_Nameplates.toc @@ -1,7 +1,7 @@ ## Interface: 30300 ## Author: Kesava ## Title: Kui |cff9966ffNameplates|r -## Version: 263-coa1 +## Version: 264 ## Notes: Prettier nameplates. ## OptionalDeps: !ClassColors ## SavedVariables: KuiNameplatesGDB From 7996489a1a7b335a64bc195b8380949f861fef4d Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Fri, 22 May 2026 21:05:32 +0200 Subject: [PATCH 08/21] fix: guard legacy InterfaceOptions globals for CoA client The CoA client's reworked Settings panel does not expose InterfaceOptionsCombatPanelNameplateClassColors or InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates, causing a nil-index error whenever the Combat options panel was shown. Guard each access in ClassColours and Castbar. --- Kui_Nameplates/Modules/Castbar.lua | 21 ++++++++++++++------- Kui_Nameplates/Modules/ClassColours.lua | 17 ++++++++++++----- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Kui_Nameplates/Modules/Castbar.lua b/Kui_Nameplates/Modules/Castbar.lua index bd3c7d3..c0ef8c6 100644 --- a/Kui_Nameplates/Modules/Castbar.lua +++ b/Kui_Nameplates/Modules/Castbar.lua @@ -402,13 +402,20 @@ function mod:OnInitialize() self.configChangedFuncs.display.cbheight.ro(sizes.cbheight) -- handle default interface cvars & checkboxes - InterfaceOptionsCombatPanel:HookScript( - "OnShow", - function() - InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates:SetChecked(true) - InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates:Disable() - end - ) + -- The CoA client's reworked Settings panel may not expose these legacy + -- globals; guard each access so a missing widget cannot error every time + -- the Combat options panel is shown. + if InterfaceOptionsCombatPanel then + InterfaceOptionsCombatPanel:HookScript( + "OnShow", + function() + if InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates then + InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates:SetChecked(true) + InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates:Disable() + end + end + ) + end InterfaceOptionsFrame:HookScript( "OnHide", function() diff --git a/Kui_Nameplates/Modules/ClassColours.lua b/Kui_Nameplates/Modules/ClassColours.lua index 76617e6..7f8402a 100644 --- a/Kui_Nameplates/Modules/ClassColours.lua +++ b/Kui_Nameplates/Modules/ClassColours.lua @@ -94,11 +94,18 @@ function mod:OnInitialize() self:SetEnabledState(self.db.profile.friendly) -- handle default interface cvars & checkboxes - InterfaceOptionsCombatPanel:HookScript("OnShow", function() - InterfaceOptionsCombatPanelNameplateClassColors:Disable() - InterfaceOptionsCombatPanelNameplateClassColors:SetChecked(mod.db.profile.enemy) - InterfaceOptionsCombatPanelNameplateClassColors.Enable = function() return end - end) + -- The CoA client's reworked Settings panel does not expose the legacy + -- InterfaceOptionsCombatPanel / NameplateClassColors checkbox, so guard + -- every access to avoid indexing a nil global. + if InterfaceOptionsCombatPanel then + InterfaceOptionsCombatPanel:HookScript("OnShow", function() + if InterfaceOptionsCombatPanelNameplateClassColors then + InterfaceOptionsCombatPanelNameplateClassColors:Disable() + InterfaceOptionsCombatPanelNameplateClassColors:SetChecked(mod.db.profile.enemy) + InterfaceOptionsCombatPanelNameplateClassColors.Enable = function() return end + end + end) + end InterfaceOptionsFrame:HookScript("OnHide", function() SetCVars() end) SetCVars() end From 87d6430a39a1e7480cd09925984e170484406ab9 Mon Sep 17 00:00:00 2001 From: Florian Berthold Date: Sat, 23 May 2026 13:42:17 +0200 Subject: [PATCH 09/21] 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 @@ + +