Core/PacketIO: Updated and enabled CMSG_GUILD_SET_ACHIEVEMENT_TRACKING

This commit is contained in:
DJScias
2015-04-23 19:13:57 +02:00
parent 149ff8da87
commit 69fa522a5b
5 changed files with 29 additions and 14 deletions

View File

@@ -417,18 +417,8 @@ void WorldSession::HandleGuildSetGuildMaster(WorldPackets::Guild::GuildSetGuildM
guild->HandleSetNewGuildMaster(this, packet.NewMasterName);
}
void WorldSession::HandleGuildSetAchievementTracking(WorldPacket& recvPacket)
void WorldSession::HandleGuildSetAchievementTracking(WorldPackets::Guild::GuildSetAchievementTracking& packet)
{
uint32 count = recvPacket.ReadBits(24);
std::set<uint32> achievementIds;
for (uint32 i = 0; i < count; ++i)
{
uint32 achievementId;
recvPacket >> achievementId;
achievementIds.insert(achievementId);
}
if (Guild* guild = GetPlayer()->GetGuild())
guild->HandleSetAchievementTracking(this, achievementIds);
guild->HandleSetAchievementTracking(this, packet.AchievementIDs);
}

View File

@@ -811,3 +811,17 @@ WorldPacket const* WorldPackets::Guild::PlayerSaveGuildEmblem::Write()
return &_worldPacket;
}
void WorldPackets::Guild::GuildSetAchievementTracking::Read()
{
uint32 count;
_worldPacket >> count;
for (uint32 i = 0; i < count; ++i)
{
uint32 value;
_worldPacket >> value;
AchievementIDs.insert(value);
}
}

View File

@@ -1006,6 +1006,16 @@ namespace WorldPackets
int32 Error = 0;
};
class GuildSetAchievementTracking final : public ClientPacket
{
public:
GuildSetAchievementTracking(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, std::move(packet)) { }
void Read() override;
std::set<uint32> AchievementIDs;
};
}
}

View File

@@ -445,7 +445,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Guild::GuildQueryNews, &WorldSession::HandleGuildQueryNews);
DEFINE_HANDLER(CMSG_GUILD_QUERY_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetAchievementTracking);
DEFINE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetAchievementTracking, &WorldSession::HandleGuildSetAchievementTracking);
DEFINE_HANDLER(CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Achievement::GuildSetFocusedAchievement, &WorldSession::HandleGuildSetFocusedAchievement);
DEFINE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetGuildMaster, &WorldSession::HandleGuildSetGuildMaster);
DEFINE_HANDLER(CMSG_GUILD_SET_MEMBER_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Guild::GuildSetMemberNote, &WorldSession::HandleGuildSetMemberNote);

View File

@@ -255,6 +255,7 @@ namespace WorldPackets
class GuildSetGuildMaster;
class GuildChallengeUpdateRequest;
class SaveGuildEmblem;
class GuildSetAchievementTracking;
}
namespace Inspect
@@ -1079,7 +1080,7 @@ class WorldSession
void HandleGuildAssignRank(WorldPackets::Guild::GuildAssignMemberRank& packet);
void HandleGuildLeave(WorldPackets::Guild::GuildLeave& leave);
void HandleGuildDelete(WorldPackets::Guild::GuildDelete& packet);
void HandleGuildSetAchievementTracking(WorldPacket& recvPacket);
void HandleGuildSetAchievementTracking(WorldPackets::Guild::GuildSetAchievementTracking& packet);
void HandleGuildSetGuildMaster(WorldPackets::Guild::GuildSetGuildMaster& packet);
void HandleGuildUpdateMotdText(WorldPackets::Guild::GuildUpdateMotdText& packet);
void HandleGuildNewsUpdateSticky(WorldPackets::Guild::GuildNewsUpdateSticky& packet);