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.
- Поддержка 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 |
Прочитайте 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)
Спасибо репозиторию 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.
Модули, из которых состоит 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.
Наиболее обновлённые и полезные:
- 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 - Открытый агент с большими языковыми моделями
- 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 - Строит схемы в режиме выживания, сохраняя направление
- и многие другие - Все проекты, обнаруженные 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