aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/AchievementMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp14
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);