功能特性
约 1084 字大约 4 分钟
UniBot 提供丰富的功能,覆盖群服互通、图片渲染、WebUI 管理、智能扩展等多个方面。
群服互通
UniBot 的核心能力,是让 Minecraft 与聊天平台 实时互通:
- ✅ 游戏内实时看到 QQ 群消息
- ✅ QQ 群内看到游戏内聊天,支持文字、图片等消息类型
- ✅ 玩家 加入 / 离开 / 死亡 全事件播报
- ✅ 服务器 开启 / 关闭 自动通知
- ✅ 多服消息互转,构建分布式 MC 网络
消息同步方向
| 方向 | 配置项 | 说明 |
|---|---|---|
| 群 → 服务器 | sync_all_qq_message | 群内消息自动转发到游戏 |
| 服务器 → 群 | sync_all_game_message | 游戏内消息自动转发到群 |
| 服务器 → 服务器 | sync_message_between_servers | 多服消息互转 |
事件播报
已接入的播报事件:
- 玩家加入 / 离开
- 玩家死亡
- 玩家成就
- 服务器开启 / 关闭
玩家死亡与成就事件需在 MCDR 端安装 MoreGameEvents 插件。
敏感词过滤
通过 sync_sensitive_words 配置,命中敏感词的消息不会转发到群,而是提醒违禁。
图片渲染模式
在 Config.toml 中将 [image] mode 设为 true 后,机器人的指令输出将以 图片 形式发送。
渲染引擎基于 HTML + CSS 模板(Jinja2 + html2pic),效果美观且高度可定制。
支持图片渲染的指令
| 指令 | 渲染内容 |
|---|---|
.list | 在线玩家列表(含玩家头像) |
.server | 服务器连接状态 |
.luck | 每日运势卡片 |
.bound | 白名单绑定信息 |
.help | 帮助信息 |
.about | 关于页面 |
自定义背景
[image]
# 使用本地图片
background = 'url("./Resources/Backgrounds/dirt.png")'
# 使用渐变色
background = 'linear-gradient(150deg, #2e4a30 0%, #1d3524 55%, #12241a 100%)'
# 随机取目录中的图片
background = 'random("./Resources/Backgrounds/")'模板文件位于 Resources/Images/ 目录,如需定制样式可直接修改其中的 HTML/CSS。
注意:图片模式会略微增加响应时间。
WebUI 管理面板
UniBot 内置了基于 Vue 3 + Vite 构建的 Web 管理面板,通过 REST API 与后端交互。
主要功能
| 功能 | 说明 |
|---|---|
| 📊 仪表盘 | 实时查看运行状态、内存占用、在线服务器、绑定玩家数 |
| ⚙️ 配置管理 | 可视化编辑 Config.toml 和 .env,支持 Schema 校验与分组展示 |
| 📋 服务器管理 | 查看所有连接服务器状态、在线玩家,远程执行指令 |
| 👥 玩家管理 | 管理白名单绑定关系 |
| 🖥️ 服务器详情 | 单服在线玩家、状态详情,远程执行指令 |
| 🛰️ 适配器 / 插件 | 查看已安装平台适配器与已加载插件列表 |
| 🙋 用户管理 | 管理 WebUI 登录账户与角色权限 |
| 📄 日志查看 | 实时滚动查看日志,支持分级筛选 |
| 🔐 登录认证 | JWT + 密码认证(HttpOnly Cookie) |
启用方式
- 在
Config.toml中开启 WebUI:
[webui]
enabled = true启动机器人。首次启动会自动从 GitHub Releases 下载匹配的 WebUI 静态资源。
浏览器访问
http://<你的IP>:<PORT>/webui(默认http://127.0.0.1:8000/webui)。首次访问请先完成初始化:系统会自动引导你创建管理员账户。
需先执行 uv sync --extra webui --inexact,否则 WebUI 无法启用。
智能扩展
🤖 AI 智能对话
在 Config.toml 中启用 [ai] 后,@机器人即可与之对话:
[ai]
enabled = true
base_url = "https://api.openai.com/v1"
model_name = "gpt-4o"
api_key = "sk-xxx"
system_prompt = "你是一个可爱的小女孩……"- 支持任意 OpenAI 兼容 API。
- 对话上下文自动管理,支持
缓存清空指令。 - 内置限流保护。
🔑 关键词自动回复
无需编写代码,自定义关键词即可自动触发回复:
[auto_reply]
enabled = true
[auto_reply.keywords]
"看群公告里的 IP 地址。" = ["服务器在哪", "服务器地址"]白名单管理
完善的平台账号与游戏 ID 绑定系统:
- 支持多服白名单同步。
- 绑定数量可配置(
qq_bound_max_number)。 - 通过
.bound指令即可管理。
对比同类方案
| 特性 | UniBot | 传统方案 |
|---|---|---|
| 多平台支持 | ✅ QQ / Telegram / Discord / Kook… | ❌ 通常仅 QQ |
| 多服互联 | ✅ 原生支持,消息互转 | ❌ 需自行改装 |
| WebSocket 通信 | ✅ 实时长连接 | ⚠️ 多为 HTTP 轮询 |
| 模块化插件 | ✅ 指令即插即用 | ❌ 单体耦合 |
| AI 集成 | ✅ 开箱即用 | ❌ 需自行对接 |
| WebUI | ✅ Vue 3 管理面板 | ❌ 无 |
| 图片渲染 | ✅ HTML/CSS 模板引擎 | ❌ 无 |
| 白名单管理 | ✅ 完善的绑定系统 | ❌ 无或基础 |