Package-level declarations

插件抽象定义。

插件抽象定义。

插件抽象定义。

插件抽象定义。

Types

Link copied to clipboard
Link copied to clipboard

表示一个可以被取消/终止的 Plugin。

Link copied to clipboard
interface Plugin

一个 插件。

Link copied to clipboard

插件 已经被取消后继续尝试调用产生副作用的各类行为能力时产生的异常。

Link copied to clipboard

提供给 PluginFactoriesConfigurator 用于配置 Plugin 的上下文信息。 可以得到来自 Application 的初始化配置信息 和 love.forte.simbot.component.Component 的配置信息。

Link copied to clipboard
Link copied to clipboard

Plugin 的工厂函数,用于配置并预构建 Plugin 实例。

Link copied to clipboard

用于在加载 PluginFactoryProvider 后、构建对应的 Plugin 时, 作为自动加载的额外配置类型的 SPI, 在使用 loadPluginFactoriesFromProviders (或其他衍生函数) 且参数 loadConfigurers 为 true 时会被自动加载并作为构建 Plugin 的前置配置逻辑。

Link copied to clipboard

用于支持自动加载 PluginFactory 的 SPI 接口。

Link copied to clipboard
interface PluginInstaller

一个 Plugin 的安装器接口, 提供用于安装 Plugin 的能力。

Link copied to clipboard
interface Plugins : Collection<Plugin>

用于表示一组 Plugin。

Link copied to clipboard
interface SimplePlugin : Plugin

Functions

Link copied to clipboard
fun addPluginFactoryProvider(providerCreator: () -> PluginFactoryProvider<*>)

添加一个用于获取 PluginFactoryProvider 的函数。 这是用于兼容在非 JVM 平台下没有 ServiceLoader 的方案, 在 JVM 中应直接使用 ServiceLoader 加载 SPI 的方式, 但是如果使用 addComponentFactoryProvider 强行添加结果,loadPluginProviders 也还是会得到这些结果的。

Link copied to clipboard

清理所有通过 addComponentFactoryProvider 添加的 provider 构建器。

Link copied to clipboard
inline fun <CONF : Any> createPlugin(name: String, crossinline configCreator: () -> CONF, crossinline creator: PluginConfigureContext.(CONF) -> Unit): PluginFactory<Plugin, CONF>
Link copied to clipboard

通过 loadPluginProviders 加载 PluginFactoryProvider 并得到流结果。

通过 ServiceLoader 加载 PluginFactoryProvider 并得到流结果。

Link copied to clipboard

尝试自动加载环境中可获取的所有 PluginFactoryProvider 实例。 在 JVM 平台下通过 ServiceLoader 加载 PluginFactoryProvider 并得到结果, 而在其他平台则会得到预先从 addComponentFactoryProvider 中添加的所有函数构建出来的结果。

加载所有通过 addComponentFactoryProvider 添加的函数构建出来的 PluginFactoryProvider 实例。

加载所有通过 addComponentFactoryProvider 添加的函数构建出来的 PluginFactoryProvider 实例。

Inherited functions

Link copied to clipboard
inline fun <P : Plugin> Plugins.find(): P?

根据类型寻找某个 Plugin。

Link copied to clipboard

通过 loadPluginFactoriesFromProviders 加载并安装所有可寻得的组件。

Link copied to clipboard
inline fun <P : Plugin> Plugins.get(): P

根据类型寻找某个 Plugin,如果找不到则抛出 NoSuchElementException。

Link copied to clipboard

将一个 Plugin 的集合转化为 Plugins。