diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-08-18 18:59:58 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-08-18 20:39:21 +0200 |
commit | 25ffdbc5ef0859aeaadfa132329a498e86827e68 (patch) | |
tree | d7df51da8cdc3e3df7c50e5058803f9324715ee4 /src/server/game/Handlers/AuthHandler.cpp | |
parent | 0c98004896cb91ef2d22baa5569ff0e0d6cd15ee (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
(cherry picked from commit c4b710446d62c95eb8124175203fa5f394912594)
# Conflicts:
# sql/base/auth_database.sql
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()) |