コード例 #1
0
ファイル: WorldCluster.cs プロジェクト: bmjoy/MangosSharp
        public void LoadConfig()
        {
            // DONE: Setting SQL Connections
            var accountDbSettings = Strings.Split(configurationProvider.GetConfiguration().AccountDatabase, ";");

            if (accountDbSettings.Length != 6)
            {
                Console.WriteLine("Invalid connect string for the account database!");
            }
            else
            {
                GetAccountDatabase().SQLDBName     = accountDbSettings[4];
                GetAccountDatabase().SQLHost       = accountDbSettings[2];
                GetAccountDatabase().SQLPort       = accountDbSettings[3];
                GetAccountDatabase().SQLUser       = accountDbSettings[0];
                GetAccountDatabase().SQLPass       = accountDbSettings[1];
                GetAccountDatabase().SQLTypeServer = (SQL.DB_Type)Enum.Parse(typeof(SQL.DB_Type), accountDbSettings[5]);
            }

            var characterDbSettings = Strings.Split(configurationProvider.GetConfiguration().CharacterDatabase, ";");

            if (characterDbSettings.Length != 6)
            {
                Console.WriteLine("Invalid connect string for the character database!");
            }
            else
            {
                GetCharacterDatabase().SQLDBName     = characterDbSettings[4];
                GetCharacterDatabase().SQLHost       = characterDbSettings[2];
                GetCharacterDatabase().SQLPort       = characterDbSettings[3];
                GetCharacterDatabase().SQLUser       = characterDbSettings[0];
                GetCharacterDatabase().SQLPass       = characterDbSettings[1];
                GetCharacterDatabase().SQLTypeServer = (SQL.DB_Type)Enum.Parse(typeof(SQL.DB_Type), characterDbSettings[5]);
            }

            var worldDbSettings = Strings.Split(configurationProvider.GetConfiguration().WorldDatabase, ";");

            if (worldDbSettings.Length != 6)
            {
                Console.WriteLine("Invalid connect string for the world database!");
            }
            else
            {
                GetWorldDatabase().SQLDBName     = worldDbSettings[4];
                GetWorldDatabase().SQLHost       = worldDbSettings[2];
                GetWorldDatabase().SQLPort       = worldDbSettings[3];
                GetWorldDatabase().SQLUser       = worldDbSettings[0];
                GetWorldDatabase().SQLPass       = worldDbSettings[1];
                GetWorldDatabase().SQLTypeServer = (SQL.DB_Type)Enum.Parse(typeof(SQL.DB_Type), worldDbSettings[5]);
            }

            // DONE: Creating logger
            Log          = BaseWriter.CreateLog(configurationProvider.GetConfiguration().LogType, configurationProvider.GetConfiguration().LogConfig);
            Log.LogLevel = configurationProvider.GetConfiguration().LogLevel;

            // DONE: Cleaning up the packet log
            if (configurationProvider.GetConfiguration().PacketLogging)
            {
                File.Delete("packets.log");
            }
        }
コード例 #2
0
ファイル: WorldServer.cs プロジェクト: bmjoy/MangosSharp
        public void LoadConfig()
        {
            try
            {
                string   FileName = "configs/WorldServer.ini";
                string[] args     = Environment.GetCommandLineArgs();
                string[] array    = args;
                foreach (var arg in from string arg in array
                         where arg.IndexOf("config") != -1
                         select arg)
                {
                    FileName = Strings.Trim(arg.Substring(checked (arg.IndexOf("=") + 1)));
                }

                if (!File.Exists(FileName))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("[{0}] Cannot Continue. {1} does not exist.", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss"), FileName);
                    Console.WriteLine("Please copy the ini files into the same directory as the Server exe files.");
                    Console.WriteLine("Press any key to exit server: ");
                    Console.ReadKey();
                    ProjectData.EndApp();
                }
                Console.Write("[{0}] Loading Configuration from {1}...", Strings.Format(DateAndTime.TimeOfDay, "hh:mm:ss"), FileName);
                WorldServerConfiguration configuration = WorldServiceLocator._ConfigurationProvider.GetConfiguration();
                Console.WriteLine(".[done]");
                if (!configuration.VMapsEnabled)
                {
                    configuration.LineOfSightEnabled = false;
                    configuration.HeightCalcEnabled  = false;
                }
                string[] AccountDBSettings = Strings.Split(configuration.AccountDatabase, ";");
                if (AccountDBSettings.Length == 6)
                {
                    AccountDatabase.SQLDBName     = AccountDBSettings[4];
                    AccountDatabase.SQLHost       = AccountDBSettings[2];
                    AccountDatabase.SQLPort       = AccountDBSettings[3];
                    AccountDatabase.SQLUser       = AccountDBSettings[0];
                    AccountDatabase.SQLPass       = AccountDBSettings[1];
                    AccountDatabase.SQLTypeServer = (SQL.DB_Type)Conversions.ToInteger(Enum.Parse(typeof(SQL.DB_Type), AccountDBSettings[5]));
                }
                else
                {
                    Console.WriteLine("Invalid connect string for the account database!");
                }
                string[] CharacterDBSettings = Strings.Split(configuration.CharacterDatabase, ";");
                if (CharacterDBSettings.Length == 6)
                {
                    CharacterDatabase.SQLDBName     = CharacterDBSettings[4];
                    CharacterDatabase.SQLHost       = CharacterDBSettings[2];
                    CharacterDatabase.SQLPort       = CharacterDBSettings[3];
                    CharacterDatabase.SQLUser       = CharacterDBSettings[0];
                    CharacterDatabase.SQLPass       = CharacterDBSettings[1];
                    CharacterDatabase.SQLTypeServer = (SQL.DB_Type)Conversions.ToInteger(Enum.Parse(typeof(SQL.DB_Type), CharacterDBSettings[5]));
                }
                else
                {
                    Console.WriteLine("Invalid connect string for the character database!");
                }
                string[] WorldDBSettings = Strings.Split(configuration.WorldDatabase, ";");
                if (WorldDBSettings.Length == 6)
                {
                    WorldDatabase.SQLDBName     = WorldDBSettings[4];
                    WorldDatabase.SQLHost       = WorldDBSettings[2];
                    WorldDatabase.SQLPort       = WorldDBSettings[3];
                    WorldDatabase.SQLUser       = WorldDBSettings[0];
                    WorldDatabase.SQLPass       = WorldDBSettings[1];
                    WorldDatabase.SQLTypeServer = (SQL.DB_Type)Conversions.ToInteger(Enum.Parse(typeof(SQL.DB_Type), WorldDBSettings[5]));
                }
                else
                {
                    Console.WriteLine("Invalid connect string for the world database!");
                }
                WorldServiceLocator._WS_Maps.RESOLUTION_ZMAP = checked (configuration.MapResolution - 1);
                if (WorldServiceLocator._WS_Maps.RESOLUTION_ZMAP < 63)
                {
                    WorldServiceLocator._WS_Maps.RESOLUTION_ZMAP = 63;
                }
                if (WorldServiceLocator._WS_Maps.RESOLUTION_ZMAP > 255)
                {
                    WorldServiceLocator._WS_Maps.RESOLUTION_ZMAP = 255;
                }
                Log          = BaseWriter.CreateLog(configuration.LogType, configuration.LogConfig);
                Log.LogLevel = configuration.LogLevel;
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Exception e = ex;
                Console.WriteLine(e.ToString());
                ProjectData.ClearProjectError();
            }
        }