fix(extension): 修复 ExtensionClassLoader 无法过滤非扩展包内 BotExtensionFactory 对象的问题.

按照 ServiceLoader 的规范, 文件应该是在 META-INF/services/{class} 这里的, 但当时忘记这个设计了, 导致直接判断 name == class, 然后失效.
修复好了.
This commit is contained in:
LamGC 2022-08-15 02:00:34 +08:00
parent 2d6da7c1ae
commit 2a607f1129
Signed by: LamGC
GPG Key ID: 6C5AE2A913941E1D

View File

@ -413,14 +413,14 @@ internal class ExtensionClassLoader(urls: Array<URL>, dependencyLoader: ClassLoa
// 以免使用了不来自扩展包的机器人扩展. // 以免使用了不来自扩展包的机器人扩展.
override fun getResources(name: String?): Enumeration<URL> { override fun getResources(name: String?): Enumeration<URL> {
if (BotExtensionFactory::class.java.equals(name)) { if ("META-INF/services/${BotExtensionFactory::class.java.name}" == name) {
return findResources(name) return findResources(name)
} }
return super.getResources(name) return super.getResources(name)
} }
override fun getResource(name: String?): URL? { override fun getResource(name: String?): URL? {
if (BotExtensionFactory::class.java.equals(name)) { if ("META-INF/services/${BotExtensionFactory::class.java}" == name) {
return findResource(name) return findResource(name)
} }
return super.getResource(name) return super.getResource(name)