Skip to content

Latest commit

 

History

History
257 lines (187 loc) · 21.2 KB

README_RU.md

File metadata and controls

257 lines (187 loc) · 21.2 KB

Mineflayer

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

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

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

Сделать вклад в развитие 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@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

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

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