mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-10 18:40:15 +08:00
Update ExportManager rule
This commit is contained in:
parent
9b042a439c
commit
7e480c2de2
@ -36,21 +36,14 @@ internal class ExportManagerImpl(
|
|||||||
}.forEach { line ->
|
}.forEach { line ->
|
||||||
val command = line.substringBefore(' ')
|
val command = line.substringBefore(' ')
|
||||||
val argument = line.substringAfter(' ', missingDelimiterValue = "").trim()
|
val argument = line.substringAfter(' ', missingDelimiterValue = "").trim()
|
||||||
|
val argumentPackage = "$argument."
|
||||||
|
|
||||||
when (command) {
|
when (command) {
|
||||||
"exports", "export-package" -> rules.add {
|
"exports" -> rules.add {
|
||||||
it.startsWith(argument).without(false)
|
(it == argument || it.startsWith(argumentPackage)).without(false)
|
||||||
}
|
}
|
||||||
"export", "export-class" -> rules.add {
|
"protects" -> rules.add {
|
||||||
(it == argument).without(false)
|
if (it == argument || it.startsWith(argumentPackage))
|
||||||
}
|
|
||||||
"protects", "protect-package" -> rules.add {
|
|
||||||
if (it.startsWith(argument))
|
|
||||||
false
|
|
||||||
else null
|
|
||||||
}
|
|
||||||
"protect", "protect-class" -> rules.add {
|
|
||||||
if (it == argument)
|
|
||||||
false
|
false
|
||||||
else null
|
else null
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ package net.mamoe.mirai.console.plugin.jvm
|
|||||||
|
|
||||||
import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl
|
import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl
|
||||||
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
|
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
|
||||||
import kotlin.reflect.KClass
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插件的类导出管理器
|
* 插件的类导出管理器
|
||||||
@ -27,24 +26,19 @@ import kotlin.reflect.KClass
|
|||||||
*
|
*
|
||||||
* # #开头的行全部识别为注释
|
* # #开头的行全部识别为注释
|
||||||
*
|
*
|
||||||
* # export, 允许其他插件直接使用某个类
|
* # exports, 允许其他插件直接使用某个类
|
||||||
*
|
*
|
||||||
* # 导出了一个internal包的一个类
|
* # 导出了一个internal包的一个类
|
||||||
* #
|
* #
|
||||||
* # 别名: export-class
|
* exports org.example.miraiconsole.myplugin.internal.OpenInternal
|
||||||
* export org.example.miraiconsole.myplugin.internal.OpenInternal
|
|
||||||
* # 可以使用别名
|
|
||||||
* export-class org.example.miraiconsole.myplugin.internal.OpenInternal
|
|
||||||
*
|
*
|
||||||
* # 导出了整个 api 包
|
* # 导出了整个 api 包
|
||||||
* #
|
* #
|
||||||
* # 别名: export-package
|
|
||||||
* exports org.example.miraiconsole.myplugin.api
|
* exports org.example.miraiconsole.myplugin.api
|
||||||
*
|
*
|
||||||
* # 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用
|
* # 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用
|
||||||
* #
|
* #
|
||||||
* # 别名: protect-class
|
* protects org.example.miraiconsole.myplugin.api2.Internal
|
||||||
* protect org.example.miraiconsole.myplugin.api2.Internal
|
|
||||||
*
|
*
|
||||||
* # 保护整个包
|
* # 保护整个包
|
||||||
* #
|
* #
|
||||||
@ -53,7 +47,7 @@ import kotlin.reflect.KClass
|
|||||||
*
|
*
|
||||||
* # 此规则不会生效, 因为在此条规则之前,
|
* # 此规则不会生效, 因为在此条规则之前,
|
||||||
* # org.example.miraiconsole.myplugin.internal 已经被加入到保护域中
|
* # org.example.miraiconsole.myplugin.internal 已经被加入到保护域中
|
||||||
* export org.example.miraiconsole.myplugin.internal.NotOpenInternal
|
* exports org.example.miraiconsole.myplugin.internal.NotOpenInternal
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* # export-plugin, 允许其他插件使用除了已经被保护的全部类
|
* # export-plugin, 允许其他插件使用除了已经被保护的全部类
|
||||||
@ -69,6 +63,19 @@ import kotlin.reflect.KClass
|
|||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
|
* 插件也可以通过 Service 来自定义导出控制
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* ```kotlin
|
||||||
|
* @AutoService(ExportManager::class)
|
||||||
|
* object MyExportManager: ExportManager {
|
||||||
|
* override fun isExported(className: String): Boolean {
|
||||||
|
* println(" <== $className")
|
||||||
|
* return true
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
@ConsoleExperimentalApi
|
@ConsoleExperimentalApi
|
||||||
public interface ExportManager {
|
public interface ExportManager {
|
||||||
|
@ -174,24 +174,19 @@ Example:
|
|||||||
|
|
||||||
# #开头的行全部识别为注释
|
# #开头的行全部识别为注释
|
||||||
|
|
||||||
# export, 允许其他插件直接使用某个类
|
# exports, 允许其他插件直接使用某个类
|
||||||
|
|
||||||
# 导出了一个internal包的一个类
|
# 导出了一个internal包的一个类
|
||||||
#
|
#
|
||||||
# 别名: export-class
|
exports org.example.miraiconsole.myplugin.internal.OpenInternal
|
||||||
export org.example.miraiconsole.myplugin.internal.OpenInternal
|
|
||||||
# 可以使用别名
|
|
||||||
export-class org.example.miraiconsole.myplugin.internal.OpenInternal
|
|
||||||
|
|
||||||
# 导出了整个 api 包
|
# 导出了整个 api 包
|
||||||
#
|
#
|
||||||
# 别名: export-package
|
|
||||||
exports org.example.miraiconsole.myplugin.api
|
exports org.example.miraiconsole.myplugin.api
|
||||||
|
|
||||||
# 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用
|
# 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用
|
||||||
#
|
#
|
||||||
# 别名: protect-class
|
protects org.example.miraiconsole.myplugin.api2.Internal
|
||||||
protect org.example.miraiconsole.myplugin.api2.Internal
|
|
||||||
|
|
||||||
# 保护整个包
|
# 保护整个包
|
||||||
#
|
#
|
||||||
@ -200,7 +195,7 @@ protects org.example.miraiconsole.myplugin.internal
|
|||||||
|
|
||||||
# 此规则不会生效, 因为在此条规则之前,
|
# 此规则不会生效, 因为在此条规则之前,
|
||||||
# org.example.miraiconsole.myplugin.internal 已经被加入到保护域中
|
# org.example.miraiconsole.myplugin.internal 已经被加入到保护域中
|
||||||
export org.example.miraiconsole.myplugin.internal.NotOpenInternal
|
exports org.example.miraiconsole.myplugin.internal.NotOpenInternal
|
||||||
|
|
||||||
|
|
||||||
# export-plugin, 允许其他插件使用除了已经被保护的全部类
|
# export-plugin, 允许其他插件使用除了已经被保护的全部类
|
||||||
|
Loading…
Reference in New Issue
Block a user