Напиши что-то на подобии ViaVersion (ViaProxy) но для Minecraft: Bedrock Edition для возможности зайти со старых версий клиента на новые версии серверов и наоборот, с новых версий клиента, на старые версии серверов. Напиши его на Java используя https://github.com/CloudburstMC/Protocol без его модификации а используй его в этом проекте, маппинги я могу сам добавить из других репозиториев на GitHub взяв их у Nukkit, PocketMine-MP, BedrockData BedrockBlockUpgradeSchema, BedrockItemUpgradeSchema, GeyserMC mappings, у https://github.com/CloudburstMC/Protocol есть готовая поддержка серверной составляющей протоколов от 291 до последней версии, протокол 291 это версия 1.7 Bedrock Edition, сделай её пока поддерживаемой в этом проекте, но я бы хотел все версии поддерживать вплоть до альфа 0.1.0-0.1.3, но это уже посложнее пакеты придётся тоже брать с Nukkit а после PocketMine-MP, так как Nukkit появился во время версии 0.13.0-0.14.0.
Хочу поддерживать версии 1.21 1.20 1.19 1.18 1.17 1.16 1.14 1
Отлично, ты хочешь создать Bedrock Edition аналог ViaVersion/ViaProxy, но для Minecraft Bedrock, используя Cloudburst Protocol как основу. Это прокси-сервер, который будет переводить пакеты между разными версиями клиента и сервера, включая обратную совместимость (новый клиент → старый сервер и наоборот).
BedrockBridge
(или BedrockVersionBridge, BedrockVia, BrockVia — выбирай, что ближе)
Создать прокси-сервер на Java, который:
| Модуль | Описание |
|---|---|
proxy-core | Основной прокси-сервер, принимает клиентов и подключается к серверу |
protocol-bridge | Логика конвертации пакетов между версиями |
mapping-provider | Загрузка и использование маппингов из внешних репозиториев |
bedrock-version-registry | Регистрация поддерживаемых версий и протоколов |
cli | Консольный интерфейс для запуска и настройки |
| Версия | Протокол | Поддержка |
|---|---|---|
| 1.21.x | 685+ | ✅ |
| 1.20.x | 622–684 | ✅ |
| 1.19.x | 527–621 | ✅ |
| 1.18.x | 475–526 | ✅ |
| 1.17.x | 440–474 | ✅ |
| 1.16.x | 407–439 | ✅ |
| 1.14.x | 389–406 | ✅ |
| 1.7.0 | 291 | ✅ (минимальная) |
implementation 'com.nukkitx.protocol:bedrock-v291:3.0.0.Beta1-SNAPSHOT'
implementation 'com.nukkitx.protocol:bedrock-v3xx:...' // и так далее
⚠️ Cloudburst Protocol разделён по версиям. Тебе нужно подключить все нужные модули от
v291доv685+.
BedrockServer из Cloudburst Protocol.LoginPacket.StartGamePacketAvailableEntityIdentifiersPacketCreativeContentPacketBiomeDefinitionListPacketBlockPaletteItemPaletteSoundEventEntityDataЗагружаются из:
Формат: JSON или NBT
Примеры:
block_id_291_to_685.jsonitem_id_291_to_685.jsonsound_mapping_291_to_685.jsonjava -jar BedrockBridge.jar \
--bind 0.0.0.0:19132 \
--target play.example.com:19132 \
--target-version 1.21.0 \
--allow-versions 1.7.0-1.21.0
BedrockBridge/
├── proxy-core/
│ ├── ProxyServer.java
│ ├── ClientSession.java
│ └── ServerSession.java
├── protocol-bridge/
│ ├── PacketTranslator.java
│ ├── VersionBridge.java
│ └── mappers/
├── mapping-provider/
│ ├── MappingLoader.java
│ └── MappingRegistry.java
├── bedrock-version-registry/
│ ├── BedrockVersion.java
│ └── ProtocolVersion.java
├── cli/
│ └── Main.java
└── mappings/
├── blocks/
├── items/
└── sounds/
{
"from_version": 291,
"to_version": 685,
"blocks": {
"1": "minecraft:stone",
"2": "minecraft:grass",
"3": "minecraft:dirt"
}
}
MIT — если хочешь opensource
Или проприетарная — если планируешь монетизацию
Я могу сгенерировать тебе готовый шаблон проекта на GitHub, если хочешь.
Напиши:
Готов продолжить с генерацией шаблона проекта или первым классом ProxyServer.java.