aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QueryHandler.cpp
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2017-05-13 17:25:21 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-05-13 17:25:21 +0200
commit229c78b5a38dc58e14f4912de49437b68341452b (patch)
treec7091cb6eb5044865cb35659646df9bf0e691009 /src/server/game/Handlers/QueryHandler.cpp
parentbd456342e2e2e63264c1884e417b2779c9dab019 (diff)
Core/Packets: Implemented CMSG_QUERY_REALM_NAME and SMSG_REALM_QUERY_RESPONSE
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;
+}