LookAtMySuitBot/js/node_modules/mineflayer/docs/ru/README_RU.md

18 KiB
Raw Blame History

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, также можете использовать Python

Первый раз используете Node.js? Начните с этого. Любите гонять змею? Зацените Python примеры и попробуйте колабнуться в Mineflayer Google коллабе.

Возможности

  • Поддержка 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
  • Поддержка энтити и их отслеживание
  • Вы можете полностью взаимодействовать с миром. Миллисекунды на поиск любого блока
  • Физика и управление
  • Атака энтити и использование транспортных средств
  • Взаимодействие с инвентарем
  • Взаимодействие с крафтингом, сундуками, раздатчиками и чаровальными столами
  • Вы можете копать и строить
  • Мелкие функции, такие как отслеживание здоровья и прочие
  • Активация блоков и использование предметов
  • Взаимодействие с чатом

Наши цели

Узнайте про наши текущие задачи.

Установка

Сначало установите nodejs >= 14 из nodejs.org затем выполните:

npm install mineflayer

Документация

Ссылка Описание
Обучение Знакомство с Node.js и Mineflayer
FAQ Появился вопрос? Найдите ответ здесь.
Нестабильное 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@example.com', // 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

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

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