Exemple #1
0
        public async void OnResourceStart()
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.WriteLine($"\n\n---------------------------- STARTING {Globals.SERVER_NAME} ({Globals.VERSION}) ----------------------------");
            Console.ResetColor();
            Console.WriteLine();

            // Server Settings
            NAPI.Server.SetAutoSpawnOnConnect(false);
            NAPI.Server.SetAutoRespawnAfterDeath(false);
            NAPI.Server.SetDefaultSpawnLocation(DefaultSpawnPos);
            NAPI.Server.SetGlobalServerChat(false);
            // Initialize the Logger
            Logger.GetInstance();

            // Get Database Settings (meta.xml)
            DbConnectionProvider.ProviderName = NAPI.Resource.GetSetting <string>(this, "DB_PROVIDER");
            var dbConnectionStringBuilder = DbConnectionProvider.CreateDbConnectionStringBuilder();

            dbConnectionStringBuilder.Add("Server", NAPI.Resource.GetSetting <string>(this, "DB_HOST"));
            dbConnectionStringBuilder.Add("Port", NAPI.Resource.GetSetting <uint>(this, "DB_PORT"));
            dbConnectionStringBuilder.Add("Database", NAPI.Resource.GetSetting <string>(this, "DB_DATABASE"));
            dbConnectionStringBuilder.Add("UserID", NAPI.Resource.GetSetting <string>(this, "DB_USERNAME"));
            dbConnectionStringBuilder.Add("Password", NAPI.Resource.GetSetting <string>(this, "DB_PASSWORD"));
            dbConnectionStringBuilder.Add("ConvertZeroDateTime", true);
            DbConnectionProvider.ConnectionString = dbConnectionStringBuilder.ConnectionString;

            // Test SQL Connection
            await DbConnectionProvider.TestConnection();

            // Get SMTP Settings (meta.xml)
            EmailSender.SmtpHost     = NAPI.Resource.GetSetting <string>(this, "SMTP_HOST");
            EmailSender.SmtpPort     = NAPI.Resource.GetSetting <int>(this, "SMTP_PORT");
            EmailSender.SmtpUsername = NAPI.Resource.GetSetting <string>(this, "SMTP_USERNAME");
            EmailSender.SmtpPassword = NAPI.Resource.GetSetting <string>(this, "SMTP_PASSWORD");
            // Have expired tokens get removed once per hour
            _expiredEmailTokensTimer = new Timer(OnRemoveExpiredEmailTokens, null, 1, 1000 * 60 * 60);

            // Sever World Settings
            var worldData = await WorldModel.GetWorldData();

            WorldHandler.CurrentTime = worldData.ServerTime;
            NAPI.World.ResetIplList();
        }