fix: JvmPluginDescription check (#2791)

This commit is contained in:
cssxsh 2023-09-11 10:13:24 +08:00 committed by GitHub
parent b500830a51
commit 323f6b363c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -16,6 +16,7 @@ import io.github.karlatemp.caller.StackFrame
import kotlinx.serialization.Serializable
import net.mamoe.mirai.console.compiler.common.ResolveContext
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.*
import net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN
import net.mamoe.mirai.console.internal.util.findLoader
import net.mamoe.mirai.console.plugin.description.PluginDependency
import net.mamoe.mirai.console.plugin.description.PluginDescription
@ -47,6 +48,11 @@ public interface JvmPluginDescription : PluginDescription {
pluginClassloader: ClassLoader = CallerFinder.getCaller()?.findLoader()
?: error("Cannot find caller classloader, please specify manually."),
): JvmPluginDescription {
if (filename == "plugin.yml") {
val cache = (pluginClassloader as? JvmPluginClassLoaderN)?.pluginDescriptionFromPluginResource
if (cache != null) return cache
}
val stream = pluginClassloader.getResourceAsStream(filename)
?: error("Cannot find plugin description resource '$filename'")