diff --git a/MudProxy/MudProxy.csproj b/MudProxy/MudProxy.csproj index 90cf5a2..3e6d246 100644 --- a/MudProxy/MudProxy.csproj +++ b/MudProxy/MudProxy.csproj @@ -11,7 +11,7 @@ - + diff --git a/MudProxy/Program.cs b/MudProxy/Program.cs index bc9f7cc..59a857b 100644 --- a/MudProxy/Program.cs +++ b/MudProxy/Program.cs @@ -15,29 +15,32 @@ RootCommand rootCommand = new("MUD Proxy"); Option hostNameOption = - new("--hostname", "Hostname of the MUD server to connect to.") { IsRequired = true }; -hostNameOption.AddAlias("-h"); + new("--hostname") { Description = "Hostname of the MUD server to connect to.", Required = true }; +hostNameOption.Aliases.Add("-h"); rootCommand.Add(hostNameOption); Option hostPortOption = - new("--host-port", "Port to connect to the MUD server on.") { IsRequired = true }; -hostPortOption.AddAlias("-p"); + new("--host-port") { Description = "Port to connect to the MUD server on.", Required = true }; +hostPortOption.Aliases.Add("-p"); rootCommand.Add(hostPortOption); Option proxyPortOption = - new("--proxy-port", "Port the MUD proxy will listen for clients on.") { IsRequired = true }; -proxyPortOption.AddAlias("-l"); + new("--proxy-port") { Description = "Port the MUD proxy will listen for clients on.", Required = true }; +proxyPortOption.Aliases.Add("-l"); rootCommand.Add(proxyPortOption); Option mccp2Option = - new("--mccp", "Enable MUD Client Compression V2 (MCCP2) if the server supports it."); -mccp2Option.AddAlias("-c"); + new("--mccp") { Description = "Enable MUD Client Compression V2 (MCCP2) if the server supports it." }; +mccp2Option.Aliases.Add("-c"); rootCommand.Add(mccp2Option); -rootCommand.SetHandler(async ( - string hostName, int hostPort, int proxyPort, bool enableMccp2 -) => +rootCommand.SetAction(async parseResult => { + string hostName = parseResult.GetValue(hostNameOption)!; + int hostPort = parseResult.GetValue(hostPortOption); + int proxyPort = parseResult.GetValue(proxyPortOption); + bool enableMccp2 = parseResult.GetValue(mccp2Option); + Proxy proxy = new(enableMccp2); Task clientTask = proxy.ListenForClientsAsync(proxyPort, cancelToken); @@ -54,8 +57,8 @@ await Task.WhenAll(clientTask, hostTask); Console.WriteLine("Program exiting."); -}, hostNameOption, hostPortOption, proxyPortOption, mccp2Option); +}); -await rootCommand.InvokeAsync(args); +await rootCommand.Parse(args).InvokeAsync(); return 0;