Пример #1
0
        public static void MainEntryPoint(string[] args)
        {
            MasterServerPortMapper.UseUpnp = !args.Any(a => a.Contains("noupnp"));
            IsNightly = args.Any(a => a.Contains("nightly"));
            if (Common.PlatformIsWindows())
            {
                ConsoleUtil.DisableConsoleQuickEdit();
            }

            Console.Title = $"LMP MasterServer {LmpVersioning.CurrentVersion}";

            if (IsNightly)
            {
                Console.Title += " NIGHTLY";
            }

            Console.OutputEncoding = Encoding.Unicode;

            var commandLineArguments = new Arguments(args);

            if (commandLineArguments["h"] != null)
            {
                ShowCommandLineHelp();
                return;
            }

            if (!ParseMasterServerPortNumber(commandLineArguments))
            {
                return;
            }
            if (!ParseHttpServerPort(commandLineArguments))
            {
                return;
            }
            MasterServerPortMapper.OpenPort().GetAwaiter().GetResult();

            LunaLog.Normal($"Starting MasterServer at port: {Lidgren.MasterServer.Port}");
            if (IsNightly)
            {
                LunaLog.Normal("Will download NIGHTLY versions!");
            }
            LunaLog.Normal($"Listening for GET requests at port: {LunaHttpServer.Port}");

            if (CheckPort())
            {
                Lidgren.MasterServer.RunServer = true;
                WebHandler.InitWebFiles();
                LunaHttpServer.Start();
                Task.Run(DedicatedServerRetriever.RefreshDedicatedServersList);
                Task.Run(MasterServerPortMapper.RefreshUpnpPort);
                Task.Run(Lidgren.MasterServer.Start);
            }
        }
Пример #2
0
 public static void Stop()
 {
     Lidgren.MasterServer.RunServer = false;
     LunaHttpServer.Server.Dispose();
     MasterServerPortMapper.RemoveOpenedPorts().Wait();
 }