diff options
-rw-r--r-- | src/server/game/Conditions/DisableMgr.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Handlers/AuthHandler.cpp | 5 |
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) |