aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-11-10 19:03:27 +0100
committerShauren <shauren.trinity@gmail.com>2019-11-10 19:03:27 +0100
commitcdb27ff3020f40c2a9a104a7ebba5c5c19452afc (patch)
tree83ec53917d201b4c3ff96e63e56cb43774158e97 /src/server/game/Server
parentaa64226b64bcad428a3d6207b322a48f97d5cf42 (diff)
Core/PacketIO: Implement SMSG_GUILD_EVENT_AWAY_CHANGE
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp10
-rw-r--r--src/server/game/Server/Packets/GuildPackets.h12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 23 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index b82d9b1c777..f342836d765 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -188,6 +188,16 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Guild::GuildRosterMemberD
return data;
}
+WorldPacket const* WorldPackets::Guild::GuildEventAwayChange::Write()
+{
+ _worldPacket << Guid;
+ _worldPacket.WriteBit(AFK);
+ _worldPacket.WriteBit(DND);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
+
WorldPacket const* WorldPackets::Guild::GuildEventPresenceChange::Write()
{
_worldPacket << Guid;
diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h
index e285a940f9e..b58eb3bfe9c 100644
--- a/src/server/game/Server/Packets/GuildPackets.h
+++ b/src/server/game/Server/Packets/GuildPackets.h
@@ -227,6 +227,18 @@ namespace WorldPackets
std::string OldGuildName;
};
+ class GuildEventAwayChange final : public ServerPacket
+ {
+ public:
+ GuildEventAwayChange() : ServerPacket(SMSG_GUILD_EVENT_AWAY_CHANGE, 16 + 1) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Guid;
+ bool AFK = false;
+ bool DND = false;
+ };
+
class GuildEventPresenceChange final : public ServerPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index a0e21730399..72638402eb8 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1292,7 +1292,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_AWAY_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_AWAY_CHANGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_NEVER, CONNECTION_TYPE_REALM);