mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-27 09:03:51 +00:00
feat: add RAID_ROSTER_UPDATE and UNIT_LEVEL events
RAID_ROSTER_UPDATE now fires alongside GROUP_ROSTER_UPDATE when the group type is raid, matching the event that raid frame addons register for (6 registrations in FrameXML). Fires from group list updates and group uninvite handlers. UNIT_LEVEL fires when any tracked unit (player, target, focus, pet) changes level via VALUES update fields. Used by unit frame addons to update level display (5 registrations in FrameXML).
This commit is contained in:
parent
e46919cc2c
commit
92a1e9b0c3
2 changed files with 14 additions and 2 deletions
|
|
@ -955,7 +955,7 @@ static int lua_GetCVar(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
// SetCVar(name, value) — no-op stub (log for debugging)
|
||||
// SetCVar(name, value) — no-op stub
|
||||
static int lua_SetCVar(lua_State* L) {
|
||||
(void)L;
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -12586,6 +12586,15 @@ void GameHandler::applyUpdateObjectBlock(const UpdateBlock& block, bool& newItem
|
|||
} else if (key == ufLevel) {
|
||||
uint32_t oldLvl = unit->getLevel();
|
||||
unit->setLevel(val);
|
||||
if (val != oldLvl && addonEventCallback_) {
|
||||
std::string uid;
|
||||
if (block.guid == playerGuid) uid = "player";
|
||||
else if (block.guid == targetGuid) uid = "target";
|
||||
else if (block.guid == focusGuid) uid = "focus";
|
||||
else if (block.guid == petGuid_) uid = "pet";
|
||||
if (!uid.empty())
|
||||
addonEventCallback_("UNIT_LEVEL", {uid});
|
||||
}
|
||||
if (block.guid != playerGuid &&
|
||||
entity->getType() == ObjectType::PLAYER &&
|
||||
val > oldLvl && oldLvl > 0 &&
|
||||
|
|
@ -20279,10 +20288,12 @@ void GameHandler::handleGroupList(network::Packet& packet) {
|
|||
const char* methodName = (partyData.lootMethod < 5) ? kLootMethods[partyData.lootMethod] : "Unknown";
|
||||
addSystemChatMessage(std::string("Loot method changed to ") + methodName + ".");
|
||||
}
|
||||
// Fire GROUP_ROSTER_UPDATE / PARTY_MEMBERS_CHANGED for Lua addons
|
||||
// Fire GROUP_ROSTER_UPDATE / PARTY_MEMBERS_CHANGED / RAID_ROSTER_UPDATE for Lua addons
|
||||
if (addonEventCallback_) {
|
||||
addonEventCallback_("GROUP_ROSTER_UPDATE", {});
|
||||
addonEventCallback_("PARTY_MEMBERS_CHANGED", {});
|
||||
if (partyData.groupType == 1)
|
||||
addonEventCallback_("RAID_ROSTER_UPDATE", {});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -20294,6 +20305,7 @@ void GameHandler::handleGroupUninvite(network::Packet& packet) {
|
|||
if (addonEventCallback_) {
|
||||
addonEventCallback_("GROUP_ROSTER_UPDATE", {});
|
||||
addonEventCallback_("PARTY_MEMBERS_CHANGED", {});
|
||||
addonEventCallback_("RAID_ROSTER_UPDATE", {});
|
||||
}
|
||||
|
||||
MessageChatData msg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue