API GetSpellCooldown

Retrieves the cooldown data of the spell specified.

start, duration, enabled = GetSpellCooldown(spellName or spellID or slotID, "bookType");

Arguments

 * spellName : String - name of the spell to retrieve cooldown data for.
 * spellID : Number - ID of the spell in the database
 * slotID : Number - Valid values are 1 through total number of spells in the spellbook on all pages and all tabs, ignoring empty slots.
 * bookType : String - BOOKTYPE_SPELL or BOOKTYPE_PET depending on whether you wish to query the player or pet spellbook.

Returns

 * startTime : Number - The time when the cooldown started (as returned by GetTime); zero if no cooldown; current time if (enabled == 0).
 * duration : Number - Cooldown duration in seconds, 0 if spell is ready to be cast.
 * enabled : Number - 0 if the spell is active (Stealth, Shadowmeld, Presence of Mind, etc) and the cooldown will begin as soon as the spell is used/cancelled; 1 otherwise.

Example
local start, duration, enabled = GetSpellCooldown("Presence of Mind"); if enabled == 0 then DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is currently active, use it and wait " .. duration .. " seconds for the next one."); elseif ( start > 0 and duration > 0) then DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is cooling down, wait " .. (start + duration - GetTime) .. " seconds for the next one."); else DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is ready."); end

Result
Checks status of the Presence of Mind cooldown and outputs the appropriate message to the default chat frame.

Example
local name = GetSpellInfo(28370); local start, duration, enabled = GetSpellCooldown(name); etc...

Example of using SpellIDs to retrieve cooldown info

Example
local start, duration, enabled = GetSpellCooldown(48505);

Result
returns 0, 0, 1 if the spell 'Starfall' is not on Cooldown otherwise it returns GetTime, 90, 1