//Called when the remote client sends a message //Updates the client info table //Makes the client/player do an action if the msg was a command private void Client_ReceivedMsg(Client sender, byte[] data) { string incomingMsg = Encoding.Default.GetString(data); //Update the client table with the message that was received Invoke((MethodInvoker) delegate { for (int i = 0; i < lstClients.Items.Count; i++) { Player player = lstClients.Items[i].Tag as Player; if (player.RemoteClient.ID == sender.ID) { //Update the Table lstClients.Items[i].SubItems[2].Text = incomingMsg; lstClients.Items[i].SubItems[3].Text = DateTime.Now.ToString(); //Makes player do an action if the msg was a command player.DoAction(incomingMsg); break; } } }); }