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); } }
public static void Stop() { Lidgren.MasterServer.RunServer = false; LunaHttpServer.Server.Dispose(); MasterServerPortMapper.RemoveOpenedPorts().Wait(); }