3.message
发送图片
在上一章中, 你似乎已经发现了, 我们有一句 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)