# Mirai组件快速开始
mirai组件目前使用的mirai版本号为:**`1.0-RC`**
## 一、**安装**
### 1. **构建项目**
*mirai官方推荐使用Gradle的方式构建项目。但是我个人更熟悉Maven,因此此处大多数使用Maven作为示例。*
首先创建一个项目并导入依赖坐标:
> 以maven为例
```xml
<dependency>
<groupId>love.forte.simple-robot-component</groupId>
<artifactId>component-mirai</artifactId>
<!-- 参考版本: 0.3-1.13 -->
<version>${version}</version>
</dependency>
```
如果mirai的包无法下载,可以尝试增加额外仓库:
```xml
<repositories>
<repository>
<id>jcenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
<repository>
<id>bintray</id>
<url>https://dl.bintray.com/kotlin/kotlin-eap</url>
</repository>
</repositories>
```
然后编写一个启动器类,此类需要**至少一层包结构**。
启动类在`1.13`版本的核心中有多种编写方式,以下我将举例两种。
#### Ⅰ. **注解+配置文件+组件启动器**
```java
/**
* 启动器类,通过main方法启动
* @author ForteScarlet
*/
@SimpleRobotApplication(resources = "/conf.properties")
public class RunApp {
public static void main(String[] args) throws IOException {
// 获取Mirai组件的启动器类
MiraiApplication application = new MiraiApplication();
// 启动
application.run(RunApp.class, args);
}
}
```
此方法使用`MiraiApplication`为启动器进行启动。
#### Ⅱ. **注解+配置文件+通用启动器**
```java
/**
* 启动器类,通过main方法启动
* @author ForteScarlet
*/
@SimpleRobotApplication(resources = "/conf.properties")
public class RunApp {
public static void main(String[] args) throws IOException {
// 自动检测当前环境中的启动器并启动
BaseApplication.runAuto(RunApp.class, args);
}
}
```
此方法是核心`1.13`后增加的 **快速启动** 特性,通过组件的配置支持,核心的`BaseApplication.runAuto(Class, String...)`可以自动检测当前存在的启动器并自动执行。其不同于上述的启动方式,这种启动类可以在任何支持的组件环境下使用。
### 2. **编写配置文件**
上述中使用的配置文件是`/conf.properties`,因此在资源目录下创建一个`conf.properties`文件。
> 如果不指定配置文件名称,默认为`/simple-robot-conf.properties`
```properties
# 不同于其他组件,此处的QQ不可省略,格式为:QQ号1:密码1,QQ号2:密码2
# 多组账号密码通过逗号(,)分隔,账号密码通过冒号(:)分隔
# 如果密码中存在: `\`或者`,`,则使用`\\`和`\,`进行转义。
# 例1: 111222333:abcdefg
# 例2: 111222333:abcdefg,444555666:qazwsxedc
simbot.core.bots=QQ号1:密码1,QQ号2:密码2
```
> simbot.core.bots是唯一的特殊配置内容。目前mirai组件没有额外的配置信息,因此其他可配置项可查看文档的**配置**相关章节。
### 3. **编写监听器**
在启动器的**子包**下编写你的代码逻辑,例如:
```java
@Beans
public class MyListener {
/**
* 监听私信消息并复读
*/
@Listen(MsgGetTypes.privateMsg)
public void hello(PrivateMsg msg, MsgSender sender){
System.out.println("收到消息:" + msg);
// 复读, 以下方法均可
sender.SENDER.sendPrivateMsg(msg, msg.getMsg());
// sender.SENDER.sendPrivateMsg(msg.getQQ(), msg.getMsg());
// sender.SENDER.sendPrivateMsg(msg.getQQCode(), msg.getMsg());
// sender.reply(msg, msg.getMsg(), false);
}
}
```
### 4. **启动**
执行你的main方法,然后给你的机器人发送消息试试吧。
注意,mirai在初次启动的时候可能会需要一些特殊操作,请注意观察日志。
## **5. 失败了?**
如果跟着上述流程完整无误的操作却无法成功,也不要气馁,尝试根据[常见问题汇总](./%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB.md)进行排查或者加入QQ群`782930037`进行咨询。
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览