mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-25 11:21:58 +01:00
Core/Guild: Only send achievement criteria updates to players that requested them
Implements CMSG_GUILD_SET_ACHIEVEMENT_TRACKING
This commit is contained in:
@@ -1562,6 +1562,12 @@ void Guild::SendGuildRankInfo(WorldSession* session) const
|
||||
TC_LOG_DEBUG("guild", "SMSG_GUILD_RANK [%s]", session->GetPlayerInfo().c_str());
|
||||
}
|
||||
|
||||
void Guild::HandleSetAchievementTracking(WorldSession* session, std::set<uint32> const& criteriaIds)
|
||||
{
|
||||
if (Member* member = GetMember(session->GetPlayer()->GetGUID()))
|
||||
member->SetTrackedCriteriaIds(criteriaIds);
|
||||
}
|
||||
|
||||
void Guild::HandleSetMOTD(WorldSession* session, std::string const& motd)
|
||||
{
|
||||
if (m_motd == motd)
|
||||
@@ -2603,6 +2609,14 @@ void Guild::BroadcastPacket(WorldPacket* packet) const
|
||||
player->GetSession()->SendPacket(packet);
|
||||
}
|
||||
|
||||
void Guild::BroadcastPacketIfTrackingAchievement(WorldPacket* packet, uint32 criteriaId) const
|
||||
{
|
||||
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
|
||||
if (itr->second->IsTrackingCriteriaId(criteriaId))
|
||||
if (Player* player = itr->second->FindPlayer())
|
||||
player->GetSession()->SendPacket(packet);
|
||||
}
|
||||
|
||||
void Guild::MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 maxLevel, uint32 minRank)
|
||||
{
|
||||
uint32 count = 0;
|
||||
|
||||
Reference in New Issue
Block a user