This commit is contained in:
Him188 2020-01-14 17:23:00 +08:00
parent b54f93f1ec
commit f30eb7c0e2
2 changed files with 9 additions and 3 deletions

View File

@ -13,7 +13,8 @@ import net.mamoe.mirai.utils.cryptor.encryptAndWrite
import net.mamoe.mirai.utils.io.*
/**
* 待发送给服务器的数据包. 它代表着一个 [ByteReadPacket],
* 待发送给服务器的数据包. 它代表着一个 [ByteReadPacket].
* 只有最终的包才会被包装为 [OutgoingPacket].
*/
@UseExperimental(ExperimentalUnsignedTypes::class)
internal class OutgoingPacket constructor(
@ -31,7 +32,10 @@ private val KEY_16_ZEROS = ByteArray(16)
private val EMPTY_BYTE_ARRAY = ByteArray(0)
/**
* Outermost packet for login
* 最外层的包. 结构适用于登录.
*
* QQ 中这个被以 JNI 实现:
* com.tencent.qphone.base.util.CodecWarpper#encodeRequest(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte[], int, int, java.lang.String, byte, byte, byte, byte[], byte[], boolean)
*
* **Packet structure**
* int remaining.length + 4

View File

@ -19,7 +19,7 @@ import kotlin.jvm.JvmName
/**
* 一种数据包的处理工厂. 它可以解密解码服务器发来的这个包, 也可以编码加密要发送给服务器的这个包
* 应由一个 `object` 实现, 且实现 `operator fun invoke`
* 应由一个 `object` 实现, 且实现 `operator fun invoke` 或按 subCommand 或其意义命名的函数来构造 [OutgoingPacket]
*
* @param TPacket 服务器回复包解析结果
* @param TDecrypter 服务器回复包解密器
@ -27,6 +27,8 @@ import kotlin.jvm.JvmName
@UseExperimental(ExperimentalUnsignedTypes::class)
internal abstract class PacketFactory<out TPacket : Packet, TDecrypter : Decrypter>(val decrypterType: DecrypterType<TDecrypter>) {
// TODO: 2020/1/12 Decrypter 多余. 需要删除
@Suppress("PropertyName")
internal var _id: PacketId = NullPacketId