Version Numbering Converter
Ненавидишь новую систему нумерации версий в стиле Apple? Я тоже! Нравится? Плевать! Тебе важно, как нумеруются версии и как переводить старые версии в новые или наоборот? Этот проект для тебя!
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 1,5 тыс.
- Подписчиков на Modrinth
- 3
- версий
- 12
- Обновлён
- 5 августа 20265 авг.
- Опубликован
- в 2025
Коротко о моде
Работает и в игре, и на сервере — ставьте, где нужен
Спойлер
VNC (Version Numbering Converter)
Version Numbering Converter (VNC) — это библиотека для Java 8 для работы с версиями Minecraft из обоих семейств нумерации:
- Классические версии в стиле Java, такие как
1.20.6и1.21.11 - Версии-дропы по годам, такие как
24.1,25.4и26.1.1
Проект разделён так, чтобы общий API можно было использовать из любого Java-проекта без Bukkit в classpath. Платформенные runtime-хелперы живут в отдельных модулях и выбираются через bootstrap-провайдер.
Модули
| Модуль | Артефакт | Назначение |
|---|---|---|
bootstrap | me.croabeast.vnc:VNC | Итоговый агрегированный jar с VNC, core и реализациями провайдеров. |
core | me.croabeast.vnc:core | Общий парсер, контракт провайдера, таблицы маппинга, схемы конвертации, поиск протокола и универсальные runtime-снимки. |
bukkit | me.croabeast.vnc:bukkit | Внутренний провайдер Bukkit/Paper и определение протокола игрока через ViaVersion. |
mod:fabric | me.croabeast.vnc:fabric | Мост версий рантайма загрузчика Fabric. |
mod:quilt | me.croabeast.vnc:quilt | Мост версий рантайма загрузчика Quilt. |
mod:forge | me.croabeast.vnc:forge | Мост версий рантайма Forge. |
mod:neoforge | me.croabeast.vnc:neoforge | Мост версий рантайма NeoForge, скомпилированный в байткод Java 8. |
mod:sponge | me.croabeast.vnc:sponge | Мост версий рантайма Sponge. |
mod:liteloader | me.croabeast.vnc:liteloader | Мост для устаревшего LiteLoader. |
proxy:bungee | me.croabeast.vnc:bungee | Мост версий прокси BungeeCord. |
proxy:velocity | me.croabeast.vnc:velocity | Мост прокси Velocity для заданной backend/support версии Minecraft. |
Основной API
MinecraftVersion classic = MinecraftVersion.parse("1.21.11");
MinecraftVersion drop = MinecraftVersion.parse("26.1");
classic.getVersion(); // "1.21.11"
classic.getProtocol(); // 774
classic.supportsHex(); // true
drop.getVersion(); // "26.1"
drop.getProtocol(); // 775String dropName = VersionScheme.MOJANG.toDrop("1.20.3"); // "23.2"
String classicName = VersionScheme.MOJANG.toClassic("25.2.2"); // "1.21.8"
boolean modernRegistry = Versioning.isAtLeast(MinecraftVersion.parse("1.20.6"), "1.20.5");
int comparison = VNC.compare(MinecraftVersion.parse("26.1"), "1.21.11");Runtime API платформ
Используй bootstrap, если хочешь, чтобы VNC сам определил runtime-провайдера:
VNCProvider provider = VNC.getProvider();
String platform = provider.getPlatform();
String classic = provider.getClassicVersion();
String drop = provider.getDropVersion();
int protocol = provider.getProtocol();
boolean modernRegistry = provider.isAtLeast("1.20.5");
`VNC` по-прежнему предоставляет удобные методы для обнаруженного провайдера:
```java
MinecraftVersion server = VNC.SERVER_MINECRAFT_VERSION;
double legacy = VNC.SERVER_VERSION;
boolean modernRegistry = VNC.isAtLeast("1.20.5");Когда в среде выполнения может не быть поддерживаемого провайдера, используйте nullable-аксессор:
VNCProvider provider = VNC.getProviderOrNull();
if (provider != null && provider.isAtLeast("1.20.5")) {
// use modern behavior
}Платформенные модули содержат package-private реализации провайдеров. Потребителям следует зависеть от bootstrap для определения среды выполнения, а не вызывать классы конкретных загрузчиков напрямую.
Velocity не предоставляет одну глобальную версию бэкенд-Minecraft. Его провайдер всё ещё определяется через Velocity API, но для методов версии требуется системное свойство minecraft.version.
Требования
- Java 8 байткод для каждого модуля
- Gradle 9.4.1 wrapper для локальных сборок
- Опциональные платформенные API —
compileOnly; платформенные модули используют прямые API и защищают определение среды выполнения черезThrowable/защиту от ошибок связывания - Модуль NeoForge нацелен на NeoForge
21.1.230, компилируется в стиле Maven сsource/target 1.8и разрешается во время выполнения только при наличии Java21+и NeoForge
Сборка
./gradlew clean buildИтоговый потребительский jar генерируется модулем bootstrap:
bootstrap/build/libs/VNC-${version}.jarПубликация в Maven-репозиторий обрабатывается только через .github/workflows/publish.yml.
Частые вопросы
Как установить Version Numbering Converter?
Установите Fabric под свою версию Minecraft, скачайте Version Numbering Converter под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Version Numbering Converter?
У Version Numbering Converter есть сборки для Minecraft 1.0–26.2.
Нужен ли Version Numbering Converter на сервере?
Работает и в игре, и на сервере — ставьте, где нужен









