diff options
| author | Roc13x <roc13x@gmail.com> | 2018-04-22 19:04:02 +0100 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2018-04-22 20:04:02 +0200 |
| commit | 6b9948857057cfe495807a61b6797c75d9fc7a6a (patch) | |
| tree | cd1a825be5c9a1dd57944677d09eb80ea20b21ee /src/server/game/Server | |
| parent | 4feaf2463ddf87621a3571f90043d8e8c5c1a22b (diff) | |
Core/Guild: Implemented guild master dethrone (#21833)
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/GuildPackets.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/GuildPackets.h | 8 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index 367021001c2..777891b3cef 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -320,8 +320,8 @@ void WorldPackets::Guild::GuildSetRankPermissions::Read() WorldPacket const* WorldPackets::Guild::GuildEventNewLeader::Write() { _worldPacket.WriteBit(SelfPromoted); - _worldPacket.WriteBits(NewLeaderName.length(), 6); _worldPacket.WriteBits(OldLeaderName.length(), 6); + _worldPacket.WriteBits(NewLeaderName.length(), 6); _worldPacket.FlushBits(); _worldPacket << OldLeaderGUID; @@ -329,8 +329,8 @@ WorldPacket const* WorldPackets::Guild::GuildEventNewLeader::Write() _worldPacket << NewLeaderGUID; _worldPacket << NewLeaderVirtualRealmAddress; - _worldPacket.WriteString(NewLeaderName); _worldPacket.WriteString(OldLeaderName); + _worldPacket.WriteString(NewLeaderName); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index f781e81b868..350ff772000 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -945,6 +945,14 @@ namespace WorldPackets bool Sticky = false; }; + class GuildReplaceGuildMaster final : public ClientPacket + { + public: + GuildReplaceGuildMaster(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_REPLACE_GUILD_MASTER, std::move(packet)) { } + + void Read() override { } + }; + class GuildSetGuildMaster final : public ClientPacket { public: diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 7d893b33f7d..aabd733d554 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -455,7 +455,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_GUILD_QUERY_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildQueryNews); DEFINE_HANDLER(CMSG_GUILD_QUERY_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); + DEFINE_HANDLER(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildReplaceGuildMaster); DEFINE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetAchievementTracking); DEFINE_HANDLER(CMSG_GUILD_SET_FOCUSED_ACHIEVEMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetFocusedAchievement); DEFINE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetGuildMaster); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 4d21373730c..bba6b5ce039 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -333,6 +333,7 @@ namespace WorldPackets class RequestGuildRewardsList; class GuildQueryNews; class GuildNewsUpdateSticky; + class GuildReplaceGuildMaster; class GuildSetGuildMaster; class GuildChallengeUpdateRequest; class SaveGuildEmblem; @@ -1292,6 +1293,7 @@ class TC_GAME_API WorldSession void HandleGuildAssignRank(WorldPackets::Guild::GuildAssignMemberRank& packet); void HandleGuildLeave(WorldPackets::Guild::GuildLeave& leave); void HandleGuildDelete(WorldPackets::Guild::GuildDelete& packet); + void HandleGuildReplaceGuildMaster(WorldPackets::Guild::GuildReplaceGuildMaster& replaceGuildMaster); void HandleGuildSetAchievementTracking(WorldPackets::Guild::GuildSetAchievementTracking& packet); void HandleGuildGetAchievementMembers(WorldPackets::Achievement::GuildGetAchievementMembers& getAchievementMembers); void HandleGuildSetGuildMaster(WorldPackets::Guild::GuildSetGuildMaster& packet); |
