diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChatPackets.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChatPackets.h | 14 | ||||
-rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 11 |
6 files changed, 32 insertions, 14 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 2e91381b6e4..d96eb9b551e 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -658,9 +658,9 @@ void WorldSession::SendPlayerAmbiguousNotice(std::string const& name) SendPacket(packet.Write()); } -void WorldSession::SendChatRestrictedNotice(ChatRestrictionType restriction) +void WorldSession::SendChatRestricted(ChatRestrictionType restriction) { - WorldPacket data(SMSG_CHAT_RESTRICTED, 1); - data << uint8(restriction); - SendPacket(&data); + WorldPackets::Chat::ChatRestricted packet; + packet.Reason = restriction; + SendPacket(packet.Write()); } diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index cfaa986eaaa..612b46ca919 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -272,10 +272,17 @@ void WorldPackets::Chat::ChatReportIgnored::Read() _worldPacket >> Reason; } -WorldPacket const * WorldPackets::Chat::ChatPlayerAmbiguous::Write() +WorldPacket const* WorldPackets::Chat::ChatPlayerAmbiguous::Write() { _worldPacket.WriteBits(Name.length(), 9); _worldPacket.WriteString(Name); return &_worldPacket; } + +WorldPacket const* WorldPackets::Chat::ChatRestricted::Write() +{ + _worldPacket << uint8(Reason); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index e981feddb79..277892c1495 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -301,15 +301,25 @@ namespace WorldPackets uint8 Reason = 0; }; - class ChatPlayerAmbiguous : ServerPacket + class ChatPlayerAmbiguous final : public ServerPacket { public: - ChatPlayerAmbiguous() : ServerPacket(SMSG_CHAT_PLAYER_AMBIGUOUS, 2 + Name.length()) { } + ChatPlayerAmbiguous() : ServerPacket(SMSG_CHAT_PLAYER_AMBIGUOUS, 2 + Name.length()) { } WorldPacket const* Write() override; std::string Name; }; + + class ChatRestricted final : public ServerPacket + { + public: + ChatRestricted() : ServerPacket(SMSG_CHAT_RESTRICTED, 1) { } + + WorldPacket const* Write() override; + + uint8 Reason = 0; + }; } } diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index f1cb69c32db..3eea414f024 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -808,7 +808,7 @@ void WorldPackets::Spells::MissileTrajectoryCollision::Read() _worldPacket >> CollisionPos; } -WorldPacket const * WorldPackets::Spells::NotifyMissileTrajectoryCollision::Write() +WorldPacket const* WorldPackets::Spells::NotifyMissileTrajectoryCollision::Write() { _worldPacket << Caster; _worldPacket << uint8(CastID); diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 15048b52537..b12948d7337 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -973,7 +973,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOTFOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RECONNECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_SERVER_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHEAT_IGNORE_DIMISHING_RETURNS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHECK_WARGAME_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index efa1f4151ca..857988313d0 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -787,10 +787,11 @@ enum BFLeaveReason enum ChatRestrictionType { - ERR_CHAT_RESTRICTED = 0, - ERR_CHAT_THROTTLED = 1, - ERR_USER_SQUELCHED = 2, - ERR_YELL_RESTRICTED = 3 + ERR_CHAT_RESTRICTED = 0, + ERR_CHAT_THROTTLED = 1, + ERR_USER_SQUELCHED = 2, + ERR_YELL_RESTRICTED = 3, + ERR_CHAT_RAID_RESTRICTED = 4 }; enum CharterTypes @@ -1438,7 +1439,7 @@ class WorldSession void HandleChatMessageEmoteOpcode(WorldPackets::Chat::ChatMessageEmote& chatMessageEmote); void SendChatPlayerNotfoundNotice(std::string const& name); void SendPlayerAmbiguousNotice(std::string const& name); - void SendChatRestrictedNotice(ChatRestrictionType restriction); + void SendChatRestricted(ChatRestrictionType restriction); void HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet); void HandleChatIgnoredOpcode(WorldPackets::Chat::ChatReportIgnored& chatReportIgnored); |