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.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 47803e0cfbc..0a9d1c60380 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -410,3 +410,19 @@ void WorldSession::HandleItemTextQuery(WorldPackets::Query::ItemTextQuery& itemT
SendPacket(queryItemTextResponse.Write());
}
+
+void WorldSession::HandleQueryRealmName(WorldPackets::Query::QueryRealmName& queryRealmName)
+{
+ WorldPackets::Query::RealmQueryResponse realmQueryResponse;
+ realmQueryResponse.VirtualRealmAddress = queryRealmName.VirtualRealmAddress;
+
+ Battlenet::RealmHandle realmHandle(queryRealmName.VirtualRealmAddress);
+ if (sObjectMgr->GetRealmName(realmHandle.Realm, realmQueryResponse.NameInfo.RealmNameActual, realmQueryResponse.NameInfo.RealmNameNormalized))
+ {
+ realmQueryResponse.LookupState = RESPONSE_SUCCESS;
+ realmQueryResponse.NameInfo.IsInternalRealm = false;
+ realmQueryResponse.NameInfo.IsLocal = queryRealmName.VirtualRealmAddress == realm.Id.GetAddress();
+ }
+ else
+ realmQueryResponse.LookupState = RESPONSE_FAILURE;
+}