예제 #1
0
        /// <summary>
        /// Initializes the session offline, or not connected to any router server
        /// </summary>
        /// <returns></returns>
        public void InitOffline(LoginServerConfig config, int[] ports)
        {
            //Set config
            enviornment             = config.enviornment;
            loggingEnabled          = config.log;
            steamApiKey             = config.steam_api_key;
            steamCacheExpireMinutes = config.steam_cache_expire_minutes;
            firebaseUcBucket        = config.firebase_uc_bucket;
            steamTokenKey           = Convert.FromBase64String(config.steam_token_key);
            userPorts  = ports;
            instanceId = "OFFLINE_INSTANCE";
            hosts      = config.hosts;

            //Connect to database
            OpenDatabase(config.mongodb_connection, config.enviornment);

            //Log
            Log("Init", $"Init succeeded. Running offline.", DeltaLogLevel.Medium);
        }
예제 #2
0
        /// <summary>
        /// Initializes the session online, connected to a router server
        /// </summary>
        /// <returns></returns>
        public async Task InitNetworked()
        {
            //Wait for login to succeed.
            Log("Init", "Login packet sent, waiting for router to respond...", DeltaLogLevel.Medium);
            while (!net.loggedIn)
            {
                ;
            }

            //Request config
            Log("Init", "Login succeeded. Requesting config, waiting for router to respond...", DeltaLogLevel.Medium);
            var loginDetails = await net.RequestConfig();

            //Make sure login was successful
            if (!loginDetails.success)
            {
                throw new Exception("Failed to request config. Server rejected our request.");
            }

            //Set config
            enviornment             = loginDetails.config.enviornment;
            loggingEnabled          = loginDetails.config.log;
            steamApiKey             = loginDetails.config.steam_api_key;
            steamCacheExpireMinutes = loginDetails.config.steam_cache_expire_minutes;
            firebaseUcBucket        = loginDetails.config.firebase_uc_bucket;
            steamTokenKey           = Convert.FromBase64String(loginDetails.config.steam_token_key);
            userPorts  = loginDetails.user_ports;
            instanceId = loginDetails.instance_id;
            hosts      = loginDetails.config.hosts;

            //Connect to database
            OpenDatabase(loginDetails.config.mongodb_connection, loginDetails.config.enviornment);

            //Open event handler
            events = new DeltaEventMaster(this);

            //Log
            Log("Init", $"Init succeeded. Connected with instance ID {loginDetails.instance_id}.", DeltaLogLevel.Medium);
        }