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.
modRate
number - The rate at which the cooldown widget's animation should be updated.
The following snippet checks the state of [Presence of Mind] cooldown. On English clients, you could also use "Presence of Mind" in place of 12043, which is the spell's ID.
local start, duration, enabled, modRate = GetSpellCooldown(12043)
if enabled == 0 then
print("Presence of Mind is currently active, use it and wait " .. duration .. " seconds for the next one.")
elseif ( start > 0 and duration > 0) then
local cdLeft = start + duration - GetTime()
print("Presence of Mind is cooling down, wait " .. cdLeft .. " seconds for the next one.")
else
print("Presence of Mind is ready.")
end
Details[]
To check the Global Cooldown, you can use the spell ID 61304. This is a dummy spell specifically for the GCD.
The enabled return value allows addons to easily check if the player has used a buff-providing spell (such as Presence of Mind or Nature's Swiftness) without searching through the player's buffs.
Values returned by this function are not updated immediately when UNIT_SPELLCAST_SUCCEEDED event is raised.
Patch changes[]
Patch 7.1.0 (2016-10-25): The modRate return value was added. Patch 6.2.0 (2015-06-23): The charges and maxCharges return values were removed. They were moved to GetSpellCharges.