aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/AuthHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-08-18 18:59:58 +0200
committerOvahlord <dreadkiller@gmx.de>2024-08-18 20:39:21 +0200
commit25ffdbc5ef0859aeaadfa132329a498e86827e68 (patch)
treed7df51da8cdc3e3df7c50e5058803f9324715ee4 /src/server/game/Handlers/AuthHandler.cpp
parent0c98004896cb91ef2d22baa5569ff0e0d6cd15ee (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.cpp9
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())