File Details
VersionCheck-v1.2.3
- R
- Mar 4, 2026
- 7.81 KB
- 1.7K
- 3.4.3+2
- Classic + 1
File Name
VersionCheck-1.0-VersionCheck-v1.2.3.zip
Supported Versions
- 3.4.3
- 2.5.5
- 1.15.8
VersionCheck-1.0
VersionCheck-v1.2.3 (2026-03-04)
Full Changelog Previous Releases
- chore: update workspace config
- Remove stale fastguildinvite folder reference
- Update WoW API extension to ketho.wow-api-0.22.3
- fix: restore Enable() fallback for non-object callers (MINOR 6)
Regression introduced in MINOR 4: Enable() was rewritten to require
hostAddon to have a GetName() method, with a silent early return if not.
The old API accepted plain strings and bare tables without GetName.
Addons calling Enable() as:
VC:Enable("MyAddonName") -- string name
VC:Enable(self) -- table with no GetName method
...were silently skipped, causing only the first registered addon
to appear as active and all others to be excluded from the batch.
Fix: Enable() now accepts either a table with GetName() or a plain
string. The host reference is stored as nil for string-based callers
(Version falls back to "unknown", which is already handled everywhere). - fix: replace C_Timer batch trigger with PLAYER_ENTERING_WORLD (MINOR 5)
Root cause of init freeze and missing addon results:- C_Timer.After(10) was a guess at when all addons had loaded.
If the batch fired before an addon called Enable(), that addon was
silently excluded (batchFired=true blocked any new scheduling). - RegisterComm + SendCommMessage firing at an arbitrary t+10s during
the loading screen transition could still hit a busy frame.
Fix: use a PLAYER_ENTERING_WORLD event frame instead. - Guaranteed to fire AFTER every addon has loaded and called Enable()
- Guild channel is fully available at that point
- Frame is idempotent (UnregisterAllEvents guards repeated loads via
LibStub from multiple embedded copies) - Removed batchTimer field; scheduling is now event-driven not timer-driven
Also: - Restored non-debug print for "no responses received" so users can
see the outcome without enabling debug mode - TriggerVersionCheck legacy shim now correctly re-fires FireBatch
after PLAYER_ENTERING_WORLD has already occurred
- C_Timer.After(10) was a guess at when all addons had loaded.
- refactor!: redesign protocol to use 2 shared library prefixes (MINOR 4)
Fixes critical bug: Blizzard caps registered addon msg prefixes at 8.
The old design used 2 prefixes per host addon, causing silent failure
beyond 4 addons. This redesign uses exactly 2 fixed prefixes for the
entire library regardless of how many addons embed it.
Protocol changes:- Replace per-addon prefixes (e.g. GUILDSHOPPINGLIST_VC) with two
fixed library-wide prefixes: VC10_REQ and VC10_RSP - Addon identity moves from the channel into the serialized payload
- RegisterComm now called once at library level, not once per addon
Batch broadcast: - All Enable() calls within 10s are coalesced into a single GUILD
broadcast: - Recipients reply with only the addons they also have installed in
one whisper instead of N separate whispers - Reduces worst-case traffic from (N addons * M members) whispers
to M whispers total
Other improvements: - FireBatch() replaces per-host C_Timer.After spam; one library timer
handles all hosts with a single 12s collection window - Removed dead lowestSender/lowestVersion variables
- Removed GuildShoppingList_Config coupling from slash commands
- Legacy shims kept for TriggerVersionCheck/SendVersionCheck/
TriggerVersionCheckForHost; they re-arm the batch mechanism - Enable() API is unchanged; host addons need no modification
- Replace per-addon prefixes (e.g. GUILDSHOPPINGLIST_VC) with two

