mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
fix(extension): 修复 ExtensionClassLoader 无法过滤非扩展包内 BotExtensionFactory 对象的问题.
按照 ServiceLoader 的规范, 文件应该是在 META-INF/services/{class} 这里的, 但当时忘记这个设计了, 导致直接判断 name == class, 然后失效. 修复好了.
This commit is contained in:
parent
2d6da7c1ae
commit
2a607f1129
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user