基于 Node.js 和 Mineflayer 的 Minecraft 音符盒机器人,实现了类似 Meteor Client Notebot 模块的功能。支持 NBS 格式的歌曲文件,自动扫描周围音符盒并调音,通过 Web 界面控制。
- 🎵 自动扫描音符盒 - 扫描机器人周围的音符盒,识别乐器和音高
- 🎹 自动调音 - 自动将音符盒调整到歌曲需要的音高
- 🎼 多种歌曲格式 - 支持
.nbs(Note Block Studio)和.txt格式 - 🎮 Web 控制面板 - 浏览器访问,直观易用
- 💬 聊天/命令 - 支持机器人发送聊天消息和执行命令
- 🔌 版本兼容 - 支持多种 Minecraft 版本(通过 mineflayer)
- ⚙️ 高度可配置 - 扫描范围、调音速度、播放模式等均可配置
# 克隆仓库
git clone https://github.com/SilonGJ/MC_Notebot.git
cd MC_Notebot
# 安装依赖
npm install编辑 config.js 文件:
module.exports = {
server: {
host: 'localhost', // 服务器地址
port: 25565, // 服务器端口
username: 'notebot', // 机器人用户名
auth: 'offline', // 认证方式: offline / microsoft
version: '1.21.11' // MC 版本(留空自动检测)
},
notebot: {
scanRange: 10, // 音符盒扫描范围
mode: 'ExactInstruments', // 播放模式: ExactInstruments / AnyInstrument
tickDelay: 1, // 调音间隔(tick)
concurrentTuneBlocks: 1, // 同时调音的方块数
autoRotate: true, // 自动转向
swingArm: true // 挥手动画
},
songs: {
directory: './songs' // 歌曲目录
},
webUi: {
port: 3000 // Web 界面端口
}
};将 .nbs 或 .txt 格式的歌曲文件放入 songs 目录。
npm start启动后在浏览器打开 http://localhost:3000 访问 Web 控制面板。
- 在 Web 界面填写服务器信息,点击"连接"
- 从左侧歌曲列表选择一首歌
- 点击"播放"按钮,机器人会自动扫描音符盒并调音,然后开始播放
Note Block Studio 格式,支持多轨道、多种乐器。
每行一个音符,格式:<tick> <note> [instrument]
0 0 0
0 4 0
2 7 0
4 0 1
MC_Notebot/
├── src/
│ ├── bot/ # 机器人连接模块
│ ├── decoder/ # 歌曲解码器
│ ├── notebot/ # 音符盒核心逻辑
│ ├── song/ # 歌曲数据结构
│ ├── webui/ # Web 界面
│ ├── tui/ # 终端界面
│ └── index.js # 主入口
├── songs/ # 歌曲目录
├── config.js # 配置文件
└── package.json
- Node.js - 运行环境
- Mineflayer - Minecraft 机器人库
- Express - Web 服务器
- WebSocket - 实时通信
- prismarine-world - 世界数据处理
值得注意的是,此项目虽然全程由 AI 编写,但是底层的音调校准、演奏逻辑参考的是 Meteor Cilent 的实现,不过 AI 仅仅作为参考,因为两者的底层不一致
GNU General Public License v3.0
