Bot

一个 QQ频道Bot。

在Java中,可以通过扩展工具类 Bots.xxx 得到更多兼容函数。

Author

ForteScarlet

Types

Link copied to clipboard
interface Client

Bot的连接信息。一般来讲代表一个ws连接。

Link copied to clipboard
data class Ticket(val appId: String, val secret: String, val token: String)

Properties

Link copied to clipboard
abstract val accessToken: String

用于API请求的 access_token。 当执行了 start 之后会周期性刷新此值, 直到bot被终止。

Link copied to clipboard
abstract val apiClient: HttpClient

bot用于api请求的 HttpClient.

Link copied to clipboard
abstract val apiDecoder: Json

用于api请求并反序列化的 Json

Link copied to clipboard
abstract val apiServer: Url

当前bot所使用的

Link copied to clipboard
abstract val client: Bot.Client?

此Bot中的连接信息。

Link copied to clipboard

Bot当前的配置信息。

Link copied to clipboard
abstract override val coroutineContext: CoroutineContext
Link copied to clipboard
abstract val shard: Shard

此bot使用的 shard 信息。

Link copied to clipboard
abstract val ticket: Bot.Ticket

当前bot的 Ticket.

Functions

Link copied to clipboard
open fun cancel()
abstract fun cancel(reason: Throwable?)

终止当前BOT。

Link copied to clipboard
open suspend fun emitEvent(payload: String): EmitResult
abstract suspend fun emitEvent(payload: String, options: EmitEventOptions? = null): EmitResult

主动推送一个事件原文。 可用于在 webhook 模式下推送事件。

Link copied to clipboard
abstract suspend fun join()

挂起直到此 bot 被 cancel 或因其他原因终止(例如收到了昭示着无法重连的事件)

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

通过 api GetBotInfoApi 查询bot自身信息。

Link copied to clipboard
abstract suspend fun start()
abstract suspend fun start(gateway: GatewayInfo)

启动当前BOT。如果已经存在 client, 则会关闭已存连接并重新连接。

Link copied to clipboard

订阅事件并使用 processor 对其进行处理。 默认使用 SubscribeSequence.NORMAL 级别。

abstract fun subscribe(sequence: SubscribeSequence, processor: EventProcessor): DisposableHandle

订阅事件并使用 processor 对其进行处理。

Inherited functions

Link copied to clipboard
inline suspend fun Bot.emitEvent(payload: String, block: EmitEventOptions.() -> Unit): EmitResult

使用 Bot.emitEvent 推送一个外部事件,并且在 block 中配置 EmitEventOptions

Link copied to clipboard
inline fun <E : Signal.Dispatch> Bot.process(crossinline block: suspend E.(raw: String) -> Unit): DisposableHandle

用当前 Bot 订阅一个指定类型 E 的事件。

Link copied to clipboard
suspend fun Bot.request(api: QQGuildApi<*>): HttpResponse

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard
suspend fun <R : Any> Bot.requestData(api: QQGuildApi<R>): R

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard
suspend fun Bot.requestText(api: QQGuildApi<*>): String

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard

直接通过bot进行请求。

Link copied to clipboard
inline fun <E : Signal.Dispatch> Bot.subscribe(sequence: SubscribeSequence = SubscribeSequence.NORMAL, crossinline block: suspend E.(raw: String) -> Unit): DisposableHandle

用当前 Bot 订阅一个指定类型 E 的事件。