Mineflayer
Создавайте ботов Minecraft с помощью мощного, стабильного и высокоуровневого JavaScript API, также можете использовать Python.
Первый раз используете Node.js? Начните с этого. Знаете Python? Посмотрите примеры на Python и попробуйте Mineflayer в Google Colab.
Возможности
Поддержка 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.
Поддержка энтити и их отслеживание.
Вы можете полностью взаимодействовать с миром. Миллисекунды на поиск любого блока.
Физика и управление.
Атака энтити и использование транспортных средств.
Взаимодействие с инвентарем.
Взаимодействие с крафтом, сундуками, раздатчиками и чаровальными столами.
Вы можете копать и строить.
Мелкие функции, такие как отслеживание здоровья и погоды.
Активация блоков и использование предметов.
Взаимодействие с чатом.
Наши цели
Узнайте про наши текущие задачи.
Установка
Сначала установите Node.js >= 18 из nodejs.org, затем выполните:
npm install mineflayer
Чтобы обновить пакет mineflayer (или любой Node.js) и его зависимости, используйте npm update --depth 9999
Документация
| Ссылка | Описание |
|---|---|
| Обучение | Знакомство с Node.js и Mineflayer |
| ЧАВО | Появился вопрос? Найдите ответ здесь. |
| api_ru.md unstable_api.md | Полное описание API |
| Обновления | Список изменений в обновлениях |
| Примеры | Примеры использования Mineflayer |
Сделать вклад в развитие Mineflayer
Прочитайте CONTRIBUTING_RU.md и prismarine-contribute
Использование
Видео
Обучающее видео, объясняющее базовый процесс настройки бота, можно найти здесь
Если Вы хотите узнать больше, посмотрите другие видео здесь, а также посмотреть исходный код ботов
Перед запуском
Если версия не указана, она будет выбрана автоматически, исходя из поддерживаемых сервером версии. Без указания auth будет выбран вход через mojang.
Простой пример
Смотрите, что делает бот
Спасибо репозиторию prismarine-viewer, с помощью которого можно через браузер увидеть, что делает бот. Установите его через npm install prismarine-viewer и добавьте это в код:
После запуска, вы в прямом эфире сможете наблюдать за происходящим:
Больше примеров
| Пример | Описание |
|---|---|
| viewer | Отобразить через браузер вид от лица бота |
| pathfinder | Передвижение бота по координатам и не только |
| chest | Использование сундуков, печек, раздатчиков и чаровальных столов |
| digger | Пример для создания бота-шахтёра |
| discord | Создайте Discord бота |
| jumper | Научите бота передвигатся, прыгать, использовать средства пережвижения, а также атаковать |
| ansi | Отобразите чат вашего бота со всеми цветами, отображаемыми в вашем терминале |
| guard | Заставьте бота охранять определенную область от мобов |
| multiple-from-file | Добавьте текстовый файл с аккаунтами для запуска нескольких ботов |
Множество других примеров в данной папке
Модули
Большая часть разработки происходит внутри небольших пакетов npm, которые используются mineflayer.
Модули, из которых состоит 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:
В Windows:
Cторонние плагины:
Mineflayer поддерживает сторонние плагины. Любой желающий может создать плагин, который добавляет API ещё более высокого уровня поверх Mineflayer.
Наиболее обновлённые и полезные:
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.
Проекты, созданные с помощью Mineflayer
Voyager - Открытый агент с большими языковыми моделями
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 - Строит схемы в режиме выживания, сохраняя направление
и многие другие - Все проекты, обнаруженные GitHub, в которых используется Mineflayer
Тестирование
Тестирование всего
Просто запустите:
Тестирование определённой версии
Запустите
где <version> означает версию, таких как 1.12, 1.15.2...
Тестирование определённой функции
Запустите
где <test_name> означает название проверки, таких как bed, useChests, rayTrace...
Пример
запустит тест BlockFinder на версии 1.18.1




