Core/Guild: Only send achievement criteria updates to players that requested them

Implements CMSG_GUILD_SET_ACHIEVEMENT_TRACKING
This commit is contained in:
DDuarte
2014-09-02 14:33:31 +01:00
parent e0f7cd1514
commit 7ec22c534e
6 changed files with 40 additions and 2 deletions

View File

@@ -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);
}