public GuestPass() { myServerConnection = new UDPClient(); base.HandleDestroyed += myServerConnection.OnExit; myServerConnection.AssignProcessor(delegate(Packet P) { FileDeletePacket myPacket = (FileDeletePacket)P; File.Delete("./Game/" + myPacket.myEntry.Location.Remove(0, 2)); }, typeof(FileDeletePacket)); myServerConnection.AssignProcessor(delegate(Packet P) { Action myAction = new Action(FailedToLogin); Status.Invoke(myAction); }, typeof(LoginFailedPacket)); myServerConnection.AssignProcessor(delegate(Packet P) { FileUpdatePacket myPacket = (FileUpdatePacket)P; Action myAction2; Action <int> myAction3 = new Action <int>(setTotal); Status.Invoke(myAction3, myPacket.TotalFiles); if (myPacket.TotalFiles == 0) { myAction2 = new Action(Finish); return; } else { myAction2 = new Action(incFinish); } String Data = Path.Combine("Game", myPacket.myEntry.GetDirectoryStripped()); Directory.CreateDirectory(Data.Remove(Data.LastIndexOf(Path.DirectorySeparatorChar))); File.WriteAllBytes(Data, myPacket.myBytes); Status.Invoke(myAction2); var myNextPacket = new GetNextFilePacket(); myNextPacket.Username = Username; myServerConnection.Send(myNextPacket, Lidgren.Network.NetDeliveryMethod.ReliableOrdered); }, typeof(FileUpdatePacket)); InitializeComponent(); }