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;