Skip to Content

插件开发

使用插件是 Saltify 组织代码逻辑的最佳实践。通过将相关联的事件监听和指令封装在一个插件中,可以大幅提升代码的可维护性。

定义插件

可以预先定义一个 SaltifyPlugin

class MyPluginConfig( var reply: String = "Hello!", var enableFeatureX: Boolean = true ) val myPlugin = SaltifyPlugin("my-awesome-plugin", ::MyPluginConfig) { config -> // 插件加载完成后的初始化逻辑 onStart { println("插件已启动!") } // 应用关闭时的清理逻辑 onStop { println("插件已停止!") } // 监听特定事件 on<Event.GroupMemberIncrease> { event -> event.respond { text(config.reply) } } // 监听以正则表达式匹配的消息 regex("""BV1\w{9}""") { event, matches -> event.respond { text(matches.joinToString { it.value }) } } }
Tip

所有 respond 函数都有一个为纯文本情况提供的简写形式。如上例,完全可以写成 event.respond(config.reply)

安装插件

val client = SaltifyApplication { // 1. 安装外部插件 install(myPlugin) { reply = "Hello!!" } // 2. 或者直接内联定义 plugin("another-plugin") { onStart { /* ... */ } } }

外部定义的插件的配置是可选的,在应用初始化块内定义的插件不可配置。

最后更新于