WoW API: UnitCastingInfo
Returns information on the spell currently cast by the specified unit. Returns nil if no spell is being cast.
spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo("unit")
Parameters
Arguments
- unit
- String - The UnitId to query (e.g. "player", "party2", "pet", "target" etc.)
Returns
- spell
- String - The name of the spell, or nil if no spell is being cast.
- rank
- String - The string describing the rank of the spell, e.g. "Rank 1".
- displayName
- String - The name to be displayed.
- icon
- String - The texture path associated with the spell.
- startTime
- Number - Specifies when casting has begun, in milliseconds.
- endTime
- Number - Specifies when casting will end, in milliseconds.
- isTradeSkill
- Boolean - Specifies if the cast is a tradeskill
Example
local spell, _, _, _, _, endTime = UnitCastingInfo("player") if spell then local finish = endTime/1000 - GetTime() ChatFrame1:AddMessage(spell .. ' will be finished casting in ' .. finish .. ' seconds.') end
Result
- If you're currently casting Shadowbolt:
Shadowbolt will be finished casting in 1.234 seconds.
Details
For channeled spells, displayName is "Channeling".
Not sure if displayName ever differs from spell in any other contexts.
As of May 10, 2008, this does not return anything while casting Hellfire, Drain Life, or Rain of Fire with my warlock. The correct API for channeled spells is UnitChannelInfo. It takes the same arguments and returns the same values, but is specific to channeled spells.