# 此方 bot！

在 MTTU 内部使用的 bot 一只。

## 协助开发方式

请首先联系 passthem 以获得该 Gitea 网站的账号和初始密码，登录后我将会给你添加本仓库的权限。然后，按照下面的方式配置环境。

## 环境配置

本项目使用 Poetry 进行版本管理

### 前置要求

- 一台四肢健全的电脑
    - 或许科学上网很重要
    - 安装 [git](https://git-scm.com/) 版本管理工具
    - 安装 [python](https://www.python.org/)，推荐 3.12.x 版本或以上
- 大脑
    - 上面不会的可以问 AI，你把这个全文复制粘贴给 AI 都行，让它手把手教你配置环境
    - 也可以问我，因为 AI 很多时候没法解决梯子问题
    - 也可以找群友问

### 安装 pipx 和 poetry

```bash
python -m pip install --user pipx
pipx ensurepath
pipx install poetry
```

### 下载代码并安装依赖

在你喜欢的（以后不太会移动的，专门用来装代码的）文件夹里面打开控制台。

```bash
git clone https://gitea.service.jazzwhom.top/Passthem/konabot.git
cd konabot
poetry install
```

### 编辑配置文件

如果你使用 [VSCode](https://code.visualstudio.com/)，可以在控制台输入指令，在此处打开 VSCode：

```bash
code .
```

复制 `.env.example` 文件并改名为 `.env`。

#### 如果你要配置 Discord

首先，在 [Discord 开放平台](https://discord.com/developers/applications) 创建应用和机器人，记好 Bot Token。然后，按照 [该文档](https://github.com/nonebot/adapter-discord) 编辑 `.env` 文件，并多添加一行 `ENABLE_DISCORD=true`

#### 如果你要配置 Onebot（QQ 方向）

你可以下载一个 Onebot 模拟器：[Matcha](https://github.com/A-kirami/matcha)

然后，根据 [该文档](https://onebot.adapters.nonebot.dev/docs/guide/setup) 配置连接，并多添加一行 `ENABLE_QQ=true`

#### 如果你想禁用控制台的 Bot 面板

配置 `ENABLE_CONSOLE=false`

### 运行

你可以在 VSCode 的「运行与调试」窗口，启动 `运行 Bot 并调试（自动重载）` 任务来启动 Bot，也可以使用命令行手动启动 Bot：

```bash
poetry run watchfiles bot.main
```

如果你不希望自动重载，只是想运行 Bot，可以直接运行：

```bash
poetry run python bot.py
```

## 开发文档

- Nonebot2 开发文档上可以参考的内容
    - [事件响应器](https://nonebot.dev/docs/tutorial/matcher)
    - [事件处理](https://nonebot.dev/docs/tutorial/handler)
    - [Alconna 插件](https://nonebot.dev/docs/best-practice/alconna/)
