diff options
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 29 | ||||
-rw-r--r-- | src/server/game/Server/Packets/GuildPackets.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Server/Packets/GuildPackets.h | 11 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
4 files changed, 27 insertions, 25 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index fdfb062104b..747c0bfd5c4 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1254,30 +1254,11 @@ bool Guild::SetName(std::string const& name) stmt->setUInt64(1, GetId()); CharacterDatabase.Execute(stmt); - /* TODO 6.x update me - ObjectGuid guid = GetGUID(); - WorldPacket data(SMSG_GUILD_NAME_CHANGED, 24 + 8 + 1); - data.WriteBit(guid[5]); - data.WriteBits(name.length(), 8); - data.WriteBit(guid[4]); - data.WriteBit(guid[0]); - data.WriteBit(guid[6]); - data.WriteBit(guid[3]); - data.WriteBit(guid[1]); - data.WriteBit(guid[7]); - data.WriteBit(guid[2]); - - data.WriteByteSeq(guid[3]); - data.WriteByteSeq(guid[2]); - data.WriteByteSeq(guid[7]); - data.WriteByteSeq(guid[1]); - data.WriteByteSeq(guid[0]); - data.WriteByteSeq(guid[6]); - data.WriteString(name); - data.WriteByteSeq(guid[4]); - data.WriteByteSeq(guid[5]); - - BroadcastPacket(&data); */ + WorldPackets::Guild::GuildNameChanged guildNameChanged; + guildNameChanged.GuildGUID = GetGUID(); + guildNameChanged.GuildName = m_name; + BroadcastPacket(guildNameChanged.Write()); + return true; } diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp index ab0805029df..f2bb5bcb180 100644 --- a/src/server/game/Server/Packets/GuildPackets.cpp +++ b/src/server/game/Server/Packets/GuildPackets.cpp @@ -816,3 +816,13 @@ void WorldPackets::Guild::GuildSetAchievementTracking::Read() AchievementIDs.insert(value); } } + +WorldPacket const* WorldPackets::Guild::GuildNameChanged::Write() +{ + _worldPacket << GuildGUID; + _worldPacket.WriteBits(GuildName.length(), 7); + _worldPacket.FlushBits(); + _worldPacket.WriteString(GuildName); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h index 6fd5b2f1bf2..c41da5d8016 100644 --- a/src/server/game/Server/Packets/GuildPackets.h +++ b/src/server/game/Server/Packets/GuildPackets.h @@ -1010,6 +1010,17 @@ namespace WorldPackets std::set<uint32> AchievementIDs; }; + + class GuildNameChanged final : ServerPacket + { + public: + GuildNameChanged() : ServerPacket(SMSG_GUILD_NAME_CHANGED, 40) { } + + WorldPacket const* Write() override; + + ObjectGuid GuildGUID; + std::string GuildName; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index b9ac5fa4020..73c7a32f9f5 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1260,7 +1260,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NAME_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NAME_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); |