Skip to content

Commit 887b52b

Browse files
fungozaextremeheat
andauthored
Update russian docs (#3762)
* Update api_ru * Update api_ru * Update README_RU.md * Update FAQ_RU.md * Update CONTRIBUTING_RU.md * Update api_ru.md * Update README_RU.md * revert wiki url change --------- Co-authored-by: extremeheat <extreme@protonmail.ch>
1 parent f0afaf7 commit 887b52b

4 files changed

Lines changed: 110 additions & 13 deletions

File tree

docs/ru/CONTRIBUTING_RU.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,20 @@ Mineflayer имеет 2 вида тестов :
2121

2222
Цель этих тестов - автоматически определить, что работает, а что нет в mineflayer, чтобы было проще заставить mineflayer работать.
2323

24+
## Запуск тестов
25+
Вы можете запустить тесты для разных версий Minecraft, используя флаг `-g` в npm run mocha_test. Например:
26+
27+
```bash
28+
# Запуск всех тестов для всех поддерживаемых версий
29+
npm run test
30+
31+
# Запуск определённого теста для Minecraft 1.20.4
32+
npm run mocha_test -- -g "mineflayer_external 1.20.4v.*exampleBee"
33+
34+
# Запуск всех тестов только для версии 1.20.4
35+
npm run mocha_test -- -g "mineflayer_external 1.20.4v"
36+
```
37+
2438
### Создание внешних тестов
2539

2640
Для внешних тестов вам просто нужно создать файл в [test/externalTests](../../test/externalTests)

docs/ru/FAQ_RU.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
Это документ с часто задаваемыми вопросами, предназначен для помощи людям в самых распространенных вещах.
44

5+
### Выдаёт ошибку (например, protocol/data) когда бот пытается подключиться к серверу Minecraft.
6+
7+
Убедитесь, что версия сервера Minecraft поддерживается (см. README), иначе попробуйте ещё раз, используя [тестовые версии mineflayer](../../lib/version.js).
8+
59
### Выдаёт ошибку при попытке войти в систему через аккаунт Microsoft.
610

711
Убедитесь, что адрес электронной почты, который вы ввели в поле username в createBot, можно использовать для входа на `minecraft.net` используя кнопку «Войти с помощью Microsoft».

docs/ru/README_RU.md

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
## Возможности
1919

20-
* Поддержка 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.
20+
* Поддержка с Minecraft 1.8 до 1.21.8 (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, 1.21.8)
2121
* Поддержка энтити и их отслеживание.
2222
* Вы можете полностью взаимодействовать с миром. Миллисекунды на поиск любого блока.
2323
* Физика и управление.
@@ -39,7 +39,10 @@
3939

4040
`npm install mineflayer`
4141

42-
Чтобы обновить пакет mineflayer (или любой Node.js) и его зависимости, используйте `npm update --depth 9999`
42+
Чтобы обновить пакет mineflayer (или любой Node.js) и его зависимости, используйте
43+
```bash
44+
npm update
45+
```
4346

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

@@ -97,6 +100,27 @@ bot.on('kicked', console.log)
97100
bot.on('error', console.log)
98101
```
99102

103+
Если в `auth` установлен `microsoft`, вам предложит войти в microsoft.com с кодом в вашем браузере. После входа через браузер
104+
бот автоматически получит и сохранит в кэш токен аутентификации (для вашего ника), чтобы потом вам опять не пришлось входить.
105+
106+
Чтобы сменить аккаунт, обновите `username`. По умолчанию кэшированые токены храняться в вашей папке .minecraft или в `profilesFolder`, если это указано.
107+
Для большей информации о настройках бота смотрите [API документацию](https://github.com/PrismarineJS/node-minecraft-protocol/blob/master/docs/API.md#mccreateclientoptions) по node-minecraft-protocol.
108+
109+
#### Подключение к Realm
110+
111+
Чтобы зайти в Realm, куда ваш аккаунт был приглашён, вы можете вписать объект `realms` с функцией, как показано ниже.
112+
113+
```js
114+
const client = mineflayer.createBot({
115+
username: 'email@example.com', // майнкрафт ник
116+
realms: {
117+
// Эта функция вызывается с массивом доступных для аккаунта Realm'ов. Оно должно возвращать то, куда оно хочет зайти.
118+
pickRealm: (realms) => realms[0]
119+
},
120+
auth: 'microsoft'
121+
})
122+
```
123+
100124
### Смотрите, что делает бот
101125

102126
Спасибо репозиторию [prismarine-viewer](https://github.com/PrismarineJS/prismarine-viewer), с помощью которого можно через браузер увидеть, что делает бот.
@@ -131,7 +155,13 @@ bot.once('spawn', () => {
131155

132156
Большая часть разработки происходит внутри небольших пакетов npm, которые используются mineflayer.
133157

134-
Модули, из которых состоит Mineflayer:
158+
#### The Node Way&trade;
159+
160+
> "Когда приложения сделаны правильно, они представляют собой лишь ту самую специфичную, "солоноватую" прослойку логики, которую нельзя так просто абстрагировать. Все изящные, переиспользуемые компоненты возносятся на github и npm, где все могут совместно работать на общее благо." — substack из ["как я пишу модули"](https://gist.github.com/substack/5075355)
161+
162+
#### Модули
163+
164+
Здесь основная часть пакетов, которые используются в mineflayer:
135165

136166
| Модуль | Описание |
137167
| ----------------------------------------------------------------------------- |---------------------------------------------------------------------------------------- |
@@ -172,6 +202,7 @@ Mineflayer поддерживает сторонние плагины. Любо
172202

173203
Наиболее обновлённые и полезные:
174204

205+
* [minecraft-mcp-server](https://github.com/yuniko-software/minecraft-mcp-server) Сервер MCP для mineflayer, позволяющий использовать mineflayer из LLM
175206
* [pathfinder](https://github.com/Karang/mineflayer-pathfinder) - Продвинутый A* поиск пути с множеством настраиваемых функций
176207
* [prismarine-viewer](https://github.com/PrismarineJS/prismarine-viewer) - Простой web клиент для просмотра чанков
177208
* [web-inventory](https://github.com/ImHarvol/mineflayer-web-inventory) - Веб клиент для взаимодействия с инвентарём
@@ -201,6 +232,7 @@ Mineflayer поддерживает сторонние плагины. Любо
201232
## Проекты, созданные с помощью Mineflayer
202233

203234
* [Voyager](https://github.com/MineDojo/Voyager) - Открытый агент с большими языковыми моделями
235+
* [mindcraft](https://github.com/kolbytn/mindcraft) - Библиотека для использования mineflayer с LLM
204236
* [rom1504/rbot](https://github.com/rom1504/rbot)
205237
- [YouTube - постройка спиральной лестницы](https://www.youtube.com/watch?v=UM1ZV5200S0)
206238
- [YouTube - дублирование постройки](https://www.youtube.com/watch?v=0cQxg9uDnzA)
@@ -211,8 +243,9 @@ Mineflayer поддерживает сторонние плагины. Любо
211243
* [Cheese Bot](https://github.com/Minecheesecraft/Cheese-Bot) - Плагин с чистым GUI. Создан с помощью Node-Webkit. http://bot.ezcha.net/
212244
* [Chaoscraft](https://github.com/schematical/chaoscraft) - Бот Minecraft, использующий генетические алгоритмы, посмотрите [эти видео](https://www.youtube.com/playlist?list=PLLkpLgU9B5xJ7Qy4kOyBJl5J6zsDIMceH)
213245
* [hexatester/minetelegram](https://github.com/hexatester/minetelegram) - Мост между Minecraft и Telegram, созданный при помощи Mineflayer & Telegraf
214-
* [PrismarineJS/mineflayer-builder](https://github.com/PrismarineJS/mineflayer-builder) - Строит схемы в режиме выживания, сохраняя направление
215-
* [и многие другие](https://github.com/PrismarineJS/mineflayer/network/dependents) - Все проекты, обнаруженные GitHub, в которых используется Mineflayer
246+
* [PrismarineJS/mineflayer-builder](https://github.com/PrismarineJS/mineflayer-builder) - Строит схемы в режиме выживания, сохраняя направление
247+
* [SilkePilon/OpenDeliveryBot](https://github.com/SilkePilon/OpenDeliveryBot) - Minecraft бот на Python для переноса вещей с места на место.
248+
* [и многие другие](https://github.com/PrismarineJS/mineflayer/network/dependents) - Все проекты, обнаруженные GitHub, в которых используется Mineflayer
216249

217250

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

docs/ru/api_ru.md

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@
170170
- ["game"](#game)
171171
- ["resourcePack" (url, hash)](#resourcepack-url-hash)
172172
- ["title" (title, type)](#title-title-type)
173+
- ["title_times" (fadeIn, stay, fadeOut)](#title_times-fadein-stay-fadeout)
174+
- ["title_clear"](#title_clear)
173175
- ["rain"](#rain)
174176
- ["weatherUpdate"](#weatherupdate)
175177
- ["time"](#time)
@@ -225,7 +227,7 @@
225227
- ["blockBreakProgressEnd" (block, entity)](#blockbreakprogressend-block-entity)
226228
- ["diggingCompleted" (block)](#diggingcompleted-block)
227229
- ["diggingAborted" (block)](#diggingaborted-block)
228-
- ["usedFirework"](#usedfirework)
230+
- ["usedFirework" (fireworkEntityId)](#usedfirework-fireworkentityid)
229231
- ["move"](#move)
230232
- ["forcedMove"](#forcedmove)
231233
- ["mount"](#mount)
@@ -270,7 +272,7 @@
270272
- [Methods](#methods)
271273
- [bot.end(reason)](#botendreason)
272274
- [bot.quit(reason)](#botquitreason)
273-
- [bot.tabComplete(str, [assumeCommand], [sendBlockInSight])](#bottabcompletestr-assumecommand-sendblockinsight)
275+
- [bot.tabComplete(str, [assumeCommand], [sendBlockInSight], [timeout])](#bottabcompletestr-assumecommand-sendblockinsight-timeout)
274276
- [bot.chat(message)](#botchatmessage)
275277
- [bot.whisper(username, message)](#botwhisperusername-message)
276278
- [bot.chatAddPattern(pattern, chatType, description)](#botchataddpatternpattern-chattype-description)
@@ -291,7 +293,7 @@
291293
- [bot.getExplosionDamages(entity, position, radius, [rawDamages])](#botgetexplosiondamagesentity-position-radius-rawdamages)
292294
- [bot.lookAt(point, [force])](#botlookatpoint-force)
293295
- [bot.look(yaw, pitch, [force])](#botlookyaw-pitch-force)
294-
- [bot.updateSign(block, text, back = false)](#botupdatesignblock-text)
296+
- [bot.updateSign(block, text, back = false)](#botupdatesignblock-text-back--false)
295297
- [bot.equip(item, destination)](#botequipitem-destination)
296298
- [bot.unequip(destination)](#botunequipdestination)
297299
- [bot.tossStack(item)](#bottossstackitem)
@@ -331,6 +333,7 @@
331333
- [bot.setCommandBlock(pos, command, [options])](#botsetcommandblockpos-command-options)
332334
- [bot.supportFeature(name)](#botsupportfeaturename)
333335
- [bot.waitForTicks(ticks)](#botwaitforticksticks)
336+
- [bot.respawn()](#botrespawn)
334337
- [Lower level inventory methods](#lower-level-inventory-methods)
335338
- [bot.clickWindow(slot, mouseButton, mode)](#botclickwindowslot-mousebutton-mode)
336339
- [bot.putSelectedItemRange(start, end, window, slot)](#botputselecteditemrangestart-end-window-slot)
@@ -1271,6 +1274,26 @@ UUID существа, который определяется боссом.
12711274
* `title` - Текст на экране.
12721275
* `type` - Тип текста "subtitle" или "title"
12731276

1277+
#### "title_times" (fadeIn, stay, fadeOut)
1278+
1279+
Срабатывает, когда сервер отправляет пакет с временем для текста по центру экрана (например, когда устанавливается или обновляется время для появления, отображения и исчезновения надписи).
1280+
1281+
* `fadeIn` - время появления в тиках (число)
1282+
* `stay` - время отображения в тиках (число)
1283+
* `fadeOut` - время исчезновения в тиках (число)
1284+
1285+
Пример:
1286+
1287+
```js
1288+
bot.on('title_times', (fadeIn, stay, fadeOut) => {
1289+
console.log(`Время для надписей: fadeIn=${fadeIn}, stay=${stay}, fadeOut=${fadeOut}`)
1290+
})
1291+
```
1292+
1293+
#### "title_clear"
1294+
1295+
Срабатывает, когда сервер очищает все надписи по центру экрана.
1296+
12741297
#### "rain"
12751298

12761299
Срабатывает, когда начинается или прекращается дождь. Если вы присоединитесь к
@@ -1454,10 +1477,12 @@ UUID существа, который определяется боссом.
14541477

14551478
* `block` - Блок, который не был разрушен.
14561479

1457-
#### "usedfirework"
1480+
#### "usedFirework" (fireworkEntityId)
14581481

14591482
Срабатывает при использовании фейерверка во время полёта на элитрах.
14601483

1484+
* `fireworkEntityId` - айди существа фейерверка.
1485+
14611486
#### "move"
14621487

14631488
Срабатывает при движении бота. Если вы хотите узнать текущее положение, используйте `bot.entity.position`, если вы хотите узнать предыдущее положение, используйте `bot.entity.position.minus(bot.entity.velocity)`.
@@ -1635,7 +1660,7 @@ UUID существа, который определяется боссом.
16351660

16361661
#### bot.recipesFor(itemType, metadata, minResultCount, craftingTable)
16371662

1638-
Возвращает список рецептов(`Recipe`), которые вы можете использовать для крафта
1663+
Возвращает список рецептов(`Recipe`), которые вы можете использовать для крафта
16391664
предмета(`itemType`) с мета-данными(`metadata`).
16401665

16411666
* `itemType` - Числовой ID предмета, который вы хотите создать.
@@ -1667,7 +1692,7 @@ const cow = bot.nearestEntity(entity => entity.name.toLowerCase() === 'cow') //
16671692

16681693
Принудительно завершает соединение по собственной причине (по умолчанию `'disconnect.quitting'`).
16691694

1670-
#### bot.tabComplete(str, [assumeCommand], [sendBlockInSight])
1695+
#### bot.tabComplete(str, [assumeCommand], [sendBlockInSight], [timeout])
16711696

16721697
Эта функция возвращает `Promise` с `matches` в качестве аргумента при завершении.
16731698

@@ -1676,6 +1701,7 @@ const cow = bot.nearestEntity(entity => entity.name.toLowerCase() === 'cow') //
16761701
* `str` - Строка для завершения через подсказки.
16771702
* `assumeCommand` - Поле отправляемое серверу, по умолчанию `false`.
16781703
* `sendBlockInSight` - Поле отправляемое серверу, по умолчанию `true`. Установите для этого параметра значение `false`, если вы хотите повысить производительность.
1704+
* `timeout` - Время в миллисекундах, после которого функция вернёт пустой массив, по умолчанию 5000.
16791705

16801706
#### bot.chat(message)
16811707

@@ -1711,6 +1737,8 @@ const cow = bot.nearestEntity(entity => entity.name.toLowerCase() === 'cow') //
17111737

17121738
Возвращает число, которое используется методом `bot.removeChatPattern()` лишь для того, чтобы можно было удалить этот шаблон.
17131739

1740+
- :eyes: см. [examples/chat_parsing](https://github.com/PrismarineJS/mineflayer/blob/master/examples/chat_parsing.js#L17-L36)
1741+
17141742
#### bot.addChatPatternSet(name, patterns, chatPatternOptions)
17151743

17161744
Создаёт событие, который вызывается каждый раз, когда сообщения совпадают с шаблонами.
@@ -1723,6 +1751,8 @@ const cow = bot.nearestEntity(entity => entity.name.toLowerCase() === 'cow') //
17231751

17241752
Возвращает число, которое используется методом `bot.removeChatPattern()` лишь для того, чтобы можно было удалить этот шаблон.
17251753

1754+
- :eyes: см. [examples/chat_parsing](https://github.com/PrismarineJS/mineflayer/blob/master/examples/chat_parsing.js#L17-L36)
1755+
17261756
#### bot.removeChatPattern(name)
17271757

17281758
Удаляет шаблон(ы) чата.
@@ -2110,15 +2140,31 @@ bot.once('login', () => {
21102140

21112141
Это функция основана на промисе. Она ожидает определённое количество игровых тиков перед продолжением. Может быть полезно для быстрых таймеров, который требуют особых задержек, независимо от заданной физической скорости тиканья бота. Это похоже на стандартную функцию Javascript `setTimeout`, но выполняется специально по физическому таймеру бота.
21122142

2143+
#### bot.respawn()
2144+
2145+
Когда выключена настройка `respawn`, вы можете вызвать этот метод для ручного возрождения.
2146+
21132147
### Методы инвентаря низкого уровня
21142148

21152149
Эти методы могут быть иногда полезны, но мы рекомендуем использовать методы, описанные выше.
21162150

21172151
#### bot.clickWindow(slot, mouseButton, mode)
21182152

21192153
Эта функция возвращает `Promise` с `void` в качестве аргумента при завершении.
2120-
2121-
Единственное действительное значение для `mode` - 0. Нажатие с шифтом или перемещение через мышь не реализовано.
2154+
2155+
Поддержка mode:
2156+
- стабильно:
2157+
- клик мышью (0)
2158+
2159+
- экспериментально:
2160+
- клик с шифтом (1)
2161+
- клик цифрой (2)
2162+
- клик колёсиком (3)
2163+
- выкидывающий клик (4)
2164+
2165+
- не реализовано:
2166+
- драг клик (5)
2167+
- двойной клик (6)
21222168

21232169
Нажимает на текущее окно. Подробнее - https://minecraft.wiki/w/Protocol#Click_Container
21242170

0 commit comments

Comments
 (0)