Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/docs/ru/CONTRIBUTING_RU.md
Views: 788
Вклад в проект
Изначально Mineflayer создал andrewrk, но с тех пор проект был улучшен и исправлен многими помощниками. Это то, почему важно знать, как внести свой вклад в mineflayer.
Организация проблем
У нас есть метки трёх стадий для организаций проблем:
Стадия 1: созданы каким-либо новичком, мы не знаем, нуждается ли это в реализации или исправлении
Стадия 2: многообещающая идея, но требует дополнительного обдумывания перед реализацией
Стадия 3: идея точно задана, осталось только сделать код
Ссылки по типу https://github.com/PrismarineJS/mineflayer/issues?q=is%3Aopen+is%3Aissue+-label%3AStage1 могут использоваться для показа только с меток первой стадии, если вы хотите развить какую-либо тему.
Создание тестов
Mineflayer имеет 2 вида тестов :
Внутренние тесты : Тесты, которые выполняются на простом сервере, созданном с помощью node-minecraft-protocol.
Внешние тесты : Тесты, который выполняются на ванильном сервере.
Цель этих тестов - автоматически определить, что работает, а что нет в mineflayer, чтобы было проще заставить mineflayer работать.
Создание внешних тестов
Для внешних тестов вам просто нужно создать файл в test/externalTests
Например : test/externalTests/digAndBuild.js
Этот файл должен экспортировать функцию, возвращающую функцию или массив функций, принимающих в качестве параметра объект бота и выполненный обратный вызов, он должен содержать утверждения для проверки, если тестируемая функциональность не сработала.
Создание стороннего плагина
Mineflayer поддерживает плагины; любой желающий может создать плагин, который добавляет API еще более высокого уровня поверх Mineflayer.
Несколько сторонних плагинов, которые уже были сделаны вы можете найти здесь.
Для того чтобы создать новый плагин, вам необходимо :
Создать новый репозиторий
В вашем файле index.js, экспортировать функцию init, которая будет принимать mineflayer в качестве аргумента. (Пример)
Эта функция возвращает функцию inject, которая принимает объект бота. (Пример)
С помощью этой inject функции можно добавить функционал объекту бота. (Пример)
Поскольку объект mineflayer передается в параметре, этот новый пакет не должен зависеть от mineflayer (в package.json не должно быть зависимости mineflayer)
Смотрите полный пример здесь.
Сообщения об ошибках
Mineflayer хорошо работает в большинстве случаев, но иногда в нем все еще есть ошибки.
При обнаружении ошибки лучше всего сообщить о проблеме, предоставив следующую информацию :
что вы хотите сделать (цель на английском языке)
что вы делаете (ваш код)
что происходит
что вы ожидали увидеть
Код Mineflayer
Некоторые вещи, о которых следует подумать при отправке Pull Request или commit :
Обработка ошибок
В большинстве случаев mineflayer не должен выводить бота из строя. Даже если что-то не сработает, бот может воспользоваться альтернативным маршрутом, чтобы добраться до своей цели.
Это означает, что мы не должны использовать throw(new Error("error"))
, а вместо этого использовать соглашение node.js о передаче ошибки в обратном вызове. + Пример :
Вы можете посмотреть другие примеры в коде mineflayer
Обновление документации
Список содержимого документации docs/api.md is made with doctoc. After updating that file, you should run doctoc docs/api.md to update the table of content.