BnetServer.BnetServer.Main C# (CSharp) Method

Main() public static method

public static Main ( string args ) : void
args string
return void
        public static void Main(string[] args)
        {
            var startParams = Helper.ParseArgs(args);

            // We need an alias here.
            if (!startParams.ContainsKey("alias") || startParams["alias"] == null)
                Shutdown();

            Alias = startParams["alias"].ToString();

            BnetConfig.Initialize("Configs/BnetServer.conf");

            Helper.PrintHeader(serverName);

            var bnetDbConnectionString = Database.CreateConnectionString(BnetConfig.BnetDatabaseHost, BnetConfig.BnetDatabaseUser, BnetConfig.BnetDatabasePassword,
                                         BnetConfig.BnetDatabaseDataBase, BnetConfig.BnetDatabasePort, BnetConfig.BnetDatabaseMinPoolSize, BnetConfig.BnetDatabaseMaxPoolSize,
                                         BnetConfig.BnetDatabaseType);

            if (!Database.Bnet.Initialize(bnetDbConnectionString, BnetConfig.BnetDatabaseType))
            {
                Log.Message(LogTypes.Error, $"Can't connect to bnet database.");

                Shutdown();
            }

            var dbLogger = new DBLogger();

            dbLogger.Initialize(BnetConfig.LogLevel, BnetConfig.LogDatabaseFile != "" ? new LogFile(BnetConfig.LogDirectory, BnetConfig.LogDatabaseFile) : null);

            Database.Bnet.SetLogger(dbLogger);

            using (ConsoleClient = new ConsolePipeClient(BnetConfig.ConsoleServiceServer, BnetConfig.ConsoleServiceName))
            {
                IPCPacketManager.DefineMessageHandler();

                // Register console to ServerManager and start listening for incoming ipc packets.
                ConsoleClient.Send(new RegisterConsole { Alias = Alias }).GetAwaiter().GetResult();
                ConsoleClient.Process();

                using (var bnetServer = new BnetSocketServer(BnetConfig.BnetBindHost, BnetConfig.BnetBindPort, BnetConfig.BnetMaxConnections, 0x4000))
                using (var bnetChallengeServer = new BnetChallengeSocketServer(BnetConfig.BnetChallengeBindHost, BnetConfig.BnetChallengeBindPort, BnetConfig.BnetChallengeMaxConnections, 0x4000))
                {
                    if (bnetServer.Start())
                        Log.Message(LogTypes.Info, $"Bnet connection listening on '{BnetConfig.BnetBindHost}:{BnetConfig.BnetBindPort}'.");

                    if (bnetChallengeServer.Start())
                        Log.Message(LogTypes.Info, $"Bnet challenge connection listening on '{BnetConfig.BnetChallengeBindHost}:{BnetConfig.BnetChallengeBindPort}'.");

                    if (bnetServer.IsListening && bnetChallengeServer.IsListening)
                    {
                        Manager.BnetPacket.Initialize();
                        Manager.RestPacket.Initialize();

                        CommandManager.InitializeCommands();

                        Log.Message(LogTypes.Success, $"{serverName} successfully started.");

                        CommandManager.StartCommandHandler();
                    }
                }
            }
        }