НАЖМИ, чтобы запустить свой Сервер Майнкрафт + 8🎁
modМоды/Prickle
Prickle

Prickle

Prickle - мод для Майнкрафт, который добавляет в игру формат конфигурации на базе JSON с поддержкой комментариев и декораторов. Полностью совместим с обычным JSON.

Оцените первым
Открыть в FateLauncher
14.3M
630

Prickle - мод для Майнкрафт, который привносит в игру новый формат конфигурационных файлов на базе JSON. Если вы хоть раз ковырялись в конфигах модов и матерились на невозможность оставить себе пометку или комментарий - этот проект для вас. Скачать Prickle стоит в первую очередь разработчикам модов и авторам сборок, но и обычным игрокам полезно понимать, что это за зверь, когда он попадается в зависимостях.

Что такое Prickle и зачем он нужен

По сути, Prickle - это надстройка над классическим JSON. Обычный JSON, который Minecraft и так активно использует для датапаков, команд и кучи внутренних файлов, имеет один жирный минус - в нём нельзя писать комментарии. Вообще. Ни пометок, ни пояснений, ни значений по умолчанию. Для разработчиков модов это боль: хочешь объяснить игроку, за что отвечает тот или иной параметр в конфиге - изволь городить костыли.

Prickle решает эту проблему элегантно. Формат добавляет комментарии и так называемые декораторы, оставаясь при этом на 100% обратно совместимым с JSON. Это значит, что весь ваш любимый инструментарий - редакторы кода, подсветка синтаксиса, валидаторы - продолжает работать без нареканий. Любой валидный JSON-файл является валидным Prickle-файлом, но не наоборот.

Проект живой и поддерживается - свежие сборки выходят под актуальные версии Minecraft 1.21.1 и 1.21.10 на загрузчике Fabric. Это хороший знак: мод не заброшен и следит за обновлениями игры.

Как устроен формат Prickle

Главное отличие от обычного JSON - значения свойств оборачиваются в отдельный объект. Это позволяет прикреплять к каждому параметру метаданные вроде комментариев.

Стандартный JSON выглядит так:

{
  "database_host": "192.168.1.222"
}

Тот же параметр в формате Prickle:

{
  "database_host": {
    "//": "IP-адрес базы данных для подключения.",
    "value": "192.168.1.222"
  }
}

Видите разницу? Ключ value хранит само значение, а специальный ключ // - комментарий к нему. Просто и гениально.

Комментарии

Ключ // зарезервирован под комментарии. Они существуют исключительно для читателя файла и никак не влияют на то, как конфиг парсится. Комментарий может быть обычной строкой или массивом строк, если нужно написать несколько абзацев пояснений:

{
  "database_host": {
    "//": [
      "IP-адрес базы данных для подключения.",
      "Порт можно указать в конце через двоеточие."
    ],
    "value": "192.168.1.222:1273"
  }
}

Для игрока, который лезет в конфиг мода впервые, это спасение. Вместо гадания на кофейной гуще вы получаете понятное описание каждого параметра прямо в файле.

Декораторы

Декораторы - это именованные комментарии, которые описывают конкретный атрибут свойства. Как и обычные комментарии, они не влияют на парсинг файла, а лишь подсказывают, как параметр будет обработан. Самый частый пример - //default, показывающий значение по умолчанию.

Вот какие декораторы вы можете встретить в файлах Prickle:

  • //default - значение свойства по умолчанию
  • //reference - ссылка на ресурс с дополнительной информацией, например на вики-страницу
  • //range - допустимый диапазон значения, например >=5
  • //regex - регулярное выражение, которому должно соответствовать значение
  • //empty-allowed - может ли значение быть пустым (по умолчанию true)

По факту это превращает конфиг в самодокументируемый файл. Открываешь - и сразу видишь, что можно трогать, какие значения допустимы и что будет, если оставить поле пустым.

Почему не TOML и не другие форматы

Автор проекта объясняет выбор просто. JSON он использовал давно, но отсутствие комментариев и значений по умолчанию подбешивало. TOML и прочие альтернативы пробовал, но их Java-реализации оставляли желать лучшего: где-то не хватает важных функций, где-то серьёзные баги, а некоторые библиотеки вообще заброшены. А JSON в Minecraft уже знаком большинству игроков - на нём построены датапаки и команды. Так что Prickle - это эволюция привычного, а не революция с нуля.

Кстати, о названии. Prickle - это собирательное существительное для группы ёжиков. Автор считает их метафорой конфигов: на первый взгляд колючие и пугающие, но стоит разобраться - и они вполне милые. Забавно и запоминается.

Кому пригодится этот мод

Честно скажу - Prickle это не тот проект, который меняет геймплей или добавляет контент. Это утилита, библиотека, инструмент для разработчиков. Обычный игрок заметит его разве что в списке зависимостей какого-нибудь мода.

Но если вы делаете собственные моды для Minecraft или собираете модпаки - Prickle может серьёзно упростить жизнь. Конфиги становятся читаемыми, игроки вашей сборки перестают задавать одни и те же вопросы про настройки, а вы получаете формат, который не сломается при обновлении.

Мод работает на Fabric и поддерживает свежие версии игры. Скачать Prickle можно для Minecraft 1.21.1 и 1.21.10 - проект активно обновляется вслед за релизами игры.

Скриншоты Prickle

Ranged Integer Preview
24 августа 2024 г.

Часто задаваемые вопросы

Совместимость

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Создатели

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:4 недели назад

Версии мода Prickle

Доступно 105 версий. Сначала показаны самые популярные и самые свежие.

16 из 105 версий
Самые популярные
R
21.1.11PrickleMC-fabric-1.21.1-21.1.11
1.21.1
R
21.1.11PrickleMC-neoforge-1.21.1-21.1.11
1.21.1
R
21.1.6PrickleMC-fabric-1.21.1-21.1.6
1.21.1
R
21.1.8PrickleMC-fabric-1.21.1-21.1.8
1.21.1
R
21.11.1PrickleMC-fabric-1.21.11-21.11.1
1.21.11
R
21.1.8PrickleMC-neoforge-1.21.1-21.1.8
1.21.1
Самые Новые
R
26.3.0.2PrickleMC-neoforge-26.3.0.2
26.3
R
26.3.0.2PrickleMC-fabric-26.3.0.2
26.3
R
26.2.0.3PrickleMC-fabric-26.2.0.3
26.2
R
26.2.0.3PrickleMC-neoforge-26.2.0.3
26.2
R
26.1.2.6PrickleMC-fabric-26.1.2.6
26.1.x
R
26.1.2.6PrickleMC-neoforge-26.1.2.6
26.1.x
R
26.2.0.2PrickleMC-fabric-26.2.0.2
26.2
R
26.2.0.2PrickleMC-neoforge-26.2.0.2
26.2
R
26.1.2.5PrickleMC-fabric-26.1.2.5
26.1.x
R
26.1.2.5PrickleMC-neoforge-26.1.2.5
26.1.x
Главная