10 Commits

Author SHA1 Message Date
florian.berthold c88e53d18b fix(libs): pcall AceGUI OnGamePadButtonDown (3.3.5 has no gamepad script type)
release / release (push) Successful in 3s
2026-05-29 20:23:32 +02:00
florian.berthold b9bb16f632 fix(MultiCast): nil-safe Enum.ClassMask guard so file-load can't crash for custom classes 2026-05-29 10:43:54 +02:00
florian.berthold cd2a99bd02 fix(CoAAuraConditionals): stop refreshing on PLAYER_ENTERING_WORLD
release / release (push) Successful in 3s
Calling bar:UpdateStates() on every zone load was the most likely path
to the "AddOn 'Bartender4' prevented the call of the secure function
'SecureStateDriverManager:SetAttribute()'" warning — RegisterStateDriver
runs internally and every zone fired it across all bars, sometimes
while Bartender's own init was still resolving secure state.

- Drop PLAYER_ENTERING_WORLD as a trigger. Bartender's own init handles
  the initial state; UPDATE_SHAPESHIFT_FORMS fires when forms become
  resolvable on login, so the original intent still holds.
- Cache the shapeshift-form signature and skip the refresh if it hasn't
  actually changed since last run. Avoids redundant secure attribute
  churn from routine UPDATE_SHAPESHIFT_FORMS spam.
- Combat-lockdown guard + PLAYER_REGEN_ENABLED queue-drain unchanged.
2026-05-25 12:04:14 +02:00
florian.berthold b23c559a90 fix(libs): pick up coa-ace3 9583952 (AceDB falsy-defaults PR #10 backport)
Re-sync after coa-ace3 9583952 backported WoWUIDev/Ace3 PR #10 which fixes
the AceDB-3.0 simple-value defaults metatable: previously falsy defaults
like ["*"] = false read back as nil because of `k2~=nil and v or nil`
short-circuiting. Now they round-trip correctly.
2026-05-24 19:31:41 +02:00
florian.berthold 4db9fd8de4 fix(libs): pick up coa-ace3 3ec2009 (BlizOptionsGroup + Settings.* CoA-compat)
Re-sync after coa-ace3 3ec2009 added two CoA-compat patches:
  - AceGUI-3.0/widgets/AceGUIContainer-BlizOptionsGroup.lua: parent
    falls back to UIParent when InterfaceOptionsFramePanelContainer is nil
  - AceConfig-3.0/AceConfigDialog-3.0: Settings.* block guarded with
    fallback to InterfaceOptions_AddCategory on WotLK-era clients

Without these, every addon registering a Blizzard Interface Options
panel via AceConfigDialog errors on load on the CoA client.
2026-05-24 17:41:26 +02:00
florian.berthold 3fb81c08a0 fix: enable stance/state bars for CoA custom classes with shapeshift forms
Vanilla Bartender4 assumes only DRUID/WARRIOR/WARLOCK/PRIEST/ROGUE/HERO have
shapeshift forms. CoA custom classes (Witchdoctor, Templar, …) can register
forms late at runtime and aren't in the whitelist, so the stance/state bar
never came up for them.

StanceBar.lua:
  - ApplyConfig() no longer Disable()s the module when GetNumShapeshiftForms()
    is 0 at config time. A disabled module never re-enables on
    UPDATE_SHAPESHIFT_FORMS, so late-registered forms were lost. We now just
    hide the bar frame.
  - Register UPDATE_SHAPESHIFT_FORMS and PLAYER_ENTERING_WORLD on the module
    itself and re-Enable() / show the bar when forms appear after the fact.

Options/Bar.lua:
  - The 'Hide in Stance/Form' visibility option was gated by a hard-coded
    stanceClasses whitelist. Add an OR-fallback on GetNumShapeshiftForms() > 0
    so CoA classes with forms get the UI.

StateBar.lua:
  - DefaultStanceMap only had vanilla entries. For unknown classes with live
    forms, synthesise a generic { id="formN", index=N } map at runtime so
    UpdateStates() can wire stance-based action bar swaps.
2026-05-24 17:39:15 +02:00
florian.berthold f8cfedfc06 fix(MultiCast): let CoA custom classes (Witchdoctor) get the totem bar
Both MultiCastBar.lua and Options/MultiCastBar.lua hard-coded a class-mask
gate of SHAMAN|HERO, which doesn't know about CoA custom classes. As a
result, Witchdoctor (and any other CoA class the engine produces a totem
bar for) never had Bartender's wrapper module register, leaving the totem
bar un-skinned / un-configurable.

Keep the original mask check as the fast path, but fall through and load
the module when MultiCastActionBarFrame already exists — the engine only
creates that frame for classes that actually use the totem bar, so it's a
reliable class-agnostic test.
2026-05-23 16:01:06 +02:00
florian.berthold e8e4d7ae66 fix(libs): pick up coa-ace3 d422ad3 (FileDataID → string paths)
Re-sync after coa-ace3 d422ad3 which converted 42 numeric FileDataIDs in
Set*Texture() calls back to string paths. Upstream Ace3 uses FDIDs which
silently fail on WoW 3.3.5 / CoA, rendering color swatches, checkboxes
and window chrome as solid-red placeholders.
2026-05-23 14:03:40 +02:00
florian.berthold 6369a29de1 chore(libs): sync Ace3 to coa-ace3 (WoWUIDev master @ 52e5f2c)
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  (5 → 13)
  AceConfig-3.0          3  (2 → 3)
  AceConfigCmd-3.0       14  (12 → 14)
  AceConfigDialog-3.0    92  (48 → 92)
  AceConfigRegistry-3.0  22  (12 → 22)
  AceConsole-3.0         7
  AceDB-3.0              33  (20 → 33)
  AceDBOptions-3.0       15  (12 → 15)
  AceEvent-3.0           4  (3 → 4)
  AceGUI-3.0             41  (33 → 41)
  AceHook-3.0            9  (5 → 9)
  AceLocale-3.0          6  (2 → 6)
  CallbackHandler-1.0    8  (5 → 8)
  LibStub                2
2026-05-23 13:42:43 +02:00
florian.berthold 1dd4bb7060 Create Subfolder 2026-05-19 21:47:15 +02:00