Application

interface Application : CoroutineScope

Simple Robot 的应用.

一个 simbot应用 代表了已经配置完毕的运行时作用域,此作用域内包含了有关事件处理、事件推送的相关内容.

每个 Application 中,应当包括一个 事件处理器 、一些 bot管理器 和一些注册的组件。

Author

ForteScarlet

Types

Link copied to clipboard
interface Environment

当前应用的组件环境内容。

Functions

Link copied to clipboard
abstract suspend fun join()

挂起此应用直至其被终止。

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

终止当前应用,并关闭其中所有可能的资源。

Link copied to clipboard

终止当前应用,并关闭其中所有可能的资源。

Properties

Link copied to clipboard
abstract val botManagers: BotManagers

当前应用下的所有 bot管理器

Link copied to clipboard

在进行构建时所使用的配置信息。 构建完成后可以得到,但是尽可能不要进行修改操作。这可能没有意义,也可能会导致意外的错误。

Link copied to clipboard
Link copied to clipboard

当前 Application 的环境属性。

Link copied to clipboard
Link copied to clipboard

当前应用下的所有 事件提供者

Extensions

Link copied to clipboard
fun <A : Application> CoroutineScope.applicationLauncher(create: suspend () -> A): ApplicationLauncher<A>

通过一个协程作用域并提供构建函数来得到一个 ApplicationLauncher 实例。

Link copied to clipboard
inline fun Application.bots(block: BotManagers.() -> Unit)
Link copied to clipboard
inline fun <T> CoroutineScope.effectedFlowItems(crossinline block: suspend FlowCollector<T>.() -> Unit): Items<T>

以构建 Flow 的方式构建 Items.

Link copied to clipboard
inline fun <T> CoroutineScope.effectedItemsByFlow(crossinline flowFactory: () -> Flow<T>): Items<T>

提供 CoroutineScope 和构建 Flow 的函数 flowFactory 来构建 Items.

Link copied to clipboard
inline fun <T> CoroutineScope.flowItems(crossinline block: suspend FlowCollector<T>.(Items.PreprocessingProperties) -> Unit): Items<T>

以构建 Flow 的方式构建 Items.

Link copied to clipboard
inline fun <T> CoroutineScope.itemsByFlow(crossinline flowFactory: (Items.PreprocessingProperties) -> Flow<T>): Items<T>

提供 CoroutineScope 和构建 Flow 的函数 flowFactory 来构建 Items.

Link copied to clipboard
fun <T> CoroutineScope.lazyValue(init: Boolean = false, initializer: suspend () -> T): LazyValue<T>
Link copied to clipboard
inline fun <T> CoroutineScope.produceItems(context: CoroutineContext = EmptyCoroutineContext, capacity: Int = 0, crossinline block: suspend ProducerScope<T>.(Items.PreprocessingProperties) -> Unit): Items<T>

通过 produce 构建 ChannelIterator 来得到一个 Items 实例。