aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/GuildHandler.cpp
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-02 14:33:31 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-02 14:33:31 +0100
commit7ec22c534e8120f2f877e8d31bc3168faccff5ec (patch)
tree9fa117aa24b5f8dbd7febc5caea5679377535b92 /src/server/game/Handlers/GuildHandler.cpp
parente0f7cd151451863b29e800b10e5c5fe90f3627ef (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.cpp16
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);
+}