Drew DeVault 5086565c41 Flesh out launcher some more
The client now uses the username you provide during login in the
launcher. Of note is that the actual login flow is not implemented -
there is no authentication.
2015-05-30 16:45:43 -06:00

46 lines
1.4 KiB
C#

using System;
using System.Net;
using System.Linq;
using System.Net.Sockets;
using TrueCraft.Core;
namespace TrueCraft.Client
{
public static class Program
{
[STAThread]
public static void Main(string[] args)
{
var user = new TrueCraftUser { Username = args[1] };
var client = new MultiplayerClient(user);
var game = new TrueCraftGame(client, ParseEndPoint(args[0]));
game.Run();
client.Disconnect();
}
private static IPEndPoint ParseEndPoint(string arg)
{
IPAddress address;
int port;
if (arg.Contains(':'))
{
// Both IP and port are specified
var parts = arg.Split(':');
if (!IPAddress.TryParse(parts[0], out address))
address = Resolve(parts[0]);
return new IPEndPoint(address, int.Parse(parts[1]));
}
if (IPAddress.TryParse(arg, out address))
return new IPEndPoint(address, 25565);
if (int.TryParse(arg, out port))
return new IPEndPoint(IPAddress.Loopback, port);
return new IPEndPoint(Resolve(arg), 25565);
}
private static IPAddress Resolve(string arg)
{
return Dns.GetHostEntry(arg).AddressList.FirstOrDefault(item => item.AddressFamily == AddressFamily.InterNetwork);
}
}
}