fix(Core/Guild): Fix use of guild members' data after deletion. (#21421)

This commit is contained in:
Anton Popovichenko 2025-02-12 22:23:57 +01:00 committed by GitHub
parent fe2627bc91
commit c92d50d6ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1556,11 +1556,14 @@ void Guild::HandleRemoveMember(WorldSession* session, std::string_view name)
SendCommandResult(session, GUILD_COMMAND_REMOVE, ERR_GUILD_RANK_TOO_HIGH_S, name);
else
{
// Copy values since everything will be deleted in DeleteMember().
ObjectGuid guid = member->GetGUID();
std::string memberName = member->GetName();
// After call to DeleteMember pointer to member becomes invalid
DeleteMember(guid, false, true);
_LogEvent(GUILD_EVENT_LOG_UNINVITE_PLAYER, player->GetGUID(), guid);
_BroadcastEvent(GE_REMOVED, ObjectGuid::Empty, member->GetName(), player->GetName());
_BroadcastEvent(GE_REMOVED, ObjectGuid::Empty, memberName, player->GetName());
}
}
}