aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Guilds/Guild.cpp29
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp10
-rw-r--r--src/server/game/Server/Packets/GuildPackets.h11
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
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);