diff --git a/bin/config/settings_lobby.xml b/bin/config/settings_lobby.xml index 4f41742e..478b6014 100644 --- a/bin/config/settings_lobby.xml +++ b/bin/config/settings_lobby.xml @@ -3,7 +3,7 @@ 54994 54998 - + 127.0.0.1 C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv @@ -12,9 +12,9 @@ 54992 - 127.0.0.1:80 + 127.0.0.1:80 - default + default 127.0.0.1 @@ -24,4 +24,8 @@ sapphire + + + false + \ No newline at end of file diff --git a/src/servers/Server_Lobby/GameConnection.cpp b/src/servers/Server_Lobby/GameConnection.cpp index 5f40d522..78afa881 100644 --- a/src/servers/Server_Lobby/GameConnection.cpp +++ b/src/servers/Server_Lobby/GameConnection.cpp @@ -223,6 +223,16 @@ void Core::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uin bool Core::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { LobbySessionPtr pSession = g_serverLobby.getSession( ( char* )&packet.data[0] + 0x20 ); + + if( g_serverLobby.m_pConfig->getValue( "Settings.Parameters.AllowNoSessionConnect" ) && pSession == nullptr ) + { + LobbySessionPtr session( new Core::LobbySession() ); + session->setAccountID( 0 ); + session->setSessionId( (uint8_t *)&packet.data[0] + 0x20 ); + pSession = session; + g_log.Log( LoggingSeverity::info, "Allowed connection with no session: " + std::string( (char*)&packet.data[0] + 0x20 ) ); + } + if( pSession != nullptr ) { g_log.Log( LoggingSeverity::info, "Found session linked to accountId: " + std::to_string( pSession->getAccountID() ) );