Core/Realms: Realmlist refactors

* Removed global realm variable from World and use RealmList everywhere
* Match auth build key with client version
* Restored allowedSecurityLevel checks for realmlist packet building
* Restored updating population field, mysteriously removed 15 years ago in f20b25d1c9
This commit is contained in:
Shauren
2024-08-18 18:59:58 +02:00
parent 88fea990ff
commit c4b710446d
43 changed files with 834 additions and 496 deletions

View File

@@ -321,12 +321,13 @@ void WorldSession::HandleQueryRealmName(WorldPackets::Query::QueryRealmName& que
WorldPackets::Query::RealmQueryResponse realmQueryResponse;
realmQueryResponse.VirtualRealmAddress = queryRealmName.VirtualRealmAddress;
Battlenet::RealmHandle realmHandle(queryRealmName.VirtualRealmAddress);
if (sRealmList->GetRealmNames(realmHandle, &realmQueryResponse.NameInfo.RealmNameActual, &realmQueryResponse.NameInfo.RealmNameNormalized))
if (std::shared_ptr<Realm const> realm = sRealmList->GetRealm(queryRealmName.VirtualRealmAddress))
{
realmQueryResponse.LookupState = RESPONSE_SUCCESS;
realmQueryResponse.NameInfo.IsInternalRealm = false;
realmQueryResponse.NameInfo.IsLocal = queryRealmName.VirtualRealmAddress == GetVirtualRealmAddress();
realmQueryResponse.NameInfo.RealmNameActual = realm->Name;
realmQueryResponse.NameInfo.RealmNameNormalized = realm->NormalizedName;
}
else
realmQueryResponse.LookupState = RESPONSE_FAILURE;