|
|
@@ -25,6 +25,8 @@ import net.mamoe.mirai.console.util.ConsoleExperimentalApi
|
|
|
public interface PermissionServiceProvider : SingletonExtension<PermissionService<*>> {
|
|
|
public companion object ExtensionPoint :
|
|
|
AbstractSingletonExtensionPoint<PermissionServiceProvider, PermissionService<*>>(PermissionServiceProvider::class, BuiltInPermissionService) {
|
|
|
+ internal var permissionServiceOk = false
|
|
|
+
|
|
|
@ConsoleExperimentalApi
|
|
|
public val providerPlugin: Plugin? by lazy {
|
|
|
GlobalComponentStorage.run {
|
|
|
@@ -33,6 +35,15 @@ public interface PermissionServiceProvider : SingletonExtension<PermissionServic
|
|
|
PermissionServiceProvider.getExtensions().find { it.extension.instance === instance }?.plugin
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @ConsoleExperimentalApi
|
|
|
+ override val selectedInstance: PermissionService<*>
|
|
|
+ get() {
|
|
|
+ if (!permissionServiceOk) {
|
|
|
+ error("PermissionService not yet loaded")
|
|
|
+ }
|
|
|
+ return super.selectedInstance
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -46,4 +57,4 @@ public class PermissionServiceProviderImpl(override val instance: PermissionServ
|
|
|
*/
|
|
|
public class PermissionServiceProviderImplLazy(initializer: () -> PermissionService<*>) : PermissionServiceProvider {
|
|
|
override val instance: PermissionService<*> by lazy(initializer)
|
|
|
-}
|
|
|
+}
|