static void Main(string[] args) { if (!File.Exists("config.json")) MakeConfig(); else config = Config.Load(); Client client = new Client(); try { client.PacketReceived += Client_PacketReceived; client.ClientDisconnected += Client_ClientDisconnected; Console.WriteLine("Connecting..."); client.Connect(config.ServerIp, config.Port); Console.Clear(); client.Send(new Packet((short)PacketType.Authenticate, (byte)0, Version.Major, Version.Minor, config.Username, config.Password)); } catch { Console.WriteLine("Error connecting. Attempting to reconnect in 5 seconds..."); resetEvent.Set(); } if (client.Connected) { new Thread(() => { for (;;) { string input = Console.ReadLine(); if (!client.tcpClient.Connected) break; client.Send(new Packet((short)PacketType.Input, input)); } }).Start(); } resetEvent.WaitOne(); Thread.Sleep(5000); Console.Clear(); Main(args); return; }