EN English | RU русский | ES Español | FR Français | TR Türkçe | ZH 中文 |
---|
Создавайте ботов Minecraft с помощью мощного, стабильного и высокоуровневого JavaScript API.
Первый раз используете Node.js? Начните с этого.
- Поддержка 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15 и 1.16.
- Поддержка энтити и их отслеживание
- Вы можете полностью взаимодействовать с миром. Миллисекунды на поиск любого блока
- Физика и управление
- Атака энтити и использование транспортных средств
- Взаимодействие с инвентарем
- Взаимодействие с крафтингом, сундуками, раздатчиками и чаровальными столами
- Вы можете копать и строить
- Мелкие функции, такие как отслеживание здоровья и прочие
- Активация блоков и использование предметов
- Взаимодействие с чатом
Узнайте про наши текущие задачи.
Сначало установите nodejs >= 14 из nodejs.org затем выполните:
npm install mineflayer
Ссылка | Описание |
---|---|
Обучение | Знакомство с Node.js и Mineflayer |
FAQ | Появился вопрос? Найдите ответ здесь. |
API | Методы API |
Нестабильное API | Нестабильные методы API |
Обновления | Список изменений в обновлениях |
Примеры | Примеры использования Mineflayer |
Прочитайте CONTRIBUTING.md и prismarine-contribute
Видео
Обучающее видео, объясняющее базовый процесс настройки бота, можно найти здесь
Если Вы хотите узнать больше, посмотрите другие видео здесь, а также посмотреть их исходный код
Перед запуском
Если версия не указана она будет выбрана автоматически исходя из поддерживаемых сервером версиях.
Например: version: "1.8"
.
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost', // optional
port: 25565, // optional
username: '[email protected]', // E-mail и пароль используются для
password: '12345678', // лицензионных серверов
version: false, // При установленном значении false версия будет выбрана автоматически, используйте пример выше чтобы выбрать нужную версию
auth: 'mojang' // Необязательное поле. По умолчанию используется mojang, если используется учетная запись microsoft, установите значение «microsoft»
})
bot.on('chat', function (username, message) {
if (username === bot.username) return
bot.chat(message)
})
// Прослушивание ошибок и причин отключения от сервера:
bot.on('kicked', (reason, loggedIn) => console.log(reason, loggedIn))
bot.on('error', err => console.log(err))
Спасибо репозиторию prismarine-viewer, с помощью которого можно увидеть от лица бота, что на данный момент происходит на сервере.
Установите prismarine-viewer c помощью npm install prismarine-viewer
и добавьте это в Ваш код:
const mineflayerViewer = require('prismarine-viewer').mineflayer
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true })
})
После запуска, вы в прямом эфире сможете наблюдать за происходящим:
Пример | Описание |
---|---|
viewer | Отобразить через браузер вид от лица бота |
pathfinder | Передвижение бота по координатам и не только |
chest | Использование сундуков, печек, раздатчиков и чаровальных столов |
digger | Пример для создания бота-шахтёра |
discord | Создайте Discord бота |
jumper | Научите бота передвигатся, прыгать, использовать средства пережвижения, а также атаковать |
И много других примеров в данной папке
Большая часть разработки происходит внутри небольших пакетов 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 [...]
На OC Windows :
set DEBUG=minecraft-protocol
node your_script.js
Mineflayer поддерживает сторонние плагины. С помощью них Вы можете добавить новые методы API:
- pathfinder - Поиск пути с помощью координат
- prismarine-viewer - Простой web клиент для отслеживания активного чанка
- web-inventory - Веб клиент для взаимодействия с инвентарем
- statemachine - API с более сложной структурой для ботов
- Armor Manager - Автоматическое взаимодействие с экипировкой
- Collect Block - Простой способ для подбора блоков
- Dashboard - Панель управления для бота
Также Вы можете изучить:
- navigate - Управление, передвижение бота YouTube Demo
- radar - Веб радар, созданный с помощью canvas и socket.io. YouTube Demo
- blockfinder - Поиск блоков в мире
- scaffold - Добратся до цели минуя препятствия YouTube Demo
- auto-auth - Аутентификация на пиратских серверах
- Bloodhound - Отслеживание получаемого урона в пределах видимости
- tps - Получить TPS сервера
- rom1504/rbot
- Darthfett/Helperbot
- vogonistic/voxel - визуализация от первого лица бота, созданная с помощью voxel.js
- JonnyD/Skynet - отслеживание действий с собственным API
- MinecraftChat (последняя версия с открытым исходным кодом, созданная с помощью AlexKvazos) - Веб чат сервера Minecraft https://minecraftchat.net/
- Cheese Bot - Плагин с чистым GUI. Создан с помощью Node-Webkit. http://bot.ezcha.net/
- Chaoscraft - Бот Minecraft, использующий генетические алгоритмы, посмотрите эти видео
- hexatester/minetelegram - Мост между Minecraft и Telegram, создан при помощи Mineflayer & Telegraf.
- и многие другие - Все проекты, в которых используется Mineflayer
Настройка перед запуском бота
Чтобы все тесты прошли успешно, вы должны:
- Создайть папку для хранения сервера
- Установить переменную окружения
MC_SERVER_JAR_DIR
с путём на эту папку
Например:
mkdir server_jars
export MC_SERVER_JAR_DIR=/полный/путь/до/сервера
Где "/полный/путь/до/сервера" - это путь к папке, в которой расположен сервер
Запустите: npm test
Выполните: npm test -- -g <version>
, где <version>
это версия Minecraft 1.12
, 1.15.2
...
Выполните: npm test -- -g <test_name>
, где <test_name>
любое название скрипта, по типу bed
, useChests
, rayTrace
...