New Collectors/Items.lua mirrors the MysticScrolls async scanner: calls
GetItemInfo()/SetHyperlink() over an id list/range so the client fetches
the templates from the server. This both populates itemcache.wdb (for the
server-side re-import) and captures name/quality/ilvl/slot/icon/spell/
tooltip into the CoaExporterItemCache SavedVariable for direct export.
Commands:
/coae items scan scan the CoA custom block (2000000-2000099 + 2089618)
/coae items scan missing scan the known-missing id list
/coae items scan <from> <to> scan an explicit inclusive range
/coae items scan <id> single id
/coae items export|reset|status
Motivation: CoA per-class character-creation gear (ids 2000000+) is only
cached once a character has viewed it, so unseen items are absent from
both the client cache and db.exil.es. This scans them in without needing
to roll one character per class.
- New AE:GenerateMarkdownSpellbook(): one section per spell tab
(General, class, pet) with icon + name + db.ascension.gg link + rank.
Skips empty tabs.
- /coae export mdspellbook new slash subcommand
- /coae export md now appends a Spellbook section after
Talents in the full wiki page
- UI sidebar: "MD Spellbook" button added under Markdown (Wiki)
New Collectors/Spellbook.lua walks GetNumSpellTabs() and emits one entry
per tab with name, texture, offset, numSpells, and a spells[] array of
{ slot, name, rank, spellID, icon }.
3.3.5/Ascension API differences are handled defensively: name comes
from GetSpellBookItemInfo or vanilla GetSpellName; spellID is parsed
out of GetSpellLink (3.3.5 doesn't return it from GetSpellBookItemInfo);
icon falls back to GetSpellTexture if GetSpellInfo doesn't have it yet.
Wiring:
- CoaExporter.toc: load Collectors/Spellbook.lua after Talents
- Core.lua: AssembleExport() includes spellbook for all + spellbook
- Core.lua: HandleExport() accepts /coae export spellbook
- Core.lua: debug output shows tab + spell counts
- UI/ExportFrame.lua: "Spellbook" button in the Character section
Folds three previously-separate Lua addons into one for guild-member use:
- ascension-char-exporter (per-character JSON/Wiki.js Markdown via /ascx)
- CoA_SkillExporter (skills/dispels/passives catalog via /skilldump)
- CoA_TalentExporter (talent-tree catalog via /talentdumpall)
The two CoA catalog dumpers were ~90% identical entry-walkers. Pulled the
shared C_CharacterAdvancement.GetAllEntries() loop into Catalogs/Common.lua
and have Skills.lua / Talents.lua register collectors that share a single
scan pass (so /coae catalog all walks the entry list once, not twice).
Per-character collectors (Talents, Gear, Enchants, MysticScrolls,
MysticScrollProbe) and the AtlasLootAscension-derived ScrollCatalog data
are kept verbatim, just rebranded.
Slash interface:
/coae export {all|talents|gear|enchants|mdgear|mdenchants|md}
/coae catalog {all|skills|talents|dispels [class]|passives [class]|status}
/coae scrolls {scan|export|reset|status}
/coae sv on|off | debug | help
Aliases: /coaexp, /ascx, /asxc, plus legacy /skilldump /talentdumpall
/dispels /passives that map to the catalog subcommands.
SavedVariables: CoaExporterSaved, CoaExporterConfig, CoaExporterScrollCache,
CoaExporterCatalog (skills/dispels/levelPassives/talents/_meta).