From 22a824377a4a9de2fbd97a9d2dcbd3d394f5f322 Mon Sep 17 00:00:00 2001 From: LamGC Date: Tue, 15 Mar 2022 14:13:53 +0800 Subject: [PATCH] =?UTF-8?q?refactor(bot):=20=E7=AE=80=E5=8C=96=20ScalaBot?= =?UTF-8?q?=20=E6=9E=84=E9=80=A0=E5=99=A8=E7=9A=84=E5=8F=82=E6=95=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改动前的构造器参数大多是直接从 BotConfig 中传递进去, 这么做不利于添加新的参数, 因此改动后, BotConfig 将直接传递到 ScalaBot 的构造器中, 由 ScaleBot 内部按需获取参数进行初始化. --- scalabot-app/src/main/kotlin/AppMain.kt | 6 +----- scalabot-app/src/main/kotlin/ScalaBot.kt | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/scalabot-app/src/main/kotlin/AppMain.kt b/scalabot-app/src/main/kotlin/AppMain.kt index 00cb7a5..e4b8cdb 100644 --- a/scalabot-app/src/main/kotlin/AppMain.kt +++ b/scalabot-app/src/main/kotlin/AppMain.kt @@ -112,14 +112,10 @@ internal class Launcher : AutoCloseable { ) val bot = ScalaBot( - account.name, - account.token, - account.creatorId, BotDBMaker.getBotMaker(account), botOption, - botConfig.extensions, extensionPackageFinders, - botConfig.disableBuiltInAbility + botConfig ) botSessionMap[bot] = botApi.registerBot(bot) log.info { "机器人 `${bot.botUsername}` 已启动." } diff --git a/scalabot-app/src/main/kotlin/ScalaBot.kt b/scalabot-app/src/main/kotlin/ScalaBot.kt index 394c823..f285504 100644 --- a/scalabot-app/src/main/kotlin/ScalaBot.kt +++ b/scalabot-app/src/main/kotlin/ScalaBot.kt @@ -14,26 +14,30 @@ import org.telegram.telegrambots.meta.api.objects.Update /** * 可扩展 Bot. - * @param name 机器人名称. 建议设为机器人用户名. - * @param token 机器人 API 令牌. * @property creatorId 机器人所有人的 Telegram 用户 Id. 可通过联系部分机器人来获取该信息. * (e.g. [@userinfobot](http://t.me/userinfobot)) * @param db 机器人数据库对象. 用于状态机等用途. * @param options AbilityBot 设置对象. * @property extensions 扩展坐标集合. - * @param disableBuiltInAbility 是否禁用 [AbilityBot] 内置命令. */ internal class ScalaBot( - name: String, - token: String, - private val creatorId: Long, db: DBContext, options: DefaultBotOptions, - val extensions: Set, extensionFinders: Set, - disableBuiltInAbility: Boolean + botConfig: BotConfig, + private val creatorId: Long = botConfig.account.creatorId, + val extensions: Set = botConfig.extensions ) : - AbilityBot(token, name, db, if (disableBuiltInAbility) BareboneToggle() else DefaultToggle(), options) { + AbilityBot( + botConfig.account.token, + botConfig.account.name, + db, + if (botConfig.disableBuiltInAbility) + BareboneToggle() + else + DefaultToggle(), + options + ) { private val extensionLoader = ExtensionLoader( bot = this,