-
-
Notifications
You must be signed in to change notification settings - Fork 860
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Updating existing russian docs * Update api_ru.md to 4.14.0 * Update link * new docs files * upload index.html * Tutorial translate * upload contributing * Update links * Update links again
- Loading branch information
Showing
9 changed files
with
2,311 additions
and
774 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Вклад в проект | ||
|
||
Изначально Mineflayer создал [andrewrk](http://github.com/andrewrk), но с тех пор проект был улучшен и исправлен многими [помощниками](https://github.com/andrewrk/mineflayer/graphs/contributors). | ||
Это то, почему важно знать, как внести свой вклад в mineflayer. | ||
|
||
## Организация проблем | ||
|
||
У нас есть метки трёх стадий для организаций проблем: | ||
|
||
* Стадия 1: созданы каким-либо новичком, мы не знаем, нуждается ли это в реализации или исправлении | ||
* Стадия 2: многообещающая идея, но требует дополнительного обдумывания перед реализацией | ||
* Стадия 3: идея точно задана, осталось только сделать код | ||
|
||
Ссылки по типу https://github.com/PrismarineJS/mineflayer/issues?q=is%3Aopen+is%3Aissue+-label%3AStage1 могут использоваться для показа только с меток первой стадии, если вы хотите развить какую-либо тему. | ||
|
||
## Создание тестов | ||
Mineflayer имеет 2 вида тестов : | ||
|
||
* [Внутренние тесты](../../test/internalTest.js) : Тесты, которые выполняются на простом сервере, созданном с помощью node-minecraft-protocol. | ||
* [Внешние тесты](../../test/externalTests/) : Тесты, который выполняются на ванильном сервере. | ||
|
||
Цель этих тестов - автоматически определить, что работает, а что нет в mineflayer, чтобы было проще заставить mineflayer работать. | ||
|
||
### Создание внешних тестов | ||
|
||
Для внешних тестов вам просто нужно создать файл в [test/externalTests](../../test/externalTests) | ||
|
||
Например : [test/externalTests/digAndBuild.js](https://github.com/PrismarineJS/mineflayer/blob/master/test/externalTests/digAndBuild.js) | ||
|
||
Этот файл должен экспортировать функцию, возвращающую функцию или массив функций, принимающих в качестве параметра объект бота и выполненный обратный вызов, | ||
он должен содержать утверждения для проверки, если тестируемая функциональность не сработала. | ||
|
||
|
||
## Создание стороннего плагина | ||
Mineflayer поддерживает плагины; любой желающий может создать плагин, который добавляет API еще более высокого уровня поверх Mineflayer. | ||
|
||
Несколько сторонних плагинов, которые уже были сделаны вы можете найти [здесь](https://github.com/andrewrk/mineflayer#third-party-plugins). | ||
|
||
Для того чтобы создать новый плагин, вам необходимо : | ||
|
||
1. Создать новый репозиторий | ||
2. В вашем файле index.js, экспортировать функцию init, которая будет принимать mineflayer в качестве аргумента. ([Пример](https://github.com/andrewrk/mineflayer-navigate/blob/e24cb6a868ce64ae43bea2d035832c15ed01d301/index.js#L18)) | ||
3. Эта функция возвращает функцию inject, которая принимает объект бота. ([Пример](https://github.com/andrewrk/mineflayer-navigate/blob/e24cb6a868ce64ae43bea2d035832c15ed01d301/index.js#L23)) | ||
4. С помощью этой inject функции можно добавить функционал объекту бота. ([Пример](https://github.com/andrewrk/mineflayer-navigate/blob/e24cb6a868ce64ae43bea2d035832c15ed01d301/index.js#L32)) | ||
|
||
Поскольку объект mineflayer передается в параметре, этот новый пакет не должен зависеть от mineflayer (в package.json не должно быть зависимости mineflayer) | ||
|
||
Смотрите [полный пример здесь](https://github.com/andrewrk/mineflayer-navigate/tree/e24cb6a868ce64ae43bea2d035832c15ed01d301). | ||
|
||
## Сообщения об ошибках | ||
Mineflayer хорошо работает в большинстве случаев, но иногда в нем все еще есть ошибки. | ||
|
||
При обнаружении ошибки лучше всего сообщить о проблеме, предоставив следующую информацию : | ||
|
||
* что вы хотите сделать (цель на английском языке) | ||
* что вы делаете (ваш код) | ||
* что происходит | ||
* что вы ожидали увидеть | ||
|
||
## Код Mineflayer | ||
Некоторые вещи, о которых следует подумать при отправке Pull Request или commit : | ||
|
||
### Обработка ошибок | ||
В большинстве случаев mineflayer не должен выводить бота из строя. Даже если что-то не сработает, бот может воспользоваться альтернативным маршрутом, чтобы добраться до своей цели. | ||
|
||
Это означает, что мы не должны использовать `throw(new Error("error"))`, а вместо этого использовать соглашение node.js о передаче ошибки в обратном вызове. | ||
+ | ||
Пример : | ||
|
||
```js | ||
function myfunction (param1, callback) { | ||
// что-то делаем | ||
let toDo = 1 | ||
toDo = 2 | ||
if (toDo === 2) { // всё работает | ||
callback() | ||
} else { | ||
callback(new Error('что-то не так')) | ||
} | ||
} | ||
``` | ||
|
||
Вы можете посмотреть другие примеры в [коде mineflayer](https://github.com/andrewrk/mineflayer/blob/a8736c4ea473cf1a609c5a29046c0cdad006d429/lib/plugins/bed.js#L10) | ||
|
||
### Обновление документации | ||
Список содержимого документации docs/api.md is made with doctoc. After updating that file, you should run doctoc docs/api.md to update the table of content. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.