ComponentStorage
interface ComponentStorage
组件容器, 容纳 Plugin 注册的 Extension.
插件可在 JvmPlugin.onLoad 时提供扩展. 前端可在 MiraiConsoleImplementation.BackendAccess.globalComponentStorage 获取全局组件容器. 目前未允许获取全局组件容器. 如有需求请 提交 issues.
实现细节: 线程安全.
See also
Inheritors
Functions
Link copied to clipboard
abstract fun <E : Extension> contribute(extensionPoint: ExtensionPoint<E>, plugin: Plugin, extensionInstance: E)
注册一个扩展
abstract fun <E : Extension> contribute(extensionPoint: ExtensionPoint<E>, plugin: Plugin, lazyInstance: () -> E)
注册一个扩展. lazyInstance 将会在 getExtensions 时才会计算.
Link copied to clipboard
abstract fun <E : Extension> getExtensions(extensionPoint: ExtensionPoint<E>): Sequence<ExtensionRegistry<E>>
获取注册的 ExtensionPoint 扩展实例列表. 返回的 Sequence 以 Extension.priority 倒序排序.
Link copied to clipboard
abstract 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.