基于小米 MiMo API 的 Bukkit/Spigot 插件,支持智能对话、MC百科联网搜索、多模式触发
| 功能 | 说明 |
|---|---|
| AI 对话 | 使用小米 MiMo API (mimo-v2-flash) 实现自然语言交互 |
| 上下文记忆 | 记录最近 N 条对话历史,支持连续对话 |
| MC百科搜索 | 自动识别 MC 相关问题,联网搜索 mcmod.cn 和 Minecraft Wiki |
| 多触发模式 | 支持全回复/概率/提及/@关键词 4种触发模式,可组合使用 |
| 服务器模组库 | 内置本服模组列表,可准确回答模组相关问题 |
| 热重载支持 | 完美支持 PlugMan 热重载,无内存泄漏 |
# 1. 将 MimoBot.jar 放入 plugins/ 目录
# 2. 重启服务器生成配置文件
# 3. 编辑 plugins/MimoBot/config.yml 填入 API Key
# 4. 执行 /mimo reload 重载配置访问 小米 MiMo API 注册并获取 API Key
api-key: "your-api-key-here" # 必填:小米 MiMo API Key
api-url: "https://api.xiaomimimo.com/v1/chat/completions"
model: "mimo-v2-flash" # 模型选择
max-tokens: 1024 # 最大回复长度
temperature: 0.3 # 生成随机性 (0-2)
context-messages: 20 # 上下文消息数量 (0=无上下文)4 种模式可同时启用,满足任一条件即触发回复
| 模式 | 配置项 | 说明 | 默认 |
|---|---|---|---|
| 全回复 | reply-all |
回复所有玩家聊天 | false |
| 概率 | reply-random.enabledreply-random.chance |
按概率随机回复 概率百分比 (0-100) |
false10 |
| @提及 | reply-mention.enabledreply-mention.triggers |
消息包含触发词时回复(不区分大小写) 触发词列表 |
true["mimo", "小域"] |
| 关键词 | reply-keyword.enabledreply-keyword.keywords |
消息包含关键词时回复 关键词列表 |
false["怎么", "什么是"] |
message-prefix: "[小域] " # 消息前缀
broadcast-reply: true # true=全服广播 / false=仅发送者可见
# MC百科搜索
wiki-search-enabled: true # 是否启用联网搜索
wiki-search-max-results: 3 # 搜索结果最大数量| 指令 | 说明 | 权限 |
|---|---|---|
/mimo <消息> |
与 AI 对话 | mimobot.use |
/mimo mode |
查看当前回复模式 | mimobot.mode |
/mimo reload |
重载配置 | mimobot.reload |
/mimo help |
显示帮助 | mimobot.use |
| 权限 | 说明 | 默认 |
|---|---|---|
mimobot.use |
使用 /mimo 指令 | 所有玩家 |
mimobot.mode |
查看回复模式 | OP |
mimobot.reload |
重载配置 | OP |
reply-all: false
reply-random.enabled: false
reply-mention.enabled: true # 仅 @小域 或包含 mimo 时回复
reply-keyword.enabled: false效果:玩家说 "小域 你好" → AI 回复 | 玩家说 "你好" → 不回复
reply-all: false
reply-random.enabled: true # 10% 概率随机参与聊天
reply-random.chance: 10
reply-mention.enabled: true # 提到小域时必定回复
reply-keyword.enabled: true # 包含问句关键词时回复
reply-keyword.keywords:
- "怎么"
- "什么是"
- "如何"
- "吗?"效果:活跃聊天氛围,聪明识别问答需求
reply-all: true # 回复所有消息
broadcast-reply: false # 私聊回复,不打扰其他玩家效果:每个玩家都能得到 AI 回复,但只有发送者可见
当玩家消息包含以下关键词时,自动搜索 MC百科:
怎么做、合成表、配方、怎么用、什么是
mod、模组、方块、物品、生物、附魔、药水
红石、机械、自动化、矿石、村民、工业、魔法
- MC百科 (mcmod.cn):模组、物品、合成表等
- Minecraft Wiki (zh.minecraft.wiki):原版内容
玩家: "小域 AE2怎么用"
AI: [搜索MC百科] → [结合搜索结果] → 回复详细用法
- 使用
LinkedList存储对话历史,自动清理超出限制的旧消息 - 区分玩家消息和 AI 回复,保持对话连贯性
- 支持多玩家同时对话,共享上下文
- 所有 API 请求异步执行,不阻塞主线程
- 聊天监听器使用
AsyncPlayerChatEvent高优先级监听 - 回调自动切换到主线程发送消息
- 完整实现
onDisable()生命周期 - 清理所有监听器、调度器、静态引用
- 防止类加载器泄漏
- 禁用思考模式,加快响应速度
- 自动注入服务器日期和模组列表到 System Prompt
- 强制单行纯文本输出,适配 MC 聊天框
| 依赖 | 版本 | 用途 |
|---|---|---|
| Spigot API | 1.20.1+ | Bukkit 服务器核心 |
| Gson | 2.10.1 | JSON 解析 |
| Java | 17+ | 编译运行 |
# 使用 Maven 构建
mvn clean package
# 输出文件:target/MimoBot-1.0.0.jarQ: 为什么 AI 不回复?
- 检查
config.yml中 API Key 是否正确 - 检查回复模式是否启用 (至少启用一种触发模式)
- 查看控制台是否有 API 错误日志
Q: 如何让 AI 只在被 @ 时回复?
reply-all: false
reply-random.enabled: false
reply-mention.enabled: true
reply-keyword.enabled: falseQ: MC百科搜索不准确?
- 调整
wiki-search-max-results增加搜索结果数量 - 使用更精确的关键词提问
Q: 如何禁用上下文记忆?
context-messages: 0Q: 支持 BungeeCord 跨服吗?
- 当前版本不支持跨服消息同步
- 需要使用 Plugin Messaging 或 Redis 实现(计划中)
- 作者: MCStarAlliance
- 版本: 1.0.0
- API: 小米 MiMo API
- 协议: Spigot API 1.20+
- 构建工具: Maven 3.x
本项目仅供学习交流使用。