diff options
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 4bfb1962c89..5627305c2f3 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -32,24 +32,26 @@ #include "Realm.h" #include "World.h" -void WorldSession::SendNameQueryOpcode(ObjectGuid guid) +void WorldSession::BuildNameQueryData(ObjectGuid guid, WorldPackets::Query::NameCacheLookupResult& lookupData) { Player* player = ObjectAccessor::FindConnectedPlayer(guid); - WorldPackets::Query::QueryPlayerNameResponse response; - response.Player = guid; + lookupData.Player = guid; - if (response.Data.Initialize(guid, player)) - response.Result = RESPONSE_SUCCESS; // name known + lookupData.Data.emplace(); + if (lookupData.Data->Initialize(guid, player)) + lookupData.Result = RESPONSE_SUCCESS; // name known else - response.Result = RESPONSE_FAILURE; // name unknown - - SendPacket(response.Write()); + lookupData.Result = RESPONSE_FAILURE; // name unknown } void WorldSession::HandleNameQueryOpcode(WorldPackets::Query::QueryPlayerName& packet) { - SendNameQueryOpcode(packet.Player); + WorldPackets::Query::QueryPlayerNameResponse response; + for (ObjectGuid guid : packet.Players) + BuildNameQueryData(guid, response.Players.emplace_back()); + + SendPacket(response.Write()); } void WorldSession::HandleQueryTimeOpcode(WorldPackets::Query::QueryTime& /*queryTime*/) |