Exemple #1
0
    // 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();
    }