diff options
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 0385b8f1a39..4333ec5ba1e 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -794,17 +794,7 @@ void WorldSession::HandlePlayerLoginOpcode(WorldPackets::Character::PlayerLogin& return; } - boost::system::error_code ignored_error; - boost::asio::ip::tcp::endpoint instanceAddress = realm.GetAddressForClient(boost::asio::ip::address::from_string(GetRemoteAddress(), ignored_error)); - instanceAddress.port(sWorld->getIntConfig(CONFIG_PORT_INSTANCE)); - - WorldPackets::Auth::ConnectTo connectTo; - connectTo.Key = MAKE_PAIR64(GetAccountId(), CONNECTION_TYPE_INSTANCE); - connectTo.Serial = 1; - connectTo.Payload.Where = instanceAddress; - connectTo.Con = CONNECTION_TYPE_INSTANCE; - - SendPacket(connectTo.Write()); + SendConnectToInstance(WorldPackets::Auth::ConnectToSerial::WorldAttempt1); } void WorldSession::HandleContinuePlayerLogin() @@ -826,6 +816,18 @@ void WorldSession::HandleContinuePlayerLogin() _charLoginCallback = CharacterDatabase.DelayQueryHolder(holder); } +void WorldSession::AbortLogin(WorldPackets::Character::LoginFailureReason reason) +{ + if (!PlayerLoading() || GetPlayer()) + { + KickPlayer(); + return; + } + + m_playerLoading.Clear(); + SendPacket(WorldPackets::Character::CharacterLoginFailed(reason).Write()); +} + void WorldSession::HandleLoadScreenOpcode(WorldPackets::Character::LoadingScreenNotify& /*loadingScreenNotify*/) { // TODO: Do something with this packet |