diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChatPackets.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChatPackets.h | 10 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 4 |
6 files changed, 28 insertions, 12 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 5507887625b..dcc28593813 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -234,14 +234,14 @@ void WorldSession::HandleChatMessage(ChatMsg type, uint32 lang, std::string msg, if (!normalizePlayerName(extName.Name)) { - SendPlayerNotFoundNotice(target); + SendChatPlayerNotfoundNotice(target); break; } Player* receiver = ObjectAccessor::FindConnectedPlayerByName(extName.Name); if (!receiver || (lang != LANG_ADDON && !receiver->isAcceptWhispers() && receiver->GetSession()->HasPermission(rbac::RBAC_PERM_CAN_FILTER_WHISPERS) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))) { - SendPlayerNotFoundNotice(target); + SendChatPlayerNotfoundNotice(target); return; } if (!sender->IsGameMaster() && sender->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) && !receiver->IsInWhisperWhiteList(sender->GetGUID())) @@ -252,7 +252,7 @@ void WorldSession::HandleChatMessage(ChatMsg type, uint32 lang, std::string msg, if (GetPlayer()->GetTeam() != receiver->GetTeam() && !HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT) && !receiver->IsInWhisperWhiteList(sender->GetGUID())) { - SendPlayerNotFoundNotice(target); + SendChatPlayerNotfoundNotice(target); return; } @@ -671,11 +671,9 @@ void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recvData) player->SendDirectMessage(packet.Write()); } -void WorldSession::SendPlayerNotFoundNotice(std::string const& name) +void WorldSession::SendChatPlayerNotfoundNotice(std::string const& name) { - WorldPacket data(SMSG_CHAT_PLAYER_NOTFOUND, name.size()+1); - data << name; - SendPacket(&data); + SendPacket(WorldPackets::Chat::ChatPlayerNotfound(name).Write()); } void WorldSession::SendPlayerAmbiguousNotice(std::string const& name) diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 7dd87f6cdba..c8f74a31b96 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -418,10 +418,10 @@ void WorldSession::HandleQueryPetName(WorldPackets::Query::QueryPetName& packet) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUERY_PET_NAME"); - SendPetNameQuery(packet.UnitGUID); + SendQueryPetNameResponse(packet.UnitGUID); } -void WorldSession::SendPetNameQuery(ObjectGuid guid) +void WorldSession::SendQueryPetNameResponse(ObjectGuid guid) { WorldPackets::Query::QueryPetNameResponse response; diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index 8179ee427c8..de4194db023 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -206,3 +206,11 @@ WorldPacket const* WorldPackets::Chat::PrintNotification::Write() _worldPacket.WriteString(NotifyText); return &_worldPacket; } + +WorldPacket const* WorldPackets::Chat::ChatPlayerNotfound::Write() +{ + _worldPacket.WriteBits(Name.length(), 9); + _worldPacket.WriteString(Name); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index 8cadb88b584..b794d118d88 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -229,6 +229,16 @@ namespace WorldPackets void Read() override { } }; + + class ChatPlayerNotfound final : public ServerPacket + { + public: + ChatPlayerNotfound(std::string const& name) : ServerPacket(SMSG_CHAT_PLAYER_NOTFOUND, 2 + name.size()), Name(name) { } + + WorldPacket const* Write() override; + + std::string Name; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 0ee0cc8306a..2c3425a57f3 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1008,7 +1008,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_IS_DOWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_PARTY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOTFOUND, STATUS_UNHANDLED, 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_SERVER_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 7917c9f0a44..8fbdf41e55a 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -767,7 +767,7 @@ class WorldSession void HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlags, SpellCastTargets& targets); // Pet - void SendPetNameQuery(ObjectGuid guid); + void SendQueryPetNameResponse(ObjectGuid guid); void SendStablePet(ObjectGuid guid); void SendStablePetCallback(PreparedQueryResult result, ObjectGuid guid); void SendPetStableResult(uint8 guid); @@ -1233,7 +1233,7 @@ class WorldSession void HandleChatMessageAFKOpcode(WorldPackets::Chat::ChatMessageAFK& chatMessageAFK); void HandleChatMessageDNDOpcode(WorldPackets::Chat::ChatMessageDND& chatMessageDND); void HandleChatMessageEmoteOpcode(WorldPackets::Chat::ChatMessageEmote& chatMessageEmote); - void SendPlayerNotFoundNotice(std::string const& name); + void SendChatPlayerNotfoundNotice(std::string const& name); void SendPlayerAmbiguousNotice(std::string const& name); void SendChatRestrictedNotice(ChatRestrictionType restriction); void HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet); |