diff options
| author | Duarte Duarte <dnpd.dd@gmail.com> | 2015-02-23 21:47:37 +0000 |
|---|---|---|
| committer | Duarte Duarte <dnpd.dd@gmail.com> | 2015-02-23 21:47:37 +0000 |
| commit | 8a2f8df8ce0c4cbb7404e7134bbfa75f44e43e7f (patch) | |
| tree | aba698ae0585478b6caee5e482e56667e97c3ead /src/server/game/Server | |
| parent | 3fcea2e9d4adf26ed97d2ffad78425346782d418 (diff) | |
| parent | 78c7094b019bf300c0b46586e28ecbbea93be56c (diff) | |
Merge pull request #14236 from Golrag/Notification1
Core/Packets: SMSG_NOTIFICATION
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.h | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 15 |
4 files changed, 22 insertions, 13 deletions
diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index 9d28f50af4f..50b89790226 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -189,3 +189,10 @@ WorldPacket const* WorldPackets::Chat::STextEmote::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Chat::PrintNotification::Write() +{ + _worldPacket.WriteBits(NotifyText.size(), 12); + _worldPacket.WriteString(NotifyText); + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index 81f4d08607f..b6d58fdfcef 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -196,6 +196,17 @@ namespace WorldPackets int32 SoundIndex = -1; int32 EmoteID = 0; }; + + class PrintNotification final : public ServerPacket + { + public: + PrintNotification() : ServerPacket(SMSG_NOTIFICATION, 3) { } + PrintNotification(std::string const& notifyText) : ServerPacket(SMSG_NOTIFICATION, 3), NotifyText(notifyText) { } + + WorldPacket const* Write() override; + + std::string NotifyText; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 17a7b892cb3..3bc5526f36b 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1562,7 +1562,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NEW_WORLD_ABORT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFICATION, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_DANCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 73d249412eb..727d1e078e4 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -52,6 +52,7 @@ #include "CharacterPackets.h" #include "ClientConfigPackets.h" #include "MiscPackets.h" +#include "ChatPackets.h" namespace { @@ -654,12 +655,7 @@ void WorldSession::SendNotification(char const* format, ...) vsnprintf(szStr, 1024, format, ap); va_end(ap); - size_t len = strlen(szStr); - WorldPacket data(SMSG_NOTIFICATION, 2 + len); - data.WriteBits(len, 13); - data.FlushBits(); - data.append(szStr, len); - SendPacket(&data); + SendPacket(WorldPackets::Chat::PrintNotification(szStr).Write()); } } @@ -675,12 +671,7 @@ void WorldSession::SendNotification(uint32 stringId, ...) vsnprintf(szStr, 1024, format, ap); va_end(ap); - size_t len = strlen(szStr); - WorldPacket data(SMSG_NOTIFICATION, 2 + len); - data.WriteBits(len, 13); - data.FlushBits(); - data.append(szStr, len); - SendPacket(&data); + SendPacket(WorldPackets::Chat::PrintNotification(szStr).Write()); } } |
