Перейти к содержимому

Version Numbering Converter

Ненавидишь новую систему нумерации версий в стиле Apple? Я тоже! Нравится? Плевать! Тебе важно, как нумеруются версии и как переводить старые версии в новые или наоборот? Этот проект для тебя!

FabricNeoForgeForgeQuilt
Загрузчики
FabricNeoForgeForgeQuilt
Скачиваний на Modrinth
1,5 тыс.
Подписчиков на Modrinth
3
версий
12
Обновлён
5 августа 20265 авг.
Опубликован
в 2025
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

Коротко о моде

Библиотека — нужна другим модам
Работает на Fabric, NeoForge, Forge и Quilt
Для Minecraft 1.0–26.2
Работает и в игре, и на сервере — ставьте, где нужен
Последняя версия — 1.2.1 от 5 августа 2026
Лицензия GPL-3.0-or-later — бесплатно
Где нужен
В игренеобязателенНа серверенеобязателен

Работает и в игре, и на сервере — ставьте, где нужен

Версии игры1.0–26.2
Описание переведено автоматическиПоказать оригинал (EN)

1

2

3

4

5

6

7+8

9

10

11

Спойлер

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-провайдер.

Модули

МодульАртефактНазначение
bootstrapme.croabeast.vnc:VNCИтоговый агрегированный jar с VNC, core и реализациями провайдеров.
coreme.croabeast.vnc:coreОбщий парсер, контракт провайдера, таблицы маппинга, схемы конвертации, поиск протокола и универсальные runtime-снимки.
bukkitme.croabeast.vnc:bukkitВнутренний провайдер Bukkit/Paper и определение протокола игрока через ViaVersion.
mod:fabricme.croabeast.vnc:fabricМост версий рантайма загрузчика Fabric.
mod:quiltme.croabeast.vnc:quiltМост версий рантайма загрузчика Quilt.
mod:forgeme.croabeast.vnc:forgeМост версий рантайма Forge.
mod:neoforgeme.croabeast.vnc:neoforgeМост версий рантайма NeoForge, скомпилированный в байткод Java 8.
mod:spongeme.croabeast.vnc:spongeМост версий рантайма Sponge.
mod:liteloaderme.croabeast.vnc:liteloaderМост для устаревшего LiteLoader.
proxy:bungeeme.croabeast.vnc:bungeeМост версий прокси BungeeCord.
proxy:velocityme.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();           // 775
String 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 и разрешается во время выполнения только при наличии Java 21+ и 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 на сервере?

Работает и в игре, и на сервере — ставьте, где нужен

Лицензия и источник
GNU General Public License v3.0 or laterможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее