| EN English | RU русский | ES Español | FR Français | TR Türkçe | ZH 中文 | BR Portuguese |
|---|
Создавайте ботов Minecraft с помощью мощного, стабильного и высокоуровневого JavaScript API, также можете использовать Python.
Первый раз используете Node.js? Начните с этого. Знаете Python? Посмотрите примеры на Python и попробуйте Mineflayer в Google Colab.
- Поддержка с Minecraft 1.8 до 1.21.8 (1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21.8)
- Поддержка энтити и их отслеживание.
- Вы можете полностью взаимодействовать с миром. Миллисекунды на поиск любого блока.
- Физика и управление.
- Атака энтити и использование транспортных средств.
- Взаимодействие с инвентарем.
- Взаимодействие с крафтом, сундуками, раздатчиками и чаровальными столами.
- Вы можете копать и строить.
- Мелкие функции, такие как отслеживание здоровья и погоды.
- Активация блоков и использование предметов.
- Взаимодействие с чатом.
Узнайте про наши текущие задачи.
Сначала установите Node.js >= 18 из nodejs.org, затем выполните:
npm install mineflayer
Чтобы обновить пакет mineflayer (или любой Node.js) и его зависимости, используйте
npm update| Ссылка | Описание |
|---|---|
| Обучение | Знакомство с Node.js и Mineflayer |
| ЧАВО | Появился вопрос? Найдите ответ здесь. |
| api_ru.md unstable_api.md |
Полное описание API |
| Обновления | Список изменений в обновлениях |
| Примеры | Примеры использования Mineflayer |
Прочитайте CONTRIBUTING_RU.md и prismarine-contribute
Видео
Обучающее видео, объясняющее базовый процесс настройки бота, можно найти здесь
Если Вы хотите узнать больше, посмотрите другие видео здесь, а также посмотреть исходный код ботов
Перед запуском
Если версия не указана, она будет выбрана автоматически, исходя из поддерживаемых сервером версии.
Без указания auth будет выбран вход через mojang.
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost', // айпи майнкрафт сервера
username: 'email@example.com', // ник бота
auth: 'microsoft' // для пираток нужно заменить на 'offline'
// port: 25565, // прописывайте, если порт не 25565
// version: false, // прописывайте, если нужна конкретная версия или снапшот (например: "1.8.9" или "1.16.5"), иначе версия будет выбрана автоматически
// password: '12345678' // прописывайте, если хотите использовать аутентификацию через пароль (может быть ненадёжно)
})
bot.on('chat', (username, message) => {
if (username === bot.username) return
bot.chat(message)
})
// Логирование ошибок и причин отключения от сервера:
bot.on('kicked', console.log)
bot.on('error', console.log)Если в auth установлен microsoft, вам предложит войти в microsoft.com с кодом в вашем браузере. После входа через браузер
бот автоматически получит и сохранит в кэш токен аутентификации (для вашего ника), чтобы потом вам опять не пришлось входить.
Чтобы сменить аккаунт, обновите username. По умолчанию кэшированые токены храняться в вашей папке .minecraft или в profilesFolder, если это указано.
Для большей информации о настройках бота смотрите API документацию по node-minecraft-protocol.
Чтобы зайти в Realm, куда ваш аккаунт был приглашён, вы можете вписать объект realms с функцией, как показано ниже.
const client = mineflayer.createBot({
username: 'email@example.com', // майнкрафт ник
realms: {
// Эта функция вызывается с массивом доступных для аккаунта Realm'ов. Оно должно возвращать то, куда оно хочет зайти.
pickRealm: (realms) => realms[0]
},
auth: 'microsoft'
})Спасибо репозиторию prismarine-viewer, с помощью которого можно через браузер увидеть, что делает бот.
Установите его через npm install prismarine-viewer и добавьте это в код:
const { mineflayer: mineflayerViewer } = require('prismarine-viewer')
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true }) // port - это порт сервера майнкрафт, если значение firstPerson: false, вы получите вид с высоты птичьего полета
})После запуска, вы в прямом эфире сможете наблюдать за происходящим:
| Пример | Описание |
|---|---|
| viewer | Отобразить через браузер вид от лица бота |
| pathfinder | Передвижение бота по координатам и не только |
| chest | Использование сундуков, печек, раздатчиков и чаровальных столов |
| digger | Пример для создания бота-шахтёра |
| discord | Создайте Discord бота |
| jumper | Научите бота передвигатся, прыгать, использовать средства пережвижения, а также атаковать |
| ansi | Отобразите чат вашего бота со всеми цветами, отображаемыми в вашем терминале |
| guard | Заставьте бота охранять определенную область от мобов |
| multiple-from-file | Добавьте текстовый файл с аккаунтами для запуска нескольких ботов |
Множество других примеров в данной папке
Большая часть разработки происходит внутри небольших пакетов npm, которые используются mineflayer.
"Когда приложения сделаны правильно, они представляют собой лишь ту самую специфичную, "солоноватую" прослойку логики, которую нельзя так просто абстрагировать. Все изящные, переиспользуемые компоненты возносятся на github и npm, где все могут совместно работать на общее благо." — substack из "как я пишу модули"
Здесь основная часть пакетов, которые используются в mineflayer:
| Модуль | Описание |
|---|---|
| minecraft-protocol | Парсинг пакетов Minecraft, аутентификация и шифрование |
| minecraft-data | Независимый от языка модуль, предоставляющий данные Minecraft для клиента и сервера |
| prismarine-physics | Взаимодействие с физикой |
| prismarine-chunk | Хранение чанков Minecraft |
| node-vec3 | Векторная обработка координат |
| prismarine-block | Взаимодействие с блоками и их данными |
| prismarine-chat | Парсер чата Minecraft (вырезано из Mineflayer) |
| node-yggdrasil | Библиотека для взаимодействия с системой аутентификации Mojang, известная как Yggdrasil |
| prismarine-world | Реализация миров для prismarine |
| prismarine-windows | Взаимодействие с GUI |
| prismarine-item | Взаимодействие с предметами и их данными |
| prismarine-nbt | Парсер NBT для node-minecraft-protocol |
| prismarine-recipe | Взаимодействие с рецептами крафта |
| prismarine-biome | Взаимодействие с биомами |
| prismarine-entity | Взаимодействие с сущностями |
Вы можете отлавливать ошибки с помощью переменной окружения DEBUG:
DEBUG="minecraft-protocol" node [...]В Windows:
set DEBUG=minecraft-protocol
node your_script.js
Mineflayer поддерживает сторонние плагины. Любой желающий может создать плагин, который добавляет API ещё более высокого уровня поверх Mineflayer.
Наиболее обновлённые и полезные:
- minecraft-mcp-server Сервер MCP для mineflayer, позволяющий использовать mineflayer из LLM
- pathfinder - Продвинутый A* поиск пути с множеством настраиваемых функций
- prismarine-viewer - Простой web клиент для просмотра чанков
- web-inventory - Веб клиент для взаимодействия с инвентарём
- statemachine - API для более сложного поведения бота
- Armor Manager - Автоматическое взаимодействие с бронёй
- Dashboard - Панель управления для бота
- PVP - Простой API для базовых PVP и PVE сражений
- Auto Eat - Автоматическое поедание пищи
- Auto Crystal - Автоматическое размещение и взрыв кристалов края
- Tool - Утилита для автоматического выбора инструмента/оружия с высокоуровневым API
- Hawkeye - Утилита для использования автоматического прицеливания из луков
- GUI - Взаимодействие с окнами по типу инвентаря, используя async/await
- Projectile - Получение необходимого угола запуска снарядов
- Movement - Плавные и реалистичные движения игрока, лучше всего подходящие для PvP
- Collect Block - API для простого способа для подбора блоков
Вы также можете изучить:
- radar - Веб радар, созданный с помощью
- auto-auth - Аутентификация на пиратских серверах
- Bloodhound - Отслеживание получаемого урона в пределах видимости
- tps - Получение TPS сервера
- panorama - Создание панорамных снимков вашего мира
- player-death-event - Создание события смерти игрока в Mineflayer.
- Voyager - Открытый агент с большими языковыми моделями
- mindcraft - Библиотека для использования mineflayer с LLM
- rom1504/rbot
- Darthfett/Helperbot
- vogonistic/voxel - Визуализация от первого лица бота, созданная с помощью voxel.js
- JonnyD/Skynet - Логирование активности игрока в онлайн-API
- MinecraftChat (последняя версия с открытым исходным кодом, созданная AlexKvazos) - Веб чат майнкрафт сервера
- Cheese Bot - Плагин с чистым GUI. Создан с помощью Node-Webkit. http://bot.ezcha.net/
- Chaoscraft - Бот Minecraft, использующий генетические алгоритмы, посмотрите эти видео
- hexatester/minetelegram - Мост между Minecraft и Telegram, созданный при помощи Mineflayer & Telegraf
- PrismarineJS/mineflayer-builder - Строит схемы в режиме выживания, сохраняя направление
- SilkePilon/OpenDeliveryBot - Minecraft бот на Python для переноса вещей с места на место.
- и многие другие - Все проекты, обнаруженные GitHub, в которых используется Mineflayer
Просто запустите:
npm testЗапустите
npm run mocha_test -- -g <version>где <version> означает версию, таких как 1.12, 1.15.2...
Запустите
npm run mocha_test -- -g <test_name>где <test_name> означает название проверки, таких как bed, useChests, rayTrace...
npm run mocha_test -- -g "1.18.1.*BlockFinder"запустит тест BlockFinder на версии 1.18.1




