This commit is contained in:
Him188 2020-09-08 19:27:30 +08:00
parent 60e13e73e9
commit 2f7d7fb097
4 changed files with 24 additions and 2 deletions

View File

@ -21,6 +21,9 @@ import kotlin.contracts.contract
import kotlin.internal.LowPriorityInOverloadResolution import kotlin.internal.LowPriorityInOverloadResolution
import kotlin.reflect.KClass import kotlin.reflect.KClass
/**
* 表示一个扩展点
*/
@ConsoleExperimentalAPI @ConsoleExperimentalAPI
public open class AbstractExtensionPoint<T : Extension>( public open class AbstractExtensionPoint<T : Extension>(
@ConsoleExperimentalAPI @ConsoleExperimentalAPI

View File

@ -13,9 +13,17 @@ import net.mamoe.mirai.console.extensions.PermissionServiceProvider
import net.mamoe.mirai.console.extensions.PluginLoaderProvider import net.mamoe.mirai.console.extensions.PluginLoaderProvider
import net.mamoe.mirai.console.util.ConsoleExperimentalAPI import net.mamoe.mirai.console.util.ConsoleExperimentalAPI
/**
* 表示一个扩展.
*
* Console 许多不容易通过
*/
@ConsoleExperimentalAPI @ConsoleExperimentalAPI
public interface Extension public interface Extension
/**
* 增加一些函数 (方法)的扩展
*/
@ConsoleExperimentalAPI @ConsoleExperimentalAPI
public interface FunctionExtension : Extension public interface FunctionExtension : Extension

View File

@ -4,10 +4,13 @@ import net.mamoe.mirai.console.extension.AbstractExtensionPoint
import net.mamoe.mirai.console.extension.SingletonExtension import net.mamoe.mirai.console.extension.SingletonExtension
import net.mamoe.mirai.console.permission.ExperimentalPermission import net.mamoe.mirai.console.permission.ExperimentalPermission
import net.mamoe.mirai.console.permission.PermissionService import net.mamoe.mirai.console.permission.PermissionService
import net.mamoe.mirai.console.util.ConsoleExperimentalAPI
/**
* [权限服务][PermissionService] 提供器.
*
* 此扩展
*/
@ExperimentalPermission @ExperimentalPermission
@ConsoleExperimentalAPI
public interface PermissionServiceProvider : SingletonExtension<PermissionService<*>> { public interface PermissionServiceProvider : SingletonExtension<PermissionService<*>> {
public companion object ExtensionPoint : public companion object ExtensionPoint :
AbstractExtensionPoint<PermissionServiceProvider>(PermissionServiceProvider::class) AbstractExtensionPoint<PermissionServiceProvider>(PermissionServiceProvider::class)

View File

@ -12,7 +12,15 @@ package net.mamoe.mirai.console.extensions
import net.mamoe.mirai.console.extension.AbstractExtensionPoint import net.mamoe.mirai.console.extension.AbstractExtensionPoint
import net.mamoe.mirai.console.extension.FunctionExtension import net.mamoe.mirai.console.extension.FunctionExtension
/**
* Console 启动完成后立即在主线程调用的扩展. 用于进行一些必要的延迟初始化.
*
* 这些扩展只会, 且一定会被调用正好一次.
*/
public fun interface PostStartupExtension : FunctionExtension { public fun interface PostStartupExtension : FunctionExtension {
/**
* 将在 Console 主线程执行.
*/
public operator fun invoke() public operator fun invoke()
public companion object ExtensionPoint : AbstractExtensionPoint<PostStartupExtension>(PostStartupExtension::class) public companion object ExtensionPoint : AbstractExtensionPoint<PostStartupExtension>(PostStartupExtension::class)