mirror of
https://github.com/mamoe/mirai.git
synced 2025-04-25 04:50:26 +08:00
revert
This commit is contained in:
parent
c9c0da0f36
commit
f6b82ed657
mirai-console/backend/mirai-console/src
internal/plugin
plugin
@ -28,7 +28,6 @@ import net.mamoe.mirai.console.plugin.loader.AbstractFilePluginLoader
|
||||
import net.mamoe.mirai.console.plugin.loader.PluginLoadException
|
||||
import net.mamoe.mirai.console.plugin.name
|
||||
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
|
||||
import net.mamoe.mirai.console.util.SemVersion
|
||||
import net.mamoe.mirai.utils.*
|
||||
import net.mamoe.yamlkt.Yaml
|
||||
import java.io.File
|
||||
@ -337,11 +336,7 @@ internal class BuiltInJvmPluginLoaderImpl(
|
||||
check(plugin is JvmPluginInternal || plugin is NotYetLoadedJvmPlugin) {
|
||||
"A JvmPlugin must extend AbstractJvmPlugin to be loaded by JvmPluginLoader.BuiltIn"
|
||||
}
|
||||
plugin.description.consoleRequirement?.let { requirement ->
|
||||
if (!SemVersion.parseRangeRequirement(requirement).test(MiraiConsole.version)) {
|
||||
throw PluginLoadException("Plugin '${plugin.id}' ('${plugin.id}') requires mirai-console with version $requirement while the resolved is ${MiraiConsole.version}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// region Link dependencies
|
||||
when (plugin) {
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
package net.mamoe.mirai.console.plugin.description
|
||||
|
||||
import net.mamoe.mirai.console.MiraiConsole
|
||||
import net.mamoe.mirai.console.compiler.common.CheckerConstants
|
||||
import net.mamoe.mirai.console.compiler.common.ResolveContext
|
||||
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.*
|
||||
@ -109,17 +108,6 @@ public interface PluginDescription {
|
||||
*/
|
||||
public val dependencies: Set<PluginDependency>
|
||||
|
||||
/**
|
||||
* 此插件依赖的 Mirai Console 版本号. 为 null 时则为不限制版本. 通常建议至少限制使用同一个主版本号.
|
||||
* 如开发时依赖该插件版本 2.15.0, 则将版本限制设置为 `[2.15.0, 3.0.0)`, 表示大于等于 `2.15.0`, 小于 `3.0.0`.
|
||||
*
|
||||
* 版本遵循 [语义化版本 2.0 规范](https://semver.org/lang/zh-CN/),
|
||||
*
|
||||
* @since 2.16
|
||||
* @see MiraiConsole.version
|
||||
*/
|
||||
@ResolveContext(VERSION_REQUIREMENT) public val consoleRequirement: String?
|
||||
|
||||
public companion object {
|
||||
/**
|
||||
* [PluginDescription.id] 的合法 [Regex].
|
||||
|
@ -119,11 +119,6 @@ public inline fun JvmPluginDescription(
|
||||
* .build();
|
||||
* ```
|
||||
*
|
||||
* #### Mirai Version Requirement (Since 2.16)
|
||||
* ```
|
||||
* dependsOn("net.mamoe.mirai-console", "[2.16.0, 3.0.0)")
|
||||
* ```
|
||||
*
|
||||
* @see [JvmPluginDescription]
|
||||
*/
|
||||
public class JvmPluginDescriptionBuilder(
|
||||
@ -139,7 +134,6 @@ public class JvmPluginDescriptionBuilder(
|
||||
private var author: String = ""
|
||||
private var info: String = ""
|
||||
private var dependencies: MutableSet<PluginDependency> = mutableSetOf()
|
||||
private var consoleRequirement: String? = null
|
||||
|
||||
@ILoveKuriyamaMiraiForever
|
||||
public fun name(@ResolveContext(PLUGIN_NAME) value: String): JvmPluginDescriptionBuilder =
|
||||
@ -167,12 +161,7 @@ public class JvmPluginDescriptionBuilder(
|
||||
public fun setDependencies(
|
||||
value: Set<PluginDependency>,
|
||||
): JvmPluginDescriptionBuilder = apply {
|
||||
this.dependencies = value.toMutableSet().apply {
|
||||
find { dependency -> dependency.id == "net.mamoe.mirai-console" }?.let { dependency ->
|
||||
remove(dependency)
|
||||
consoleRequirement = dependency.versionRequirement
|
||||
}
|
||||
}
|
||||
this.dependencies = value.toMutableSet()
|
||||
}
|
||||
|
||||
@ILoveKuriyamaMiraiForever
|
||||
@ -180,10 +169,6 @@ public class JvmPluginDescriptionBuilder(
|
||||
vararg dependencies: PluginDependency,
|
||||
): JvmPluginDescriptionBuilder = apply {
|
||||
for (dependency in dependencies) {
|
||||
if (dependency.id == "net.mamoe.mirai-console") {
|
||||
consoleRequirement = dependency.versionRequirement
|
||||
continue
|
||||
}
|
||||
this.dependencies.add(dependency)
|
||||
}
|
||||
}
|
||||
@ -197,10 +182,6 @@ public class JvmPluginDescriptionBuilder(
|
||||
@ResolveContext(VERSION_REQUIREMENT) versionRequirement: String,
|
||||
isOptional: Boolean = false,
|
||||
): JvmPluginDescriptionBuilder = apply {
|
||||
if (pluginId == "net.mamoe.mirai-console") {
|
||||
consoleRequirement = versionRequirement
|
||||
return@apply
|
||||
}
|
||||
this.dependencies.add(PluginDependency(pluginId, versionRequirement, isOptional))
|
||||
}
|
||||
|
||||
@ -222,7 +203,7 @@ public class JvmPluginDescriptionBuilder(
|
||||
|
||||
public fun build(): JvmPluginDescription =
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
SimpleJvmPluginDescription(id, name, version, author, info, dependencies, consoleRequirement)
|
||||
SimpleJvmPluginDescription(id, name, version, author, info, dependencies)
|
||||
|
||||
/**
|
||||
* 标注一个 [JvmPluginDescription] DSL
|
||||
@ -247,7 +228,6 @@ internal data class SimpleJvmPluginDescription
|
||||
override val author: String = "",
|
||||
override val info: String = "",
|
||||
override val dependencies: Set<PluginDependency> = setOf(),
|
||||
override val consoleRequirement: String? = null
|
||||
) : JvmPluginDescription {
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
@ -273,15 +253,13 @@ internal data class SimpleJvmPluginDescription
|
||||
val version: SemVersion,
|
||||
val author: String = "",
|
||||
val info: String = "",
|
||||
val dependencies: Set<PluginDependency> = setOf()
|
||||
val dependencies: Set<PluginDependency> = setOf(),
|
||||
) {
|
||||
fun toJvmPluginDescription(): JvmPluginDescription {
|
||||
return SimpleJvmPluginDescription(
|
||||
id,
|
||||
name ?: id,
|
||||
version, author, info,
|
||||
dependencies.filterTo(HashSet()) { it.id != "net.mamoe.mirai-console" },
|
||||
dependencies.find { it.id == "net.mamoe.mirai-console" }?.versionRequirement
|
||||
version, author, info, dependencies
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user