|
1 | 1 | # McWss для одиночных миров |
2 | 2 |
|
3 | | -`McWss` это websocket / command-tunnel transport, который в основном используется для локальных миров и лёгких Bedrock-сценариев. |
| 3 | +`McWss` это websocket / command-tunnel transport, который в основном используется для локальных миров и легких Bedrock-сценариев. |
4 | 4 |
|
5 | 5 | ## Когда использовать |
6 | 6 |
|
7 | | -- локальный Bedrock мир |
8 | | -- singleplayer |
9 | | -- тестирование addon logic |
| 7 | +Используйте `McWss`, если: |
10 | 8 |
|
11 | | -## Ограничения |
| 9 | +- вы играете в локальном Bedrock-мире |
| 10 | +- нужен быстрый singleplayer setup |
| 11 | +- вы тестируете addon-логику без отдельного BDS |
| 12 | + |
| 13 | +## Важные ограничения |
12 | 14 |
|
13 | 15 | - обычно менее стабилен, чем `McHttp` |
14 | 16 | - сильно зависит от command throughput и размера payload |
| 17 | +- не является основным выбором для больших публичных прод-серверов |
15 | 18 |
|
16 | 19 | ## Требования |
17 | 20 |
|
18 | 21 | 1. `VoiceCraft.Server` с `McWssConfig.Enabled = true` |
19 | 22 | 2. `VoiceCraft.Addon.Core.McWss.zip` |
| 23 | +3. Bedrock-версия с поддержкой нужной websocket / script-функциональности |
| 24 | + |
| 25 | +## Конфиг VoiceCraft сервера |
| 26 | + |
| 27 | +Типовой пример: |
| 28 | + |
| 29 | +```json |
| 30 | +{ |
| 31 | + "McWssConfig": { |
| 32 | + "Enabled": true, |
| 33 | + "LoginToken": "replace-with-token", |
| 34 | + "Hostname": "ws://127.0.0.1:9051/", |
| 35 | + "MaxClients": 1, |
| 36 | + "MaxTimeoutMs": 10000, |
| 37 | + "DataTunnelCommand": "voicecraft:data_tunnel", |
| 38 | + "CommandsPerTick": 3, |
| 39 | + "MaxByteLengthPerCommand": 300, |
| 40 | + "DisabledPacketTypes": [] |
| 41 | + } |
| 42 | +} |
| 43 | +``` |
| 44 | + |
| 45 | +## Установка |
| 46 | + |
| 47 | +### Вариант 1: импорт как `.mcaddon` |
20 | 48 |
|
21 | | -## Подключение |
| 49 | +1. Переименуйте архив в `VoiceCraft.Addon.Core.McWss.mcaddon`. |
| 50 | +2. Откройте его, чтобы Minecraft импортировал addon. |
| 51 | +3. Включите behavior pack и resource pack в нужном мире. |
22 | 52 |
|
23 | | -### Шаг 1: websocket connect |
| 53 | +### Вариант 2: ручное копирование |
| 54 | + |
| 55 | +1. Распакуйте архив. |
| 56 | +2. Скопируйте `RP` и `BP` в директории Bedrock. |
| 57 | +3. Включите оба пака в целевом мире. |
| 58 | + |
| 59 | +## Схема подключения |
| 60 | + |
| 61 | +### Шаг 1: подключить websocket мира |
24 | 62 |
|
25 | 63 | ```text |
26 | 64 | /connect <VOICECRAFT_HOST>:<MCWSS_PORT> |
|
32 | 70 | /connect 127.0.0.1:9051 |
33 | 71 | ``` |
34 | 72 |
|
35 | | -### Шаг 2: авторизация аддона |
| 73 | +### Шаг 2: авторизовать addon |
36 | 74 |
|
37 | 75 | ```text |
38 | 76 | /voicecraft:vcconnect <LOGIN_TOKEN> |
|
42 | 80 |
|
43 | 81 | ## Data tunnel |
44 | 82 |
|
45 | | -Аддон использует: |
| 83 | +Addon использует: |
46 | 84 |
|
47 | 85 | - `voicecraft:data_tunnel` |
48 | 86 |
|
49 | 87 | Имя должно совпадать с `McWssConfig.DataTunnelCommand`. |
| 88 | + |
| 89 | +Если изменить только одну сторону, мост перестанет работать. |
| 90 | + |
| 91 | +Сейчас команда передает: |
| 92 | + |
| 93 | +- опциональный аргумент max string length |
| 94 | +- аргумент с упакованным payload |
| 95 | + |
| 96 | +## Тюнинг |
| 97 | + |
| 98 | +Если видите лаги или нестабильность пакетов: |
| 99 | + |
| 100 | +- снижайте `CommandsPerTick` |
| 101 | +- проверяйте `MaxByteLengthPerCommand` |
| 102 | +- избегайте больших burst-обновлений |
| 103 | +- тестируйте на меньшем числе активных сущностей |
| 104 | + |
| 105 | +## Когда лучше перейти на другой transport |
| 106 | + |
| 107 | +Переходите на `McHttp`, если: |
| 108 | + |
| 109 | +- вы используете реальный Bedrock Dedicated Server |
| 110 | +- нужна более чистая production-схема |
| 111 | +- command tunnel становится узким местом |
0 commit comments