使用 Spring Boot
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
准备
Java 17
simbot4 的 Spring Boot starter 基于 Spring Boot 3,因此 Java 的版本至少为 Java17。
创建 Spring Boot 3 项目
首先你得有个 Spring Boot 3 项目, 你可以前往 Spring Initializr 或者借助 IDE (比如 IDEA) 的相关功能创建一个 Spring Boot 3 的项目。 你可以自由选择需要添加的任何其他 Spring Boot 组件,比如 spring-boot-starter-web
之类的。
安装
引擎选择
- Ktor引擎
你可以前往 Ktor文档 处选择一个对应所用平台下合适的
Client Engine
。 这里会根据不同平台提供几个示例,你可以选择其他可用目标。CIO 是一个比较通用的引擎。 在不知道选什么的情况下,可以考虑使用它。
runtimeOnly("io.ktor:ktor-client-cio-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-cio-jvm:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-cio-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>如果你打算使用 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>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'
Bot 配置
在你的资源目录中: resources/simbot-bots/ 中创建任意的一个或多个bot配置文件,并以 .bot.json
作为扩展名, 例如 mybot.bot.json
。
配置文件的内容可前往参考 Bot配置文件 章节。
使用
添加启动注解
在你的启动类上添加 @EnableSimbot
注解来启用 simbot。
QQ频道组件支持使用 SPI 自动加载 组件和插件。 添加依赖到项目环境中、编写完 Bot 配置文件后,可前往 simbot手册: 使用 Spring Boot 3 了解更多 simbot4 Spring Boot starter 的可配置内容以及启动注解等信息。
更多相关参考
前往 simbot官方手册 阅读有关 simbot API 的相关介绍与示例。
前往 simbot手册: 使用 Spring Boot 3 了解更多 simbot4 Spring Boot starter 的可配置内容以及启动注解等信息。
简单示例
几个简单的事件监听示例。
此处以 "子频道消息事件" 为例,此事件类型为 ChatChannelMessageEvent
。
事件逻辑:当收到文本内 包含"你好" 的消息,回复"你也好"。
此处以 "QQ频道的公域子频道At消息事件" 为例, 此事件类型为 QGAtMessageCreateEvent
。
这个事件是QQ频道组件里实现的专有事件类型,它继承 ChatChannelMessageEvent
。
事件逻辑:当收到文本内 包含"你好" 的消息,回复"你也好"。