diff options
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 8c7678a3f47..ecbfd020780 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -852,6 +852,20 @@ void GuildAchievementMgr::SendAllTrackedCriterias(Player* receiver, std::set<uin receiver->GetSession()->SendPacket(guildCriteriaUpdate.Write()); } +void GuildAchievementMgr::SendAchievementMembers(Player* receiver, uint32 achievementId) const +{ + auto itr = _completedAchievements.find(achievementId); + if (itr != _completedAchievements.end()) + { + WorldPackets::Achievement::GuildAchievementMembers guildAchievementMembers; + guildAchievementMembers.GuildGUID = _owner->GetGUID(); + guildAchievementMembers.AchievementID = achievementId; + guildAchievementMembers.Member.reserve(itr->second.CompletingPlayers.size()); + for (ObjectGuid const& member : itr->second.CompletingPlayers) + guildAchievementMembers.Member.emplace_back(member); + } +} + void GuildAchievementMgr::CompletedAchievement(AchievementEntry const* achievement, Player* referencePlayer) { TC_LOG_DEBUG("criteria.achievement", "GuildAchievementMgr::CompletedAchievement(%u)", achievement->ID); |