diff options
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 16 |
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; +} |