aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QueryHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp20
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*/)