PluginComponentStorage

class PluginComponentStorage(plugin: Plugin) : AbstractConcurrentComponentStorage

添加一些扩展给 PluginComponentStorage.

所有扩展都会以 'lazy' 形式注册, 由 Console 在不同的启动阶段分别初始化各类扩展.

Constructors

Link copied to clipboard
constructor(plugin: Plugin)

Functions

Link copied to clipboard
inline fun <E : Extension> contribute(noinline lazyInstance: () -> E)

注册一个扩展. E 必须拥有伴生对象为 ExtensionPoint.

fun <E : Extension> contribute(extensionPoint: ExtensionPoint<E>, lazyInstance: () -> E)
open override fun <E : Extension> contribute(extensionPoint: ExtensionPoint<E>, plugin: Plugin, extensionInstance: E)

注册一个扩展

open override fun <E : Extension> contribute(extensionPoint: ExtensionPoint<E>, plugin: Plugin, lazyInstance: () -> E)

注册一个扩展. lazyInstance 将会在 getExtensions 时才会计算.

Link copied to clipboard
@JvmName(name = "contributeCommandCallInterceptorProvider")
fun contributeCommandCallParser(provider: CommandCallInterceptorProvider)
@JvmName(name = "contributeCommandCallParserProvider")
fun contributeCommandCallParser(provider: CommandCallParserProvider)
@JvmName(name = "contributeCommandCallResolverProvider")
fun contributeCommandCallParser(provider: CommandCallResolverProvider)
Link copied to clipboard
open fun <E : Extension> contributeConsole(extensionPoint: ExtensionPoint<E>, instance: E)

注册一个由 Mirai Console 实现的扩展 (因此没有相关 Plugin).

open override fun <E : Extension> contributeConsole(extensionPoint: ExtensionPoint<E>, lazyInstance: () -> E)

注册一个由 Mirai Console 实现的扩展 (因此没有相关 Plugin). lazyInstance 将会在 getExtensions 时才会计算.

Link copied to clipboard
@JvmName(name = "contributePermissionServiceProvider")
fun contributePermissionService(lazyProvider: () -> PermissionServiceProvider)
Link copied to clipboard
@JvmName(name = "contributePluginLoaderProvider")
fun contributePluginLoader(lazyProvider: () -> PluginLoaderProvider)
Link copied to clipboard
open override fun <E : Extension> getExtensions(extensionPoint: ExtensionPoint<E>): Sequence<ExtensionRegistry<E>>

获取注册的 ExtensionPoint 扩展实例列表. 返回的 SequenceExtension.priority 倒序排序.

Link copied to clipboard
open override fun <E : Extension> getExtensionsStream(extensionPoint: ExtensionPoint<E>): Stream<ExtensionRegistry<E>>

获取注册的 ExtensionPoint 扩展实例列表. 返回的 StreamExtension.priority 倒序排序.

Link copied to clipboard

获取优先级最高的 ExtensionPoint 扩展实例. 在未找到任何注册的实例时抛出 NoSuchElementException.

Link copied to clipboard
fun runAfterStartup(block: () -> Unit)