API GetSpellBookItemName

Retrieves the spell name and spell rank for a spell in the player's spellbook.

spellName, spellSubName = GetSpellBookItemName( spellId, bookType );

Arguments

 * spellId : Number - Spellbook item index. Valid values are 1 through total number of spells in the spellbook on all pages and all tabs, ignoring empty slots.
 * bookType : String - Either BOOKTYPE_SPELL ("spell") or BOOKTYPE_PET ("pet").

Returns

 * spellName : String - Name of the spell as it appears in the spellbook, eg. "Lesser Heal"
 * spellSubName : String - The spell rank or sub type, eg. "Grand Master", "Racial Passive". This can be an empty string. Note: for the Enchanting trade skill at rank Apprentice, the returned string contains a trailing space, ie. "Apprentice ". This might be the case for other trade skills and ranks also.

Example
The following snippet displays every spell in the player's spellbook, on all pages and all tabs, in the format required by CastSpellByName. local i = 1 while true do   local spellName, spellSubName = GetSpellBookItemName(i, BOOKTYPE_SPELL) if not spellName then do break end end -- use spellName and spellSubName here DEFAULT_CHAT_FRAME:AddMessage( spellName .. '(' .. spellSubName Rank .. ')' )   i = i + 1 end

Note

 * This function replaced in patch 4.0.1.
 * Some spells are not returnable via this function, such as tracking spells (Track Beasts, etc...).
 * Use in conjunction with to determine if a player knows this spell.
 * If you're trying to read the spell book at login, register for the event.