diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-08-18 18:59:58 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-08-18 18:59:58 +0200 |
commit | c4b710446d62c95eb8124175203fa5f394912594 (patch) | |
tree | c0e64d7fe1b315a34df65e4c44f0ad3d8723edf4 /src/server/game/Handlers/AuthHandler.cpp | |
parent | 88fea990ff1408b94076fb9dbd0c974908d6a731 (diff) |
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 f20b25d1c90f608deab28c9957b3b376ab2a0d50
Diffstat (limited to 'src/server/game/Handlers/AuthHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp index 13db0718450..7af2a1e46fa 100644 --- a/src/server/game/Handlers/AuthHandler.cpp +++ b/src/server/game/Handlers/AuthHandler.cpp @@ -24,7 +24,7 @@ #include "GameTime.h" #include "ObjectMgr.h" #include "RBAC.h" -#include "Realm.h" +#include "RealmList.h" #include "SystemPackets.h" #include "Timezone.h" #include "World.h" @@ -40,11 +40,14 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos) response.SuccessInfo->ActiveExpansionLevel = GetExpansion(); response.SuccessInfo->AccountExpansionLevel = GetAccountExpansion(); - response.SuccessInfo->VirtualRealmAddress = realm.Id.GetAddress(); response.SuccessInfo->Time = int32(GameTime::GetGameTime()); // Send current home realm. Also there is no need to send it later in realm queries. - response.SuccessInfo->VirtualRealms.emplace_back(realm.Id.GetAddress(), true, false, realm.Name, realm.NormalizedName); + if (std::shared_ptr<Realm const> currentRealm = sRealmList->GetCurrentRealm()) + { + response.SuccessInfo->VirtualRealmAddress = currentRealm->Id.GetAddress(); + response.SuccessInfo->VirtualRealms.emplace_back(currentRealm->Id.GetAddress(), true, false, currentRealm->Name, currentRealm->NormalizedName); + } if (HasPermission(rbac::RBAC_PERM_USE_CHARACTER_TEMPLATES)) for (auto&& templ : sCharacterTemplateDataStore->GetCharacterTemplates()) |