From 2a607f1129cc192edfc185c75e33000e1151f9af Mon Sep 17 00:00:00 2001 From: LamGC Date: Mon, 15 Aug 2022 02:00:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(extension):=20=E4=BF=AE=E5=A4=8D=20Extensio?= =?UTF-8?q?nClassLoader=20=E6=97=A0=E6=B3=95=E8=BF=87=E6=BB=A4=E9=9D=9E?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=8C=85=E5=86=85=20BotExtensionFactory=20?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=9A=84=E9=97=AE=E9=A2=98.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按照 ServiceLoader 的规范, 文件应该是在 META-INF/services/{class} 这里的, 但当时忘记这个设计了, 导致直接判断 name == class, 然后失效. 修复好了. --- scalabot-app/src/main/kotlin/ExtensionComponents.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scalabot-app/src/main/kotlin/ExtensionComponents.kt b/scalabot-app/src/main/kotlin/ExtensionComponents.kt index 969f35e..fc40e66 100644 --- a/scalabot-app/src/main/kotlin/ExtensionComponents.kt +++ b/scalabot-app/src/main/kotlin/ExtensionComponents.kt @@ -413,14 +413,14 @@ internal class ExtensionClassLoader(urls: Array, dependencyLoader: ClassLoa // 以免使用了不来自扩展包的机器人扩展. override fun getResources(name: String?): Enumeration { - if (BotExtensionFactory::class.java.equals(name)) { + if ("META-INF/services/${BotExtensionFactory::class.java.name}" == name) { return findResources(name) } return super.getResources(name) } override fun getResource(name: String?): URL? { - if (BotExtensionFactory::class.java.equals(name)) { + if ("META-INF/services/${BotExtensionFactory::class.java}" == name) { return findResource(name) } return super.getResource(name)