/// <summary> /// used to subscribe to user defined packages /// </summary> public void HandlePackage(object package, NetPeer peer) { MethodInfo mi = GetType().GetMethod("Handle"); if (mi == null) { return; } PropertyInfo[] fi = package.GetType().GetProperties(); foreach (PropertyInfo field in fi) { if (field.Name == "clientId") { if ((string)field.GetValue(package) == "") { field.SetValue(package, Flow.CreateClientId(peer)); } } } mi.Invoke(this, new object[] { package }); }