public void Server_StatusChanged(object sender, NetStatusEventArgs e) { // If a client disconnects, delete it from the list switch (e.Connection.Status) { case NetConnectionStatus.Disconnected: if (e.Connection.Tag != null) { int id = PlayerList.GetPlayerID(e.Connection); Log.Info("Client " + id + " disconnected : " + e.Reason); // Notify other clients BBMessage msg_back = new BBMessage(); msg_back.MsgDelPlayer(id, e.Reason); BroadcastMsgExcept(msg_back.GetNetMessage(), NetChannel.ReliableUnordered, id); // Notify NotifyClientDisconnected(e.Connection); // Delete the player from our list PList.DelPlayer(PlayerList.GetPlayerID(e.Connection)); } break; default: // display changes Log.Info(e.Connection + ": " + e.Connection.Status + " - " + e.Reason); break; } }