diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-09-02 14:33:31 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-02 14:33:31 +0100 |
commit | 7ec22c534e8120f2f877e8d31bc3168faccff5ec (patch) | |
tree | 9fa117aa24b5f8dbd7febc5caea5679377535b92 /src/server/game/Handlers/GuildHandler.cpp | |
parent | e0f7cd151451863b29e800b10e5c5fe90f3627ef (diff) |
Core/Guild: Only send achievement criteria updates to players that requested them
Implements CMSG_GUILD_SET_ACHIEVEMENT_TRACKING
Diffstat (limited to 'src/server/game/Handlers/GuildHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/GuildHandler.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
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<uint32> criteriaIds; + + for (int i = 0; i < count; ++i) + { + uint32 criteriaId; + recvPacket >> criteriaId; + criteriaIds.insert(criteriaId); + } + + if (Guild* guild = GetPlayer()->GetGuild()) + guild->HandleSetAchievementTracking(this, criteriaIds); +} |