mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
feat: fire GUILD_ROSTER_UPDATE and GUILD_MOTD events for guild addons
Fire GUILD_ROSTER_UPDATE from SMSG_GUILD_ROSTER and from guild events (member join/leave/kick, promotions, leader changes, online/offline, disbanded). Fire GUILD_MOTD with the MOTD text when received. These events are needed by guild management addons (GuildGreet, GuildRoster replacements, officer tools) to refresh their UI.
This commit is contained in:
parent
b8d92b5ff2
commit
b7e5034f27
1 changed files with 23 additions and 0 deletions
|
|
@ -20545,6 +20545,7 @@ void GameHandler::handleGuildRoster(network::Packet& packet) {
|
|||
guildRoster_ = std::move(data);
|
||||
hasGuildRoster_ = true;
|
||||
LOG_INFO("Guild roster received: ", guildRoster_.members.size(), " members");
|
||||
if (addonEventCallback_) addonEventCallback_("GUILD_ROSTER_UPDATE", {});
|
||||
}
|
||||
|
||||
void GameHandler::handleGuildQueryResponse(network::Packet& packet) {
|
||||
|
|
@ -20643,6 +20644,28 @@ void GameHandler::handleGuildEvent(network::Packet& packet) {
|
|||
addLocalChatMessage(chatMsg);
|
||||
}
|
||||
|
||||
// Fire addon events for guild state changes
|
||||
if (addonEventCallback_) {
|
||||
switch (data.eventType) {
|
||||
case GuildEvent::MOTD:
|
||||
addonEventCallback_("GUILD_MOTD", {data.numStrings >= 1 ? data.strings[0] : ""});
|
||||
break;
|
||||
case GuildEvent::SIGNED_ON:
|
||||
case GuildEvent::SIGNED_OFF:
|
||||
case GuildEvent::PROMOTION:
|
||||
case GuildEvent::DEMOTION:
|
||||
case GuildEvent::JOINED:
|
||||
case GuildEvent::LEFT:
|
||||
case GuildEvent::REMOVED:
|
||||
case GuildEvent::LEADER_CHANGED:
|
||||
case GuildEvent::DISBANDED:
|
||||
addonEventCallback_("GUILD_ROSTER_UPDATE", {});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-refresh roster after membership/rank changes
|
||||
switch (data.eventType) {
|
||||
case GuildEvent::PROMOTION:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue