- 版权类型
- 原创
- 插件中文名称
- ShitBot
- 插件英文名称
- ShitBot
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- PufferFish
- SpongeVanilla
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
[MD]
# ShitBot
**简体中文** | [English](README.en.md)
连接 Minecraft 服务器与 QQ 群的 OneBot v11 插件,提供账号绑定、群服互通、在线状态图片、背包查询、TPS 查询、受控的 QQ 快捷命令,以及可选的高级图片模板系统。
支持 Spigot/Paper/Folia、BungeeCord、Velocity 和 Nukkit-MOT。OneBot 实现可以使用 [LuckyLilliaBot](https://github.com/LLOneBot/LuckyLilliaBot) 或其他兼容 OneBot v11 正向 WebSocket 的实现。
> [!Warning]
>
> 请勿在 LLBot 群内讨论本插件的使用问题。
>
> 本插件由AI辅助完成,如有缺陷可提出
>
## 下载
从 [GitHub Releases](https://github.com/hutuyee/ShitBot/releases) 下载当前平台的 JAR:
| 运行平台 | 下载文件 | 放置目录 | Java |
| --- | --- | --- | --- |
| Spigot、Paper、Folia、CatServer 等 Bukkit 服务端 | `ShitBotSpigot-*.jar` | `plugins/` | 8+ |
| BungeeCord | `ShitBotBungee-*.jar` | `plugins/` | 8+ |
| Velocity | `ShitBotVelocity-*.jar` | `plugins/` | 21+ |
| Nukkit-MOT | `ShitBotNukkit-*.jar` | `plugins/` | 17+ |
只安装与你的平台匹配的 JAR,不要将多个平台版本放进同一个实例。某个 Release 没有对应平台 JAR 时,表示该版本没有发布该平台构建,不能用其他平台 JAR 代替。表中的 Java 是插件字节码要求,实际运行时还必须满足服务端核心自身的 Java 要求。
默认图片模式不需要安装 `ShitBotRenderer`。只有明确开启 `custom-image-templates.enabled` 后,插件才会按当前版本从同一个官方 Release 下载、校验并缓存这个可选组件;不要把它手工放进 `plugins/`。
## 安装
1. 停止服务器或代理。
2. 将对应平台的 JAR 放入 `plugins/`。
3. 启动一次,让 ShitBot 生成 `config.yml`、`commands.yml`、`lang/` 语言文件和 `templates/default.yml` 图片模板。
4. 停止实例并修改配置。
5. 再次启动,然后执行 `/shitbot status` 检查数据库和 OneBot 连接状态。
不要使用插件管理器热加载或热卸载 ShitBot。修改配置、语言文件或图片模板时使用 `/shitbot reload`,升级 JAR 后正常重启服务器或代理。
## 最小配置
在插件数据目录的 `config.yml` 中填写 OneBot 地址、Token 和允许使用的 QQ 群:
```yaml
onebot:
enabled: true
websocket-url: "ws://127.0.0.1:3001"
access-token: ""
allow-all-groups: false
allowed-group-ids:
- 123456789
```
ShitBot 使用 OneBot v11 正向 WebSocket,由插件主动连接 OneBot。跨主机连接应使用 `wss://`。
界面语言由 `config.yml` 顶层的 `language` 选择。内置 `zh_CN` 和 `en_US`;扩展其他语言时,复制 `lang/zh_CN.yml` 或 `lang/en_US.yml`,翻译并改名,再填写不带 `.yml` 的文件名:
```yaml
language: "en_US"
```
如需开启群服互通,再修改:
```yaml
forwarding:
game-to-group:
enabled: true
require-prefix: true
prefix: "#qq "
group-to-game:
enabled: true
require-prefix: true
prefix: "#mc "
media-mode: "browser"
```
从 `config-version: 1` 升级时,ShitBot 会在首次加载时自动把旧 `config.yml` 中的 `messages`、通知文本、内置指令别名/用法和图片标题写入 `lang/zh_CN.yml`。旧配置文件不会被重写;确认迁移结果后,可以自行删除其中已经废弃的文本项。
在线列表和背包图片的外观由 `templates/*.yml` 控制。复制 `templates/default.yml` 为新文件(例如 `ocean.yml`),修改布局、字号、圆角和颜色后,在 `config.yml` 中分别选择:
```yaml
image:
template: "ocean"
inventory:
template: "ocean"
```
模板名不带 `.yml`;未写出的字段会回退到 `default.yml`。
需要自由图层、条件/循环、PAPI、可视化编辑器或第三方插件渲染 API 时,再启用独立的 `image-templates/` 高级系统。两种模式的选择和按需下载规则见[图片渲染与高级模板](docs/image-templates.md)。
配置完成后执行:
```text
/shitbot reload
```
## 选择部署方式
| 场景 | 安装方式 | 数据库 |
| --- | --- | --- |
| 单个 Bukkit 服务端 | 只安装 Spigot 版,保持 `deployment.role: "standalone"` | SQLite 或 MySQL |
| BungeeCord/Velocity 群组服 | 在代理安装对应代理版 | 推荐 MySQL |
| 代理接收 QQ 命令并在子服执行 | 代理安装对应版本,每个目标子服安装 Spigot 版并设为 `deployment.role: "backend"` | 必须共用 MySQL |
| Nukkit-MOT 单服 | 只安装 Nukkit 版 | SQLite 或 MySQL |
代理与后端模式还需要配置 `commands.yml` 中的 `backend-transport`。不要让多个插件实例同时使用同一个 SQLite 文件。
## 常用命令
| 命令 | 功能 | 权限 |
| --- | --- | --- |
| `/shitbot status` | 查看数据库、OneBot 和插件运行状态 | 无 |
| `/shitbot reload` | 重载配置、语言文件、图片模板和运行实例 | `shitbot.admin` |
| `/shitbot update` | 下载并校验当前平台的新版本,替换后等待手动重启 | `shitbot.admin` |
| `/shitbot image` | 生成一次在线状态图片 | `shitbot.admin` |
| `/shitbot editor` | 生成高级图片模板编辑器的一次性登录地址 | `shitbot.admin` |
| `/shitbot whitelist` | 添加、删除、查询绑定和无 QQ 白名单 | `shitbot.admin` |
| `/shitbot migrate easybot [EasyBot.db]` | 导入 EasyBot 绑定数据 | `shitbot.admin` |
Spigot 和 Nukkit-MOT 默认仅 OP 拥有 `shitbot.admin`。BungeeCord 与 Velocity 同样检查该权限。
## QQ 群内使用
默认指令和前缀:
| 输入位置 | 示例 | 功能 |
| --- | --- | --- |
| QQ 群 | `绑定 Steve ABC123` | 绑定游戏账号 |
| QQ 群 | `服务器状态` | 获取在线状态图片 |
| QQ 群 | `背包` 或 `背包 Steve` | 查询自己绑定角色的背包 |
| QQ 群 | `TPS` | 查询服务器 TPS |
| QQ 群 | `lp编辑` | 执行配置的快捷命令 |
| Minecraft | `#qq 内容` | 将游戏消息转发到 QQ 群 |
| QQ 群 | `#mc 内容` | 将群消息转发到游戏 |
面向用户的别名和文本在所选 `lang/*.yml` 中修改;开关在 `config.yml` 中修改,权限、目标子服和快捷命令执行内容在 `commands.yml` 中修改。
## 文档
[在线文档中心](https://hutuyee.github.io/docs/)提供 ShitBot、BiliMusicBridge、AllMusic QQMusic 与 Kugou 的统一导航和搜索;[ShitBot 在线手册](https://hutuyee.github.io/docs/shitbot/)与本仓库文档同步维护。
- [安装与部署](docs/installation.md)
- [配置说明](docs/configuration.md)
- [命令与权限](docs/commands.md)
- [代理与后端子服](docs/proxy-backend.md)
- [数据库与数据迁移](docs/database.md)
- [背包查询与材质配置](docs/inventory.md)
- [图片渲染与高级模板](docs/image-templates.md)
- [自己的底图与像素坐标文字](docs/pixel-templates.md)
- [PlaceholderAPI 变量](docs/placeholders.md)
- [服务器启动提醒](docs/startup-notices.md)
- [常见问题](docs/troubleshooting.md)
- [平台兼容性](docs/compatibility.md)
- [升级与自动更新](docs/updating.md)
- [生产环境安全清单](docs/security.md)
- [构建与开发](docs/development.md)
- [插件 API 与白名单管理](docs/api.md)
- [全部文档](docs/README.md)
## 支持与反馈
项目仍在开发中。遇到问题请通过 [GitHub Issues](https://github.com/hutuyee/ShitBot/issues) 反馈,并附上运行平台、服务端版本、Java 版本和相关日志。
ShitBot 不与 EasyBot 竞争
## 统计数据
- [bStats Bukkit](https://bstats.org/plugin/bukkit/ShitBot/33865)
- [bStats BungeeCord](https://bstats.org/plugin/bungeecord/ShitBot/33866)
- [bStats Velocity](https://bstats.org/plugin/velocity/ShitBot/33868)
- 
## License
[MIT](LICENSE)
[/MD]