mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
fix(extension): 修复创建扩展对象时可能会出现的 NPE 问题.
创建对象后没有检查 NPE 问题, 修复该问题后有助于接受 Factory 不提供扩展的情况(现在这个情况是允许的了).
This commit is contained in:
parent
804d0e3012
commit
eb95436404
@ -90,6 +90,10 @@ internal class ExtensionLoader(
|
||||
try {
|
||||
val extension =
|
||||
factory.createExtensionInstance(bot, getExtensionDataFolder(extensionArtifact))
|
||||
if (extension == null) {
|
||||
log.debug { "Factory ${factory::class.java} 创建插件时返回了 null, 已跳过. (BotName: ${bot.botUsername})" }
|
||||
continue
|
||||
}
|
||||
factories.add(LoadedExtensionEntry(extensionArtifact, factory::class.java, extension))
|
||||
} catch (e: Exception) {
|
||||
log.error(e) { "创建扩展时发生异常. (ExtArtifact: `$extensionArtifact`, Factory: ${factory::class.java.name})" }
|
||||
|
@ -27,7 +27,7 @@ public interface BotExtensionFactory {
|
||||
* @param bot 机器人对象.
|
||||
* @param shareDataFolder ScalaBot App 为扩展提供的共享数据目录, <b>同一个扩展包的 Factory</b> 接收到的共享数据目录<b>都是一样的</b>;
|
||||
* 建议将数据存储在数据目录中, 便于数据的存储管理.
|
||||
* @return 返回为该 Bot 对象创建的扩展对象.
|
||||
* @return 返回为该 Bot 对象创建的扩展对象, 如果不希望为该机器人提供扩展, 可返回 {@code null}.
|
||||
*/
|
||||
AbilityExtension createExtensionInstance(BaseAbilityBot bot, File shareDataFolder);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user