Version Detector
Датапак Version Detector определяет версию Minecraft и предоставляет API для других датапаков. Полезен для создателей контента, которым нужно адаптировать свои сборки под разные версии игры.
Version Detector - это датапак для Minecraft, который умеет определять, под какой версией игры он запущен. По сути, это API для других датапаков: они могут запросить у него номер версии и в зависимости от этого менять своё поведение.
Сам по себе Version Detector ничего не меняет в игре - он просто хранит ID версии в скорборде VersionInfo.MinecraftVersion. Но для авторов датапаков это настоящая находка: больше не нужно писать кучу проверок вручную или выпускать отдельные версии под каждый релиз Майнкрафта.
Как это работает
Разработчик использовал хитрый трюк: Minecraft при загрузке датапака полностью удаляет функции с невалидным синтаксисом. Например, команда execute if entity @e[type=pillager] в версии 1.13 вызовет ошибку (разбойников тогда ещё не было), и вся функция будет вырезана. А в 1.14 и новее она отработает нормально. Version Detector запускает цепочку таких функций - каждая проверяет наличие определённого моба или предмета, который появился в конкретной версии. Если цепочка обрывается, значит, мы достигли версии, где следующий элемент ещё не существует. Так и определяется ID.
ID хранится в скоре MinecraftVersion (цель VersionInfo). Значения идут от 0 (1.13) до последней обнаруженной версии. Датапак также умеет определять наличие NeoForge и Forge (через их изменения в игре), а вот Fabric и Quilt пока не детектятся - они не добавляют ничего, что можно было бы поймать таким способом.
Какие версии определяются
Список довольно большой - от 1.13 до 26.1 Snapshot 11 и даже апрельские снапшоты. Если ваша версия не указана явно, она группируется с предыдущей известной (например, 1.21.3 будет определена как 1.21.2). Вот полный перечень ID и соответствующих версий:
- 0: 1.13
- 1: 1.13.1
- 2: 1.14
- 3: 1.14.3
- 4: 1.14.4
- 5: 1.15
- 6: 1.15.2
- 7: 1.16
- 8: 1.16.2
- 9: 1.17
- 10: 1.18
- 11: 1.18.2
- 12: 1.19
- 13: 1.19.3
- 14: 1.19.4
- 15: 1.20
- 16: 1.20.2
- 17: 1.20.3
- 18: 1.20.5
- 19: 1.21
- 20: 1.21.2
- 21: 1.21.4
- 22: 25w02a
- 23: 25w03a
- 24: 25w04a
- 25: 25w05a
- 26: 25w06a
- 27: 25w07a
- 28: 25w08a
- 29: 25w09a
- 30: 25w10a
- 31: 1.21.5
- 32: 25w15a
- 33: 25w20a
- 34: 1.21.6
- 35: 1.21.7-1.21.8
- 36: 25w31a
- 37: 25w32a
- 38: 25w34a
- 39: 25w35a
- 40: 25w36a
- 41: 1.21.9-1.21.10
- 42: 25w41a
- 43: 25w42a
- 44: 25w43a
- 45: 25w44a
- 46: 1.21.11
- 47: 26.1 Snapshot 1
- 48: 26.1 Snapshot 2
- 49: 26.1 Snapshot 3
- 50: 26.1 Snapshot 4
- 51: 26.1 Snapshot 5
- 52: 26.1 Snapshot 6 - Snapshot 7
- 53: 26.1 Snapshot 8 - Snapshot 9
- 54: 26.1 Snapshot 10
- 55: 26.1 Snapshot 11
- 56: 26.1
Апрельские снапшоты имеют отдельные ID:
- 1001: 20w14infinite
- 1002: 22w13oneBlockAtATime
- 1003: 23w13a_or_b
- 1004: 24w14potato
Важно знать
Если вы добавляете датапак на версию старше 1.20.2, Minecraft может предупредить, что пак создан для более старой версии - это нормально, игнорируйте. Дело в том, что возможность указывать диапазон поддерживаемых версий в pack.mcmeta появилась только в 1.20.2, на более ранних версиях автор ничего не может с этим поделать.
Version Detector - отличный инструмент для создателей сборок и датапаков. Если ваш проект должен работать на нескольких версиях Майнкрафта, этот датапак сэкономит кучу времени. Просто подключите его как зависимость и читайте ID версии из скорборда.
Как поиграть с друзьями с модом Version Detector?
Мод Version Detector куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Version Detector будет готов за пару минут - BungeeHost сделает всё за вас.