From 7ec22c534e8120f2f877e8d31bc3168faccff5ec Mon Sep 17 00:00:00 2001 From: DDuarte Date: Tue, 2 Sep 2014 14:33:31 +0100 Subject: Core/Guild: Only send achievement criteria updates to players that requested them Implements CMSG_GUILD_SET_ACHIEVEMENT_TRACKING --- src/server/game/Handlers/GuildHandler.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/server/game/Handlers/GuildHandler.cpp') diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp index a6e63d196c2..a4229f0fe66 100644 --- a/src/server/game/Handlers/GuildHandler.cpp +++ b/src/server/game/Handlers/GuildHandler.cpp @@ -823,3 +823,19 @@ void WorldSession::HandleGuildSetGuildMaster(WorldPacket& recvPacket) if (Guild* guild = GetPlayer()->GetGuild()) guild->HandleSetNewGuildMaster(this, playerName); } + +void WorldSession::HandleGuildSetAchievementTracking(WorldPacket& recvPacket) +{ + uint32 count = recvPacket.ReadBits(24); + std::set criteriaIds; + + for (int i = 0; i < count; ++i) + { + uint32 criteriaId; + recvPacket >> criteriaId; + criteriaIds.insert(criteriaId); + } + + if (Guild* guild = GetPlayer()->GetGuild()) + guild->HandleSetAchievementTracking(this, criteriaIds); +} -- cgit v1.2.3