// Account login void OnAccountLoggedIn(Account account) { // Save the reference in a dictionary var player = new LobbyPlayer(account); // Disconnected already? // This can happen if the database takes too much time to respond. if (player.disconnected) { LogManager.General.LogWarning("Peer disconnected already, interrupting login process for: " + player.peer); return; } LogManager.General.Log("Account '" + account.name + "' logged in."); // Set online status player.onlineStatus = OnlineStatus.Online; // Async: Retrieve the player information SendPublicAccountInfo( player.accountId, // Account ID player // Receiver ); // Others SettingsDB.GetInputSettings(player); AccessLevelsDB.GetAccessLevel(player); FriendsDB.GetFriends(player); FriendsDB.GetFollowers(player); // Async: Set last login date LobbyGameDB.SetLastLoginDate(player, System.DateTime.UtcNow); // Register access to this account by this IP IPInfoDB.RegisterAccountAccess(player.ip, player.accountId); // Save country player.UpdateCountry(); }