Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PrismarineJS
GitHub Repository: PrismarineJS/mineflayer
Path: blob/master/docs/ru/README_RU.md
3042 views

Mineflayer

Версия NPM Последние изменения Попробуйте на gitpod Открыть в Colab Спонсоры GitHub

Официальный дискорд

Создавайте ботов 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

Использование

Видео

Обучающее видео, объясняющее базовый процесс настройки бота, можно найти здесь

Если Вы хотите узнать больше, посмотрите другие видео здесь, а также посмотреть исходный код ботов

tutorial 1 tutorial 2 tutorial 3 tutorial 4

Перед запуском

Если версия не указана, она будет выбрана автоматически, исходя из поддерживаемых сервером версии. Без указания auth будет выбран вход через mojang.

Простой пример

const mineflayer = require('mineflayer') const bot = mineflayer.createBot({ host: 'localhost', // айпи майнкрафт сервера username: '[email protected]', // ник бота 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

Больше примеров

ПримерОписание
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

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

Тестирование

Тестирование всего

Просто запустите:

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

Лицензия

MIT