Bot

一个 KOOK Bot。

Bot 承载了通过 WebSocket 的方式与 KOOK 服务器连接并订阅事件的能力, 以及通过各种 KOOK HTTP API 进行功能交互的能力。

日志

Bot 中主要提供了两个日志命名:

  • love.forte.simbot.kook.bot.${ticket.clientId}

  • love.forte.simbot.kook.event.${ticket.clientId}

(其中 ticket.clientId 对应了当前 bot 的 Bot.ticket 中的实际信息)

其中,前缀为 love.forte.simbot.kook.event 的日志命名会主要输出与事件有较大关系的信息,例如每次收到的事件原始JSON等。 而其他的日志则主要由前缀为 love.forte.simbot.kook.bot 的日志命名输出。

大部分日志都是 DEBUGTRACE 级别的。

Author

ForteScarlet

Properties

Link copied to clipboard
abstract val apiClient: HttpClient

当前bot所使用的 HttpClient 实例。

Link copied to clipboard
abstract val botUserInfo: Me

当前bot作为用户时的信息。

Link copied to clipboard

当前 bot 所使用的配置信息。

Link copied to clipboard
abstract override val coroutineContext: CoroutineContext
Link copied to clipboard
abstract val isActive: Boolean

Bot 是否处于活跃状态。

Link copied to clipboard
abstract val isStarted: Boolean

Bot 是否至少启动过一次。

Link copied to clipboard
abstract val ticket: Ticket

此 bot 的票据信息。

Functions

Link copied to clipboard
abstract fun close()

关闭此 bot 。 bot 被关闭后 isActive 将会开始得到 false

Link copied to clipboard
abstract suspend fun join()

挂起 bot 直到其被 关闭

Link copied to clipboard
abstract suspend fun me(): Me

查询 bot 作为用户的信息。

Link copied to clipboard
abstract suspend fun offline()

让 bot 下线。

Link copied to clipboard
open fun processor(processor: EventProcessor)

添加一个 ProcessorType.NORMAL 类型的事件处理器。 所有事件处理器会在每次触发的时候按照添加顺序依次进行处理。

open fun processor(processorType: ProcessorType, processor: EventProcessor)

添加一个事件处理器。 所有事件处理器会在每次触发的时候按照添加顺序依次进行处理。

Link copied to clipboard
open suspend fun start()
abstract suspend fun start(closeBotOnFailure: Boolean)

启动此bot,即连接到 ws 服务器并订阅事件。

Link copied to clipboard
open fun subscribe(processor: EventProcessor)

添加一个 SubscribeSequence.NORMAL 类型的事件处理器。 所有事件处理器会在每次触发的时候按照添加顺序依次进行处理。

abstract fun subscribe(subscribeSequence: SubscribeSequence, processor: EventProcessor)

订阅事件并使用事件处理器 processor 进行处理。。 所有事件处理器会在每次触发的时候按照添加顺序依次进行处理。

Inherited functions

Link copied to clipboard
suspend fun Bot.alsoStart(): Bot

Start and return bot self.

Link copied to clipboard
suspend fun Bot.closeAndJoin()

Close bot and join.

Link copied to clipboard
inline fun <EX : EventExtra> Bot.processor(crossinline processor: suspend Event<EX>.(raw: String) -> Unit)

针对一个具体的 EventExtra 类型进行监听。

inline fun Bot.processor(type: Event.Type, crossinline processor: suspend Event<*>.(raw: String) -> Unit)

针对一个 Event.type 目标进行监听。

Link copied to clipboard
suspend fun Bot.startAndJoin()

Start bot and join.

Link copied to clipboard
inline fun <EX : EventExtra> Bot.subscribe(subscribeSequence: SubscribeSequence = SubscribeSequence.NORMAL, crossinline processor: suspend Event<EX>.(raw: String) -> Unit)

订阅一个具体的 EventExtra 类型的事件。

inline fun Bot.subscribe(type: Event.Type, subscribeSequence: SubscribeSequence = SubscribeSequence.NORMAL, crossinline processor: suspend Event<*>.(raw: String) -> Unit)

订阅一个 Event.type 目标的事件。