开始使用
安装
安装依赖
安装simbot核心库实现
implementation("love.forte.simbot:simbot-core:4.7.0")如果使用 Java 而不配合使用 Gradle 的 Kotlin 插件, 那么你需要指定依赖的后缀为
-jvm
。implementation("love.forte.simbot:simbot-core-jvm:4.7.0")implementation 'love.forte.simbot:simbot-core:4.7.0'如果使用 Java 而不配合使用 Gradle 的 Kotlin 插件, 那么你需要指定依赖的后缀为
-jvm
。implementation 'love.forte.simbot:simbot-core-jvm:4.7.0'<dependency> <groupId>love.forte.simbot</groupId> <artifactId>simbot-core-jvm</artifactId> <version>4.7.0</version> </dependency>implementation("love.forte.simbot:simbot-core-spring-boot-starter:4.7.0")implementation 'love.forte.simbot:simbot-core-spring-boot-starter:4.7.0'<dependency> <groupId>love.forte.simbot</groupId> <artifactId>simbot-core-spring-boot-starter</artifactId> <version>4.7.0</version> </dependency>安装组件库
simbot-component-qq-guild-core
即为QQ机器人组件的核心库, 也就是作为simbot组件所使用的 组件库。implementation("love.forte.simbot.component:simbot-component-qq-guild-core:4.1.2")如果使用 Java 而不配合使用 Gradle 的
kotlin
插件, 那么你需要指定依赖的后缀为-jvm
。implementation("love.forte.simbot.component:simbot-component-qq-guild-core-jvm:4.1.2")implementation 'love.forte.simbot.component:simbot-component-qq-guild-core:4.1.2'如果使用 Java 而不配合使用 Gradle 的
kotlin
插件, 那么你需要指定依赖的后缀为-jvm
。implementation 'love.forte.simbot.component:simbot-component-qq-guild-core-jvm:4.1.2'<dependency> <groupId>love.forte.simbot.component</groupId> <artifactId>simbot-component-qq-guild-core-jvm</artifactId> <version>4.1.2</version> </dependency>安装Ktor客户端引擎
QQ机器人组件使用 Ktor 作为 HTTP 客户端实现, 但是默认不会依赖任何具体的引擎。
因此,你需要选择并使用一个 Ktor Client 引擎实现。
你可以前往 Ktor文档 处选择一个对应所用平台下合适的
Client Engine
。 这里会根据不同平台提供几个示例,你可以选择其他可用目标。在 Java11+ 的环境下,可以选择 Java 引擎。
runtimeOnly("io.ktor:ktor-client-java:$ktor_version")如果不使用Kotlin的Gradle插件:
runtimeOnly("io.ktor:ktor-client-java-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-java:$ktor_version'如果不使用Kotlin的Gradle插件:
runtimeOnly 'io.ktor:ktor-client-java-jvm:$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")如果不使用Kotlin的Gradle插件:
runtimeOnly("io.ktor:ktor-client-okhttp-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-okhttp:$ktor_version'如果不使用Kotlin的Gradle插件:
runtimeOnly 'io.ktor:ktor-client-okhttp-jvm:$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")如果不使用Kotlin的Gradle插件:
runtimeOnly("io.ktor:ktor-client-cio-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-cio:$ktor_version'如果不使用Kotlin的Gradle插件:
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>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'
使用
启用沙箱
如果你的机器人尚未发布为正式版,那么你可能需要启用沙箱地址。
事件监听配置
如果你不使用 webhook 订阅事件, 那么你 可能 需要配置事件订阅的 intents
,因为 intents
的默认值只有三个类型的事件。
示例中的 intents
的数值为在默认值的基础上添加了 group_and_c2c_event
类型事件的位值的最终数值。
创建Application
在 simbot-core
中,提供了一个基础的 Application
实现类型: SimpleApplication
。
在 Spring Boot 中,不需要你手动构建 Application
。 你只需要在你的启动类上标记 @EnableSimbot
来启用 simbot 即可。
QQ机器人组件支持SPI自动加载,因此默认情况下不需要手动安装 QQGuildComponent
和 QQGuildBotManager
。
注册Bot
在 Application 构建完成后,即可从 Application.botManagers
中寻找你所需的管理器(比如组件的Bot管理器: QQGuildBotManager
) 并注册你的Bot。
在 Spring 中,通常可以选择使用 .bot.json
格式的配置文件来快速、自动地批量注册bot。
默认情况下,在你的项目的资源目录 resource 中创建目录 /simbot-bots/, 然后前往参考 Bot配置文件 并配置你的 JSON 格式的配置文件,例如 abc.bot.json
。
默认情况下starter会自动扫描上述资源目录并加载、自动启动它们,这一切是在异步中进行的。
Webhook
使用 Webhook 接收事件参考 Webhook。
事件监听
从 Application
中获取 EventDispatcher
即可注册事件监听函数。
Kotlin 中,可以使用 Application.listeners {}
扩展函数。
在 Spring 中,使用注解 @Listener
注册一个监听函数。 可监听到的事件即为参数中的事件类型。 也因此,参数中的事件类型的参数应当最多只有1个。