MooSpec-1.0 is a library that provides information about player specializations and roles.
MooSpec-1.0 will track the following changes to units within the group:
- specialization
- role as determined by class and specialization
- role as assigned by the Dungeon Finder or as manually assigned in a raid group
MooSpec-1.0 can also inspect player units that are outside of the group as long as they have a valid unit ID.
Returns the assigned role for the GUID in a group formed via the Dungeon Finder, or the role manually assigned in a raid group.
blizzardRole = lib:GetBlizzardRole(guid)
guid
- string: GUID
blizzardRole
- string:"TANK"
,"HEALER"
,"DAMAGER"
,"NONE"
Returns the class for the GUID.
class = lib:GetClass(guid)
guid
- string: GUID
class
- string: a class token, one of:"DEATHKNIGHT"
"DEMONHUNTER"
"DRUID"
"HUNTER"
"MAGE"
"MONK"
"PALADIN"
"PRIEST"
"ROGUE"
"SHAMAN"
"WARLOCK"
"WARRIOR"
Returns the role for the GUID as determined by class and specialization. This differentiates between melee and ranged DPS specializations.
role = lib:GetRole(guid)
guid
- string: GUID
role
- string:"tank"
,"healer"
,"melee"
,"ranged"
,"none"
Returns the specialization for the GUID.
specialization, name = lib:GetSpecialization(guid)
guid
- string: GUID
specialization
- number: specialization IDname
- string: the name of the specialization, e.g.,"blood
","protection"
,"arcane"
, etc.
Returns the name of the specialization by ID.
name = lib:GetSpecializationName(specialization)
specialization
- number: specialization ID
name
- string: the name of the specialization, e.g.,"blood"
,"protection"
,"arcane"
, etc.
Queue a unit for asynchronous update of its specialization and role.
lib:InspectUnit(unit)
unit
- string: unit ID, e.g.,"player"
,"target"
,"raid15"
, etc.
Queue each member of the group for asynchronous update of their specialization and role.
lib:InspectRoster()
Registers a function to handle the specified callback.
lib.RegisterCallback(handler, callback, method, arg)
handler
- table/string: your addon object or another table containing a function athandler[method]
, or a string identifying your addoncallback
- string: the name of the callback to be registeredmethod
- string/function/nil: a key into thehandler
table, or a function to be called, ornil
ifhandler
is a table and a function exists athandler[callback]
arg
- a value to be passed as the first argument to the callback function specified bymethod
- If
handler
is a table,method
is a string, andhandler[method]
is a function, then that function will be called withhandler
as its first argument, followed by the callback name and the callback-specific arguments. - If
handler
is a table,method
is nil, andhandler[callback]
is a function, then that function will be called withhandler
as its first argument, followed by the callback name and the callback-specific arguments. - If
handler
is a string andmethod
is a function, then that function will be called with the callback name as its first argument, followed by the callback-specific arguments. - If
arg
is non-nil, then it will be passed to the specified function. Ifhandler
is a table, thenarg
will be passed as the second argument, pushing the callback name to the third position. Otherwise,arg
will be passed as the first argument.
Unregisters a specified callback.
lib.UnregisterCallback(handler, callback)
handler
- table/string: your addon object or a string identifying your addoncallback
- string: the name of the callback to be unregistered
MooSpec-1.0 provides the following callbacks to notify interested addons.
Fires when the assigned role in a group formed via the Dungeon Finder or the role manually assigned in a raid group is changed.
guid
- string: GUID of the unit whose role has changedunit
- string: unit ID, e.g.,"player"
,"target"
,"raid15"
, etc.oldRole
- string: the previous assigned role, see GetBlizzardRolenewRole
- string: the current assigned role, see GetBlizzardRole
Fires when the class for a unit has been resolved.
guid
- string: GUID of the unit whose role has changedunit
- string: unit ID, e.g.,"player"
,"target"
,"raid15"
, etc.class
- string: a class token, see GetClass
Fires when the role of a unit as determined by its class and specialization has changed.
guid
- string: GUID of the unit whose role has changedunit
- string: unit ID, e.g.,"player"
,"target"
,"raid15"
, etc.oldRole
- string: the previous role, see GetRolenewRole
- string: the current role, see GetRole
Fires when the specialization of a unit has changed.
guid
- string: GUID of the unit whose specialization has changedunit
- string: unit ID, e.g.,"player"
,"target"
,"raid15"
, etc.oldSpecialization
- number: the previous specialization IDnewSpecialization
- number: the current specialization ID
MooSpec-1.0 is released under the 2-clause BSD license.