Description
Overview
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.
API Methods
GetBlizzardRole
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)
Arguments:
guid- string: GUID
Returns:
blizzardRole- string:"TANK","HEALER","DAMAGER","NONE"
GetRole
Returns the role for the GUID as determined by class and specialization. This differentiates between melee and ranged DPS specializations.
role = lib:GetRole(guid)
Arguments:
guid- string: GUID
Returns:
role- string:"tank","healer","melee","ranged","none"
GetSpecialization
Returns the specialization for the GUID.
specialization, name = lib:GetSpecialization(guid)
Arguments:
guid- string: GUID
Returns:
specialization- number: specialization IDname- string: the name of the specialization, e.g.,"blood","protection","arcane", etc.
GetSpecializationName
Returns the name of the specialization by ID.
name = lib:GetSpecializationName(specialization)
Arguments:
specialization- number: specialization ID
Returns:
name- string: the name of the specialization, e.g.,"blood","protection","arcane", etc.
InspectUnit
Queue a unit for asynchronous update of its specialization and role.
lib:InspectUnit(unit)
Arguments:
unit- string: unit ID, e.g.,"player","target","raid15", etc.
InspectRoster
Queue each member of the group for asynchronous update of their specialization and role.
lib:InspectRoster()
RegisterCallback
Registers a function to handle the specified callback.
lib.RegisterCallback(handler, callback, method, arg)
Arguments:
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 thehandlertable, or a function to be called, ornilifhandleris a table and a function exists athandler[callback]arg- a value to be passed as the first argument to the callback function specified bymethod
Notes:
- If
handleris a table,methodis a string, andhandler[method]is a function, then that function will be called withhandleras its first argument, followed by the callback name and the callback-specific arguments. - If
handleris a table,methodis nil, andhandler[callback]is a function, then that function will be called withhandleras its first argument, followed by the callback name and the callback-specific arguments. - If
handleris a string andmethodis a function, then that function will be called with the callback name as its first argument, followed by the callback-specific arguments. - If
argis non-nil, then it will be passed to the specified function. Ifhandleris a table, thenargwill be passed as the second argument, pushing the callback name to the third position. Otherwise,argwill be passed as the first argument.
UnregisterCallback
Unregisters a specified callback.
lib.UnregisterCallback(handler, callback)
Arguments:
handler- table/string: your addon object or a string identifying your addoncallback- string: the name of the callback to be unregistered
Callbacks
MooSpec-1.0 provides the following callbacks to notify interested addons.
MooSpec_UnitBlizzardRoleChanged
Fires when the assigned role in a group formed via the Dungeon Finder or the role manually assigned in a raid group is changed.
Arguments:
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
MooSpec_UnitRoleChanged
Fires when the role of a unit as determined by its class and specialization has changed.
Arguments:
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
MooSpec_UnitSpecializationChanged
Fires when the specialization of a unit has changed.
Arguments:
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
License
MooSpec-1.0 is released under the 2-clause BSD license.


