/// <summary> /// Send a packet to the server. Compression and encryption will be handled automatically. /// </summary> /// <param name="packetID">packet ID</param> /// <param name="packetData">packet Data</param> private void SendPacket(int packetID, IEnumerable <byte> packetData) { //The inner packet byte[] the_packet = dataTypes.ConcatBytes(dataTypes.GetVarInt(packetID), packetData.ToArray()); if (compression_treshold > 0) //Compression enabled? { if (the_packet.Length >= compression_treshold) //Packet long enough for compressing? { byte[] compressed_packet = ZlibUtils.Compress(the_packet); the_packet = dataTypes.ConcatBytes(dataTypes.GetVarInt(the_packet.Length), compressed_packet); } else { byte[] uncompressed_length = dataTypes.GetVarInt(0); //Not compressed (short packet) the_packet = dataTypes.ConcatBytes(uncompressed_length, the_packet); } } socketWrapper.SendDataRAW(dataTypes.ConcatBytes(dataTypes.GetVarInt(the_packet.Length), the_packet)); }
/// <summary> /// Send a packet to the server, compression and encryption will be handled automatically /// </summary> /// <param name="packetID">packet ID</param> /// <param name="packetData">packet Data</param> private void SendPacket(int packetID, byte[] packetData) { //The inner packet byte[] the_packet = concatBytes(getVarInt(packetID), packetData); if (compression_treshold > 0) //Compression enabled? { if (the_packet.Length > compression_treshold) //Packet long enough for compressing? { byte[] uncompressed_length = getVarInt(the_packet.Length); byte[] compressed_packet = ZlibUtils.Compress(the_packet); byte[] compressed_packet_length = getVarInt(compressed_packet.Length); the_packet = concatBytes(compressed_packet_length, compressed_packet); } else { byte[] uncompressed_length = getVarInt(0); //Not compressed (short packet) the_packet = concatBytes(uncompressed_length, the_packet); } } SendRAW(concatBytes(getVarInt(the_packet.Length), the_packet)); }