Bot

interface Bot : CoroutineScope, ContactOrBot, UserOrBot

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

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

See also

isActive

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

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

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
@JvmName(name = "getAvatarUrl")
open fun avatarUrl(spec: AvatarSpec): String

头像下载链接.

Link copied to clipboard
open fun close()

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

abstract fun close(cause: Throwable? = null)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Link copied to clipboard
open suspend fun join()

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

Link copied to clipboard
abstract suspend fun login()

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

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

创建一个 "戳一戳" 消息

Properties

Link copied to clipboard
abstract val asFriend: Friend

User.idBot.id 相同的 Friend 实例

Link copied to clipboard
abstract val asStranger: Stranger

User.idBot.id 相同的 Stranger 实例

Link copied to clipboard
open val avatarUrl: String

头像下载链接, 规格默认为 AvatarSpec.LARGEST

Link copied to clipboard
open override val bot: Bot

返回 this

Link copied to clipboard
abstract val configuration: BotConfiguration

Bot 配置

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

来自这个 BotBotEvent 的事件通道.

Link copied to clipboard
abstract val friendGroups: FriendGroups

全部的好友分组

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

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

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

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

Link copied to clipboard
abstract val id: Long

QQ 号或群号.

Link copied to clipboard
abstract val isOnline: Boolean

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

Link copied to clipboard
abstract val logger: MiraiLogger

日志记录器

Link copied to clipboard
abstract val nick: String

获取昵称

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

其他设备列表

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

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

Extensions

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

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

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

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

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

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

Link copied to clipboard
val Bot.supervisorJob: CompletableJob

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