Skip to content

基于小米 MiMo API 的 Bukkit/Spigot 插件,支持智能对话、MC百科联网搜索、多模式触发的Minecraft 服务器 AI 聊天机器

Notifications You must be signed in to change notification settings

mcstaralliance/MimoBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MimoBot - Minecraft AI 聊天机器人

基于小米 MiMo API 的 Bukkit/Spigot 插件,支持智能对话、MC百科联网搜索、多模式触发


核心功能

功能 说明
AI 对话 使用小米 MiMo API (mimo-v2-flash) 实现自然语言交互
上下文记忆 记录最近 N 条对话历史,支持连续对话
MC百科搜索 自动识别 MC 相关问题,联网搜索 mcmod.cn 和 Minecraft Wiki
多触发模式 支持全回复/概率/提及/@关键词 4种触发模式,可组合使用
服务器模组库 内置本服模组列表,可准确回答模组相关问题
热重载支持 完美支持 PlugMan 热重载,无内存泄漏

快速开始

1. 安装

# 1. 将 MimoBot.jar 放入 plugins/ 目录
# 2. 重启服务器生成配置文件
# 3. 编辑 plugins/MimoBot/config.yml 填入 API Key
# 4. 执行 /mimo reload 重载配置

2. 获取 API Key

访问 小米 MiMo API 注册并获取 API Key


配置说明

API 配置

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.enabled
reply-random.chance
按概率随机回复
概率百分比 (0-100)
false
10
@提及 reply-mention.enabled
reply-mention.triggers
消息包含触发词时回复(不区分大小写)
触发词列表
true
["mimo", "小域"]
关键词 reply-keyword.enabled
reply-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

使用场景

场景 1:仅指令模式(默认配置)

reply-all: false
reply-random.enabled: false
reply-mention.enabled: true # 仅 @小域 或包含 mimo 时回复
reply-keyword.enabled: false

效果:玩家说 "小域 你好" → AI 回复 | 玩家说 "你好" → 不回复


场景 2:智能助手模式

reply-all: false
reply-random.enabled: true # 10% 概率随机参与聊天
reply-random.chance: 10
reply-mention.enabled: true # 提到小域时必定回复
reply-keyword.enabled: true # 包含问句关键词时回复
reply-keyword.keywords:
  - "怎么"
  - "什么是"
  - "如何"
  - "吗?"

效果:活跃聊天氛围,聪明识别问答需求


场景 3:全自动管理员

reply-all: true # 回复所有消息
broadcast-reply: false # 私聊回复,不打扰其他玩家

效果:每个玩家都能得到 AI 回复,但只有发送者可见


MC百科搜索

自动触发关键词

当玩家消息包含以下关键词时,自动搜索 MC百科:

怎么做、合成表、配方、怎么用、什么是
mod、模组、方块、物品、生物、附魔、药水
红石、机械、自动化、矿石、村民、工业、魔法

搜索来源

  • MC百科 (mcmod.cn):模组、物品、合成表等
  • Minecraft Wiki (zh.minecraft.wiki):原版内容

示例

玩家: "小域 AE2怎么用"
AI: [搜索MC百科] → [结合搜索结果] → 回复详细用法

技术特性

1. 智能上下文管理

  • 使用 LinkedList 存储对话历史,自动清理超出限制的旧消息
  • 区分玩家消息和 AI 回复,保持对话连贯性
  • 支持多玩家同时对话,共享上下文

2. 异步非阻塞设计

  • 所有 API 请求异步执行,不阻塞主线程
  • 聊天监听器使用 AsyncPlayerChatEvent 高优先级监听
  • 回调自动切换到主线程发送消息

3. 热重载兼容性

  • 完整实现 onDisable() 生命周期
  • 清理所有监听器、调度器、静态引用
  • 防止类加载器泄漏

4. API 请求优化

  • 禁用思考模式,加快响应速度
  • 自动注入服务器日期和模组列表到 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.jar

常见问题

Q: 为什么 AI 不回复?

  • 检查 config.yml 中 API Key 是否正确
  • 检查回复模式是否启用 (至少启用一种触发模式)
  • 查看控制台是否有 API 错误日志

Q: 如何让 AI 只在被 @ 时回复?

reply-all: false
reply-random.enabled: false
reply-mention.enabled: true
reply-keyword.enabled: false

Q: MC百科搜索不准确?

  • 调整 wiki-search-max-results 增加搜索结果数量
  • 使用更精确的关键词提问

Q: 如何禁用上下文记忆?

context-messages: 0

Q: 支持 BungeeCord 跨服吗?

  • 当前版本不支持跨服消息同步
  • 需要使用 Plugin Messaging 或 Redis 实现(计划中)

开发信息

  • 作者: MCStarAlliance
  • 版本: 1.0.0
  • API: 小米 MiMo API
  • 协议: Spigot API 1.20+
  • 构建工具: Maven 3.x

许可证

本项目仅供学习交流使用。

About

基于小米 MiMo API 的 Bukkit/Spigot 插件,支持智能对话、MC百科联网搜索、多模式触发的Minecraft 服务器 AI 聊天机器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages