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
@Api4J
fun <R : Any> Bot.requestDataBlocking(api: QQGuildApi<R>): R

直接通过bot进行请求。

Link copied to clipboard
@Api4Js
fun <R : Any> Bot.requestDataByAsync(api: QQGuildApi<R>): Promise<R>

直接通过bot进行请求。

Link copied to clipboard
fun <R : Any> Bot.requestDataReserve(api: QQGuildApi<R>, scope: CoroutineScope? = null): SuspendReserve<R>

直接通过bot进行请求。

Link copied to clipboard
fun Bot.requestReserve(api: QQGuildApi<*>, scope: CoroutineScope? = null): SuspendReserve<HttpResponse>

直接通过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
fun Bot.requestTextReserve(api: QQGuildApi<*>, scope: CoroutineScope? = null): SuspendReserve<String>

直接通过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 的事件。