PluginComponentStorage
添加一些扩展给 Plugin 的 ComponentStorage.
所有扩展都会以 'lazy' 形式注册, 由 Console 在不同的启动阶段分别初始化各类扩展.
Functions
Link copied to clipboard
注册一个扩展. E 必须拥有伴生对象为 ExtensionPoint.
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
Link copied to clipboard
Link copied to clipboard
注册一个由 Mirai Console 实现的扩展 (因此没有相关 Plugin).
open override fun <E : Extension> contributeConsole(extensionPoint: ExtensionPoint<E>, lazyInstance: () -> E)
注册一个由 Mirai Console 实现的扩展 (因此没有相关 Plugin). lazyInstance 将会在 getExtensions 时才会计算.
Link copied to clipboard
Link copied to clipboard
注册一个 PluginLoaderProvider
Link copied to clipboard
注册一个 PostStartupExtension
Link copied to clipboard
open override fun <E : Extension> getExtensions(extensionPoint: ExtensionPoint<E>): Sequence<ExtensionRegistry<E>>
获取注册的 ExtensionPoint 扩展实例列表. 返回的 Sequence 以 Extension.priority 倒序排序.
Link copied to clipboard
open override fun <E : Extension> getExtensionsStream(extensionPoint: ExtensionPoint<E>): Stream<ExtensionRegistry<E>>
获取注册的 ExtensionPoint 扩展实例列表. 返回的 Stream 以 Extension.priority 倒序排序.
Link copied to clipboard
open fun <E : Extension> getPreferredExtension(extensionPoint: ExtensionPoint<E>): ExtensionRegistry<E>
获取优先级最高的 ExtensionPoint 扩展实例. 在未找到任何注册的实例时抛出 NoSuchElementException.
Link copied to clipboard
注册一个 PostStartupExtension