internal void SendClientSettings() { if (XRay.IsInvokeRequired()) { XRay.RunInCoreAsync(() => SendClientSettings()); return; } if (ServerConnection == null) { return; } var packet = new GenericPacket("Settings"); packet.Data = new Dictionary <string, string>() { { "TargetFps", XRay.TargetFps.ToString() }, { "TrackFunctionHits", XRay.TrackFunctionHits.ToString() }, { "FlowTracking", XRay.FlowTracking.ToString() }, { "InstanceTracking", XRay.InstanceTracking.ToString() }, { "TrackRemoteProfiling", XRay.Remote.TrackRemoteProfiling.ToString() }, { "TrackRemoteThreadlines", XRay.Remote.TrackRemoteThreadlines.ToString() } }; ServerConnection.SendPacket(packet); }
internal void OnConnected(XConnection connection) { if (XRay.IsInvokeRequired()) { XRay.RunInCoreAsync(() => OnConnected(connection)); return; } // runs when client connects to server, not the other way around (that's what OnAccept is for) RemoteStatus = "Requesting Dat Hash"; connection.SendPacket(new GenericPacket("DatHashRequest")); }
internal void IncomingPacket(XConnection connection, G2ReceivedPacket packet) { if (XRay.IsInvokeRequired()) { XRay.RunInCoreAsync(() => IncomingPacket(connection, packet)); return; } switch (packet.Root.Name) { case PacketType.Padding: //Log("Crypt Padding Received"); break; case PacketType.Generic: var generic = GenericPacket.Decode(packet.Root); Log("Generic Packet Received: " + generic.Name); if (RouteGeneric.ContainsKey(generic.Name)) { RouteGeneric[generic.Name](connection, generic); } else { Log("Unknown generic packet: " + generic.Name); } break; case PacketType.Dat: Receive_DatPacket(connection, packet); break; case PacketType.Sync: Receive_Sync(connection, packet); break; case PacketType.Instance: Receive_Instance(connection, packet); break; default: Log("Unknown Packet Type: " + packet.Root.Name.ToString()); break; } }