There is once again a function in the API to retrieve auras by name (AuraUtil.FindAuraByName), which I recommend instead of this library.
Since 8.0, the lua API no longer allows calling UnitAura(), UnitBuff, or UnitDebuff() with the name of an aura. Instead of having each addon loop through every buff or debuff every time they just want to call one, LibAuras only does so once (for each UNIT_AURA event), and shares that data across addons.
Usage
LibAuras has a very familiar interface. Ex:
local LibAuras = LibStub:GetLibrary("LibAuras")
local name, _, count = LibAuras:UnitAura("player", "buff name", "HELPFUL")
API
:UnitAura(unitId, spellIdOrName[, filter])
returns name, icon, count, debuffType, duration, expirationTime, unitCaster, canStealOrPurge, nameplateShowPersonal, spellId, canApplyAura, isBossDebuff, isCastByPlayer, nameplateShowAll, timeMod, value1, value2, value3
:UnitBuff
and :UnitDebuff
work exactly the same, except they automatically add the "HELPFUL" or "HARMFUL" filters, respectively.
There are two major differences between these and the base UnitAura()
family of functions:
- LibAuras allows you to specify a spellId instead of an aura name
- There is no
rank
field returned (this also applies to the baseUnitAura()
starting in 8.0)
Caveats
LibAuras currently only supports the "HELPFUL", "HARMFUL", and "PLAYER" filters.