TencentGuildBot

interface TencentGuildBot : CoroutineScope

一个 TencentGuildBot 标准接口,其只提供接口定义,而实现则在 core 模块中。

TencentGuildBot 不考虑实现 simple-robot-api 中的 love.forte.simbot.bot.Bot 接口,由对组件进行实现,此处的 TencentGuildBot 仅定义对于一个频道机器人的最基本的信息。

Author

ForteScarlet

Types

Link copied to clipboard
interface Client

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

Link copied to clipboard
interface Ticket

Functions

Link copied to clipboard
abstract suspend fun cancel(reason: Throwable? = null): Boolean

终止当前BOT。

Link copied to clipboard
abstract suspend fun join()

挂起直到此bot被 cancel. 如果已经 cancel, 则不会挂起。

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

通过 api GetBotInfoApi 得到bot自身信息。

Link copied to clipboard
abstract fun preProcessor(processor: suspend Signal.Dispatch.(decoder: Json, decoded: () -> Any) -> Unit)

添加一个事件预处理器。 processor 中的参数 decoded 所代表的为 decoder.decodeFromJsonElement(eventType.decoder, data) 后的结果, 但是为了避免在多个事件处理器中频繁进行反序列化,因此提供这个 decoded 来预先提供一个懒实例化的获取器。

Link copied to clipboard
@Api4J
open fun process(processor: (Signal.Dispatch, Json, decoded: () -> Any) -> Unit)
@Api4J
open fun <R : Any> process(eventType: EventSignals<R>, processor: (R) -> Unit)

process for java

Link copied to clipboard
abstract fun processor(processor: suspend Signal.Dispatch.(decoder: Json, decoded: () -> Any) -> Unit)

添加一个事件处理器。 processor 中的参数 decoded 所代表的为 decoder.decodeFromJsonElement(eventType.decoder, data) 后的结果, 但是为了避免在多个事件处理器中频繁进行反序列化,因此提供这个 decoded 来预先提供一个懒实例化的获取器。

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

启动当前BOT。只有 start 了之后,clients 中才会出现数据,否则可能会抛出异常。

Properties

Link copied to clipboard
abstract val botInfo: TencentBotInfo

Bot自己的信息。 一般来讲,只有当bot启动后才能获取到此属性。

Link copied to clipboard

此Bot中包含的连接。

Link copied to clipboard

Bot当前的配置信息。

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

当前bot的 Ticket.

Link copied to clipboard
abstract val totalShared: Int

此bot所需要的全部分片数量。 这并不代表此bot中所包含的分片数量,而是代表你通过 /gateway/bot 或者根据你自己的判断而决定的最终的所有分片数量。

Extensions

Link copied to clipboard
inline fun TencentGuildBot.processor(typeName: String, crossinline block: suspend Signal.Dispatch.(decoder: Json, decoded: () -> Any) -> Unit)
inline fun <R : Any> TencentGuildBot.processor(eventType: EventSignals<R>, crossinline block: suspend (R) -> Unit)
Link copied to clipboard
suspend fun <R> TencentGuildBot.request(api: TencentApi<R>): R

直接通过bot进行请求。