From 828332b7d9ad4ebfb0855cd40caf139b23d9b0e7 Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Thu, 20 Feb 2020 21:31:09 +0800 Subject: [PATCH] Fix `At`, close #73 --- .../mamoe/mirai/qqandroid/message/MessageQQA.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/MessageQQA.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/MessageQQA.kt index ef297c3b4..5d0068691 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/MessageQQA.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/MessageQQA.kt @@ -9,6 +9,8 @@ package net.mamoe.mirai.qqandroid.message +import kotlinx.io.core.buildPacket +import kotlinx.io.core.readBytes import kotlinx.io.core.readUInt import net.mamoe.mirai.message.data.* import net.mamoe.mirai.qqandroid.network.protocol.data.proto.ImMsgBody @@ -20,13 +22,18 @@ import net.mamoe.mirai.utils.io.hexToBytes import net.mamoe.mirai.utils.io.read import net.mamoe.mirai.utils.io.toByteArray -private val AT_BUF_1 = byteArrayOf(0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00) // groupCard = 0x07; nick = 0x0A -private val AT_BUF_2 = ByteArray(2) - internal fun At.toJceData(): ImMsgBody.Text { + val text = this.toString() return ImMsgBody.Text( - str = this.toString(), - attr6Buf = AT_BUF_1 + this.target.toInt().toByteArray() + AT_BUF_2 + str = text, + attr6Buf = buildPacket { + writeShort(1) + writeShort(0) + writeShort(text.length.toShort()) + writeByte(1) + writeInt(target.toInt()) + writeShort(0) + }.readBytes() ) }