public bool Login( string username, string password, Enums.OnlineStatus onlineStatus = Enums.OnlineStatus.Online, Enums.DeviceType deviceType = Enums.DeviceType.Android) { try { Current = this; PacketManager.InitializeHandlers(); CommandManager.InitializeCommands(); Username = username; Password = password; OnlineStatus = onlineStatus; DeviceType = deviceType; _tcpClient = new TcpClient(_host, _port); Current = this; _networkStream = _tcpClient.GetStream(); SendPacket(PacketTemplates.Logon(Username, DeviceType)); _networkStream.BeginRead(_buffer, 0, _buffer.Length, ReadCallback, null); Console.WriteLine(_buffer.Length); return(true); } catch (Exception a) { return(false); } }
public void Process(Tcp tcp, Packet packet) { var payload = Encoding.Default.GetBytes(packet.Payload); // windows-1252 var password = Encoding.Default.GetBytes(tcp.Password); var encrypted = Crypto.GenerateAuth(payload, password); var authpacket = PacketTemplates.Auth(encrypted, Enums.OnlineStatus.Online); tcp.SendPacket(authpacket); }
// Misc public void SendGroupTextMessage(int groupId, string message) { if (message.Length <= 512) { PacketTemplates.GroupMessage(groupId, message).Write(); } else { PacketTemplates.ChunkGroupMessage(groupId, message).ToList().ForEach(p => p.Write()); } }
public void SendGroupImage(int groupId, byte[] img) { PacketTemplates.GroupImage(groupId, img).ToList().ForEach(p => p.Write()); }
public void SendPrivateTextMessage(int userId, string message) { PacketTemplates.PrivateMessage(userId, message).Write(); }
public void Process(Tcp tcp, Packet packet) { tcp.SendPacket(PacketTemplates.PING()); }