aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Conditions/DisableMgr.cpp2
-rw-r--r--src/server/game/Handlers/AuthHandler.cpp5
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp
index f1dbec72ba0..c0d4e9b8225 100644
--- a/src/server/game/Conditions/DisableMgr.cpp
+++ b/src/server/game/Conditions/DisableMgr.cpp
@@ -327,6 +327,8 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8
}
case DISABLE_TYPE_MAP:
case DISABLE_TYPE_LFG_MAP:
+ if (!ref)
+ return true;
if (Player const* player = ref->ToPlayer())
{
MapEntry const* mapEntry = sMapStore.LookupEntry(entry);
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp
index cd78c2afe4a..0166ae3201b 100644
--- a/src/server/game/Handlers/AuthHandler.cpp
+++ b/src/server/game/Handlers/AuthHandler.cpp
@@ -20,6 +20,7 @@
#include "BattlenetRpcErrorCodes.h"
#include "CharacterTemplateDataStore.h"
#include "ClientConfigPackets.h"
+#include "DisableMgr.h"
#include "GameTime.h"
#include "ObjectMgr.h"
#include "RBAC.h"
@@ -49,6 +50,10 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos)
response.SuccessInfo->Templates.push_back(&templ.second);
response.SuccessInfo->AvailableClasses = &sObjectMgr->GetClassExpansionRequirements();
+
+ // TEMPORARY - prevent creating characters in uncompletable zone
+ // This has the side effect of disabling Exile's Reach choice clientside without actually forcing character templates
+ response.SuccessInfo->ForceCharacterTemplate = DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, 2175 /*Exile's Reach*/, nullptr);
}
if (queued)