mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 14:30:09 +08:00
Message receiver is working!
This commit is contained in:
parent
2e20d75298
commit
dc6ee1093d
@ -6,6 +6,7 @@ import net.mamoe.mirai.event.MiraiEventManager
|
||||
import net.mamoe.mirai.event.events.robot.RobotLoginSucceedEvent
|
||||
import net.mamoe.mirai.network.packet.*
|
||||
import net.mamoe.mirai.network.packet.login.*
|
||||
import net.mamoe.mirai.network.packet.message.ClientSendFriendMessagePacket
|
||||
import net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacket
|
||||
import net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacketEncrypted
|
||||
import net.mamoe.mirai.task.MiraiThreadPool
|
||||
@ -230,6 +231,10 @@ class RobotNetworkHandler(val robot: Robot, val number: Int, private val passwor
|
||||
|
||||
is ServerFriendMessageEventPacket -> {
|
||||
println(packet.toString())
|
||||
if (packet.message == "牛逼") {
|
||||
sendPacket(ClientSendFriendMessagePacket(this.number, packet.qq, this.sessionKey, "牛逼!!"))
|
||||
}
|
||||
|
||||
//friend message
|
||||
}
|
||||
|
||||
|
@ -10,22 +10,24 @@ import net.mamoe.mirai.util.lazyEncode
|
||||
@PacketId("00 CD")
|
||||
@ExperimentalUnsignedTypes
|
||||
class ClientSendFriendMessagePacket(
|
||||
val qq: Int,
|
||||
val robotQQ: Int,
|
||||
val targetQQ: Int,
|
||||
val sessionKey: ByteArray,
|
||||
val message: String
|
||||
) : ClientPacket() {
|
||||
override fun encode() {
|
||||
this.writeRandom(2)//part of packet id
|
||||
this.writeQQ(qq)
|
||||
this.writeQQ(robotQQ)
|
||||
this.writeHex(Protocol._fixVer)
|
||||
|
||||
this.encryptAndWrite(sessionKey) {
|
||||
it.writeQQ(qq)
|
||||
it.writeQQ(qq)//that's correct
|
||||
it.writeQQ(robotQQ)
|
||||
it.writeQQ(targetQQ)
|
||||
it.writeHex("00 00 00 08 00 01 00 04 00 00 00 00")
|
||||
it.writeHex("37 0F")
|
||||
it.writeQQ(qq)
|
||||
it.write(md5(lazyEncode { md5Key -> md5Key.writeQQ(qq); md5Key.write(sessionKey) }))
|
||||
it.writeQQ(robotQQ)
|
||||
it.writeQQ(targetQQ)
|
||||
it.write(md5(lazyEncode { md5Key -> md5Key.writeQQ(targetQQ); md5Key.write(sessionKey) }))
|
||||
it.writeHex("00 0B")
|
||||
it.writeRandom(2)
|
||||
it.writeInt(System.currentTimeMillis().toInt())
|
||||
@ -43,12 +45,13 @@ class ClientSendFriendMessagePacket(
|
||||
TODO("复合消息构建")
|
||||
} else {
|
||||
//Plain text
|
||||
this.writeByte(0x01)
|
||||
this.writeInt(message.length + 3)
|
||||
this.writeByte(0x01)
|
||||
this.writeInt(message.length)
|
||||
this.write(message.toByteArray())
|
||||
}
|
||||
val bytes = message.toByteArray()
|
||||
it.writeByte(0x01)
|
||||
it.writeShort(bytes.size)
|
||||
it.writeByte(0x01)
|
||||
it.writeShort(bytes.size - 1)
|
||||
it.write(bytes)
|
||||
}//todo check
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user