LibGroupInSpecT

插件开发库,允许其他插件获取队友天赋、装备等数据(如 Raider.IO 依赖它)

插件库

一个小型图书馆,用于跟踪小组成员并保存他们专业化和才能的最新缓存。

它类似于旧版的 LibGroupTalents/LibTalentQuery 和 LibRaidInspect 库,但与前者不同的是,它实际上在 7.0 版本中运行;与后者不同的是,它在 Battlegrounds 中可以正常工作。此外,它还具有将专精/天赋更新通知给其他 LibGroupInSpecT 用户的功能。这一点很重要,因为在撰写本文时,无法检测到其他玩家何时重新专精/天赋。

该库最初是作为 RaidChecklist 的一部分来替代 LibGroupTalents,但随着其普及和实用性增强,后来被分离成自己的项目。

要使用这个库,您还需要有常用的 LibStub 和 LibCallbackHandler 库。

要查看实际使用示例,请查看RaidChecklist项目。

活动

可以使用常规 CallbackHandler 方式注册这些事件。

参考

事件参数
“GroupInSpecT_Update”指南、单位、信息
“GroupInSpecT_Remove”指导
“GroupInSpecT_InspectReady”指导单位

描述

“ GroupInSpecT_Update”

当信息准备好或已被修改时触发。

“ GroupInSpecT_Remove”

当成员离开群组时触发。

“ GroupInSpecT_InspectReady”

在 INSPECT_READY 期间触发,以便客户端可以执行补充检查处理(从 r78 开始)。

例子

本地 LGIST  =  LibStub : GetLibrary ( " LibGroupInSpecT-1.1" ) 
LGIST . RegisterCallback ( addonObject ,  " GroupInSpecT_Remove" ,  " UnitRemoved" )
函数 addonObject : UnitRemoved (事件,  guid ) 
  -- 已删除 guid 的单元
结束

API

外部使用功能:

lib :重新扫描 (guid 或 nil )

强制对所有组成员进行重新检查。从 r76 开始,它接受可选的 guid 参数,以便仅重新扫描特定的 GUID,而不是所有组成员。

lib : QueuedInspections  ()

返回未完成检查的 GUID 数组。

lib : StaleInspections  ()

返回一个 GUID 数组,其中的数据已被视为陈旧并且正在等待更新(无需采取任何行动,刷新在内部进行)。

lib : GetCachedInfo  (guid )

如果可用,则返回给定 GUID 的缓存信息;否则返回 nil。仅为当前群组成员缓存信息。

lib :GuidToUnit  (guid )

返回给定 GUID 的单位 ID,前提是该 GUID 代表当前组成员,否则返回 nil。

信息表结构

表中的字段作为“GroupInSpecT_Update”回调的参数传递,或由某个 API 函数(例如 :GetCachedInfo(guid) )返回。所有全局专业化 ID 的列表可在此处获取

注意:由于 Blizz API 不会立即返回信息,因此并非所有字段都始终可用。增量更新将会发送,因此强烈建议在编码时考虑到可能为 nil 的情况。

信息结构

  . guid 
  . name 
  . realm 
  . race 
  . race_localized 
  . class 
  . class_localized 
  . class_id 
  . gender  -- 2 = 男性,3 = 女性
  . global_spec_id 
  . spec_index 
  . spec_name_localized 
  . spec_description . spec_icon 
  . spec_background . spec_role . spec_role_detailed -- “坦克”、“近战”、“远程”或“治疗”(在 1.0.2 中引入)。spec_group --活跃专精组 (1/2/nil),在 1.1 中引入。talents = { [ < talent_id > ] = { -- 注意:自 1.1 起,这是一个 talent_id,而不是 spell_id 。talent_id -- 在 1.1 中引入。这取代了旧的 1.0.x .idx 条目。tier . column . name_localized . icon 。spell_id } ... }   .pvp_ talents = {     [ < talent_id > ] = {       . talent_id . name_localized . icon . spell_id } ... } . lku -- 最后一个已知单位 id