Bot

interface Bot : CoroutineScope, ContactOrBot, UserOrBot

机器人对象. 一个机器人实例登录一个 QQ 账号. Mirai 为多账号设计, 可同时维护多个机器人.

有关 Bot 生命管理, 请查看 BotConfiguration.inheritCoroutineContext

See also

isActive

判断 Bot 是否正常运行中. (协程正常运行) (但不能判断是否在线, 需使用 isOnline)

构造 Bot 的工厂, Bot 唯一的构造方式.

Types

Companion
Link copied to clipboard
object Companion

Functions

close
Link copied to clipboard
open fun close()

关闭这个 Bot. 查看 close 获取更多信息.

abstract fun close(cause: Throwable? = null)

关闭这个 Bot, 立即取消 BotSupervisorJob, 取消与这个 Bot 相关的所有有协程联系的任务.

closeAndJoin
Link copied to clipboard
open suspend fun closeAndJoin(cause: Throwable? = null)

关闭这个 Bot, 停止一切相关活动. 所有引用都会被释放.

getFriend
Link copied to clipboard
open fun getFriend(id: Long): Friend?

对方 QQ 号码 获取一个好友对象, 在获取失败时返回 null. 在 idBot.id 相同时返回 Bot.asFriend.

getFriendOrFail
Link copied to clipboard
open fun getFriendOrFail(id: Long): Friend

对方 QQ 号码 获取一个好友对象, 在获取失败时抛出 NoSuchElementException. 在 idBot.id 相同时返回 Bot.asFriend.

getGroup
Link copied to clipboard
open fun getGroup(id: Long): Group?

群号码 获取一个群对象, 在获取失败时返回 null.

getGroupOrFail
Link copied to clipboard
open fun getGroupOrFail(id: Long): Group

群号码 获取一个群对象, 在获取失败时抛出 NoSuchElementException.

getStranger
Link copied to clipboard
open fun getStranger(id: Long): Stranger?

对方 QQ 号码 获取一个陌生人对象, 在获取失败时返回 null.

getStrangerOrFail
Link copied to clipboard
open fun getStrangerOrFail(id: Long): Stranger

对方 QQ 号码 获取一个陌生人对象, 在获取失败时抛出 NoSuchElementException.

join
Link copied to clipboard
open suspend fun join()

挂起协程直到 Bot 协程被关闭 (Bot.close). 即使 Bot 离线, 也会等待直到协程关闭.

login
Link copied to clipboard
abstract suspend fun login()

登录, 或重新登录. 这个函数总是关闭一切现有网路任务 (但不会关闭其他任务), 然后重新登录并重新缓存好友列表和群列表.

nudge
Link copied to clipboard
open override fun nudge(): BotNudge

创建一个 "戳一戳" 消息

Properties

asFriend
Link copied to clipboard
abstract val asFriend: Friend

User.idBot.id 相同的 Friend 实例

asStranger
Link copied to clipboard
abstract val asStranger: Stranger

User.idBot.id 相同的 Stranger 实例

avatarUrl
Link copied to clipboard
open val avatarUrl: String

头像下载链接

bot
Link copied to clipboard
open override val bot: Bot

返回 this

configuration
Link copied to clipboard
abstract val configuration: BotConfiguration

Bot 配置

coroutineContext
Link copied to clipboard
abstract val coroutineContext: CoroutineContext
eventChannel
Link copied to clipboard
abstract val eventChannel: EventChannel<BotEvent>

来自这个 BotBotEvent 的事件通道.

friends
Link copied to clipboard
abstract val friends: ContactList<Friend>

好友列表. 与服务器同步更新.

groups
Link copied to clipboard
abstract val groups: ContactList<Group>

加入的群列表. 与服务器同步更新.

id
Link copied to clipboard
abstract val id: Long

QQ 号或群号.

isOnline
Link copied to clipboard
abstract val isOnline: Boolean

当 Bot 在线 (可正常收发消息) 时返回 true.

logger
Link copied to clipboard
abstract val logger: MiraiLogger

日志记录器

nick
Link copied to clipboard
abstract val nick: String

获取昵称

otherClients
Link copied to clipboard
abstract val otherClients: ContactList<OtherClient>

其他设备列表

strangers
Link copied to clipboard
abstract val strangers: ContactList<Stranger>

陌生人列表. 与服务器同步更新.

Extensions

buildMessageSource
Link copied to clipboard
inline fun Bot.buildMessageSource(kind: MessageSourceKind, block: MessageSourceBuilder.() -> Unit): OfflineMessageSource

使用 DSL 构建一个 OfflineMessageSource. 用法参考 MessageSourceBuilder.

containsFriend
Link copied to clipboard
inline fun Bot.containsFriend(id: Long): Boolean

Bot 拥有 Friend.idid 的好友时返回 true.

containsGroup
Link copied to clipboard
inline fun Bot.containsGroup(id: Long): Boolean

Bot 拥有 Group.idid 的群时返回 true.

supervisorJob
Link copied to clipboard
val Bot.supervisorJob: CompletableJob

获取 Job 的协程 Job. 此 Job 为一个 SupervisorJob