使用核心库或Spring
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
前期准备
参考 开始使用。
安装
安装组件库
首先,先添加OneBot11组件库的依赖。
安装simbot4实现库
接下来,选择一个你打算使用的simbot4核心实现库。
实现库是一个实现了simbot标准API中定义的 Application 的库。 我们提供了几个默认的实现,以针对不同的需求或场景。
使用核心库实现 (simbot-core)。 核心库是一个轻量级实现库,实现了simbot标准API的绝大多数内容。
使用核心库的Spring Boot启动器实现 (simbot-core-spring-boot-starter)。 它基于核心库 ,针对Spring Boot进行了启动器整合。
安装Ktor引擎
OneBot11组件使用 Ktor 作为 HTTP 客户端实现, 但是默认不会依赖任何具体的引擎。
- Ktor引擎
- 你可以前往 Ktor文档 处选择一个对应所用平台下合适的 - Client Engine。 这里会根据不同平台提供几个示例,你可以选择其他可用目标。- 在 Java11+ 的环境下,可以选择 Java 引擎。 runtimeOnly("io.ktor:ktor-client-java:$ktor_version")runtimeOnly 'io.ktor:ktor-client-java:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-java-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>- OkHttp 引擎基于 OkHttp,是一个不错的库。 runtimeOnly("io.ktor:ktor-client-okhttp:$ktor_version")runtimeOnly 'io.ktor:ktor-client-okhttp:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-okhttp-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>- CIO 是一个比较通用的引擎。 在不知道选什么的情况下,可以考虑使用它。 runtimeOnly("io.ktor:ktor-client-cio:$ktor_version")runtimeOnly 'io.ktor:ktor-client-cio:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-cio-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>- JavaScript 平台下可以选择 Js 引擎。 implementation("io.ktor:ktor-client-js:$ktor_version")implementation 'io.ktor:ktor-client-js:$ktor_version'- native 平台目标下,可能需要根据不同的平台类型选择不同的引擎。 - 可以选择 WinHttp 引擎。 implementation("io.ktor:ktor-client-winhttp:$ktor_version")implementation 'io.ktor:ktor-client-winhttp:$ktor_version'- Linux 下依旧可以选择 CIO 引擎。 implementation("io.ktor:ktor-client-cio:$ktor_version")implementation 'io.ktor:ktor-client-cio:$ktor_version'- 可以选择 Darwin 引擎。 implementation("io.ktor:ktor-client-darwin:$ktor_version")implementation 'io.ktor:ktor-client-darwin:$ktor_version'
使用
创建Application
在 simbot-core 中,提供了一个基础的 Application 实现类型: SimpleApplication。
在 Spring Boot 中,不需要你手动构建 Application。 你只需要在你的启动类上标记 @EnableSimbot 来启用 simbot 即可。
注册Bot
在 Application 构建完成后,即可从 Application.botManagers 中寻找你所需的管理器(比如OneBot的Bot管理器: OneBotBotManager) 并注册你的Bot。
在 Spring 中,通常可以选择使用 .bot.json 格式的配置文件来快速、自动地批量注册bot。
默认情况下,在你的项目的资源目录 resource 中创建目录 /simbot-bots/, 然后前往参考 Bot配置文件 并配置你的 JSON 格式的配置文件,例如 abc.bot.json。
默认情况下starter会自动扫描上述资源目录并加载、自动启动它们,这一切是在异步中进行的。
事件监听
从 Application 中获取 EventDispatcher 即可注册事件监听函数。
Kotlin 中,可以使用 Application.listeners {} 扩展函数。
在 Spring 中,使用注解 @Listener 注册一个监听函数。 可监听到的事件即为参数中的事件类型。 也因此,参数中的事件类型的参数应当最多只有1个。
运行
运行你的程序,观察效果或进行测试即可。