发送图片

在上一章中, 你似乎已经发现了, 我们有一句 File("C:\\image.png").sendAsImage(), 十分好懂, 对吧

发送图片实际上分为两步, 第一步我们需要上传图片到服务器, 称之为 uploadImage, 然后我们需要直接把图片发出去, 发出去~

val image = uploadImage(File("C:\\image.jpg"))
reply(image)

你可以在 这里 找到 mirai 执行的全部消息类型

信息组合

我们可以组合多种信息, 比如 文本 + 图片 或者 图片 + 文本

组合一段信息也十分简单, 你只需要想下面那样

val messageChain = uploadImage(...) + " Sub Message"

特别的, 对于字符串 (String) 在第一位的情况下, 我们做点特殊处理,

val messageChain = "".toMessage() + uploadImage(File(""))

如果要 at 某个人也十分简单

CoroutineScope(Dispatchers.IO).subscribeAlways<GroupMessageEvent> {
    val messageAt = sender.at()
}

判断bot是否被 at 了, 也能十分简单的确认

CoroutineScope(Dispatchers.IO).subscribeAlways<GroupMessageEvent> {
    if (message.any { it is At && it.target == bot.id }) {
        reply("?")
    }
}

定点发送信息

有时候, 我们需要直接定点发送某段信息, 比如我们的什么服务更新了, 我们可以直接推送到群里, 或者私聊

val group = bot.getGroup(1234567890L)
group.sendMessage("Hello!")

val image = group.uploadImage(File("image.jpg")) // 给这个群上传图片, 对此群适用

group.sendMessage(image)