# MCAI_bot **Repository Path**: wanquan9527/mcai_bot ## Basic Information - **Project Name**: MCAI_bot - **Description**: 虚拟的我的世界AI机器人,这个机器人会自动收集物资(砍树,挖矿,种植),自动战斗(躲避火焰,岩浆,怪物),自动建筑(合成物品,搭建建筑等) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCAI Bot 一个基于 Mineflayer 和 WebSocket 的 Minecraft AI 机器人系统,支持 AI 模型训练和实时控制。 ## 项目架构 MCAI Bot 采用模块化架构设计,分为 API 服务器和 AI 训练两大部分: ``` mcai_bot/ ├── API-server/ # Node.js Minecraft机器人与WebSocket服务 ├── AI/ # AI训练算法目录 ├── start.sh # Linux/macOS启动脚本 └── start.bat # Windows启动脚本 ``` ## 功能特性 ### API 服务器 (API-server) - **Minecraft 机器人核心**:基于 Mineflayer 的机器人实现 - **WebSocket 服务**:实时通信接口,用于 AI 模型与机器人之间的数据交换 - **环境感知**:实时监测游戏环境,包括方块、实体、威胁等 - **资源状态报告**:提供详细的物资状态信息,包括类型、位置、价值、危险等级等 - **无自主行为**:完全由 WebSocket 控制指令驱动 ### AI 训练框架 (AI) - **模块化设计**:支持多种 AI 训练算法 - **实时数据获取**:通过 WebSocket 获取机器人感知数据 - **模型管理**:集中管理训练模型 - **训练器组件**:提供不同类型的训练算法实现 - **工具库**:通用 AI 训练工具和辅助函数 ## 技术栈 ### API 服务器 - **Node.js** (v20+) - **Mineflayer** - Minecraft 机器人核心库 - **mineflayer-pathfinder** - 智能路径规划 - **minecraft-data** - Minecraft 数据支持 - **ws** - WebSocket 服务 - **dotenv** - 环境变量管理 ### AI 训练框架 - 支持多种 AI 框架集成(如 TensorFlow、PyTorch 等) - 模块化设计,易于扩展 ## 目录结构 ### API-server 目录 ``` API-server/ ├── main.js # 主入口文件 ├── botCore.js # 机器人核心创建与初始化 ├── taskCollector.js # 资源收集任务(砍树) ├── taskCombat.js # 自动战斗系统 ├── envSensor.js # 环境感知模块 ├── toolCrafter.js # 工具制作模块 ├── inventoryManager.js # 库存管理模块 ├── locationManager.js # 位置管理模块 ├── builder.js # 建筑模块 ├── locations.json # 位置数据存储 ├── wsServer.js # WebSocket 服务器实现 ├── wsMessages.js # WebSocket 消息类型定义 ├── package.json # 项目配置 ├── pnpm-lock.yaml # 依赖锁定文件 └── README.md # API 服务器详细说明 ``` ### AI 目录 ``` AI/ ├── models/ # AI 模型存储目录 │ └── pathfinding/ # 路径规划模型 ├── trainers/ # 训练算法实现 │ ├── data_collector.py # 训练数据收集器 │ └── pathfinding_trainer.py # 路径规划训练器 ├── rewards/ # 奖励函数实现 │ └── block_collection_rewards.py # 方块收集奖励函数 ├── tasks/ # 任务定义 │ └── block_collection_task.py # 方块收集任务 ├── exploration/ # 探索策略 │ └── block_collection_strategy.py # 方块收集探索策略 ├── utils/ # AI 训练工具库 │ ├── ws_client.py # WebSocket 客户端 │ └── data_processor.py # 数据处理器 ├── autonomous_trainer.py # 自主训练控制器 ├── autonomous_main.py # 自主训练主启动脚本 ├── config.py # AI 训练配置 └── use_model.py # 模型使用脚本 ``` ## 安装步骤 ### 1. 安装依赖 #### API 服务器依赖 进入 `API-server` 目录,使用 pnpm(推荐)或 npm 安装依赖: ```bash cd API-server pnpm install # 或 npm install ``` #### AI 框架依赖 根据需要安装 AI 框架依赖,例如: ```bash # 安装 TensorFlow pip install tensorflow # 或安装 PyTorch pip install torch torchvision ``` ## 使用方法 ### 使用启动脚本 #### Linux/macOS ```bash ./start.sh ``` #### Windows ```cmd start.bat ``` 启动脚本会自动: - 检查 Node.js 和包管理器安装 - 进入 API-server 目录 - 安装依赖(如果未安装) - 启动 WebSocket 服务器 ### 手动启动 #### API 服务器 ```bash cd API-server node main.js ``` ## WebSocket API ### 输入命令(AI → 机器人) - `MOVE_TO` - 移动到指定坐标 - `MOVE_DIRECTION` - 向指定方向移动 - `LOOK_AT` - 看向指定方向 - `ATTACK` - 攻击目标 - `USE_ITEM` - 使用物品 - `DROP_ITEM` - 丢弃物品 - `COLLECT_RESOURCE` - 收集资源 - `CRAFT_ITEM` - 制作物品 - `BUILD_STRUCTURE` - 构建结构 - `STOP` - 停止当前任务 - `STATUS_REQUEST` - 请求状态信息 ### 输出事件(机器人 → AI) - `BOT_STATE` - 机器人状态 - `INVENTORY_STATE` - 库存状态 - `ENV_STATE` - 环境状态 - `TASK_STATUS` - 任务状态 - `RESOURCE_STATE` - 资源状态 - 其他事件... ## 资源状态数据格式 ```json { "type": "RESOURCE_STATE", "data": [ { "type": "block|animal|monster", "position": { "x": 0, "y": 0, "z": 0 }, "dropValue": 10, // 掉落物品价值(数值越大越稀有) "dangerLevel": 5, // 危险等级(数值越大越危险) "suitableTool": 1, // 适用工具(数值) "suitableArmor": 0 // 适用防具(数值) } ], "timestamp": 1234567890 } ``` ## 配置说明 ### API 服务器配置 在 `API-server` 目录下创建 `.env` 文件,配置以下内容: ```env # Minecraft 服务器配置 MC_HOST=localhost # 服务器地址 MC_PORT=25565 # 服务器端口 MC_USERNAME=mcai_bot # 机器人用户名 MC_PASSWORD= # 密码(离线模式可留空) MC_AUTH=offline # 认证方式:offline 或 microsoft ``` ## 开发说明 ### 添加新功能 #### API 服务器 1. 在 `API-server` 目录下创建新的功能模块文件 2. 在 `botCore.js` 中初始化模块 3. 在 `wsServer.js` 中添加对应的 WebSocket 命令处理 #### AI 训练框架 1. 在 `AI/models/` 目录下创建模型定义 2. 在 `AI/trainers/` 目录下实现训练算法 3. 在 `AI/utils/` 目录下添加辅助工具函数 ### WebSocket 消息扩展 1. 在 `API-server/wsMessages.js` 中定义新的消息类型 2. 在 `API-server/wsServer.js` 中添加消息处理逻辑 3. 更新 AI 训练框架以支持新的消息类型 ## 启动脚本说明 ### 启动脚本功能 - 自动检查 Node.js 和包管理器安装 - 自动安装依赖(如果未安装) - 启动 API 服务器 - 提供详细的日志输出 ### 启动脚本参数 目前启动脚本支持无参数运行,后续可扩展支持以下参数: - `--api-only` - 仅启动 API 服务器 - `--ai-only` - 仅启动 AI 训练框架 - `--config ` - 指定配置文件路径 ## 许可证 ISC ## 项目地址 https://gitee.com/wanquan9527/mcai_bot.git