Skip to content

Latest commit

 

History

History
238 lines (172 loc) · 18.1 KB

README_RU.md

File metadata and controls

238 lines (172 loc) · 18.1 KB

Mineflayer

Версия NPM Последние изменения Discord Gitter Irc Issue Hunt

Попробуйте на gitpod

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

Сделать вклад в развитие Mineflayer

Прочитайте CONTRIBUTING.md и prismarine-contribute

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

Видео

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

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

tutorial 1 tutorial 2 tutorial 3 tutorial 4

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

Если версия не указана она будет выбрана автоматически исходя из поддерживаемых сервером версиях. Например: 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

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

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

Cторонние плагины:

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 сервера

Проекты, созданные с помощью Mineflayer

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

Настройка перед запуском бота

Установка

Чтобы все тесты прошли успешно, вы должны:

  1. Создайть папку для хранения сервера
  2. Установить переменную окружения MC_SERVER_JAR_DIR с путём на эту папку

Например:

  1. mkdir server_jars
  2. 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...

Лицензия

MIT