Prickle
Prickle - мод для Майнкрафт, который добавляет в игру формат конфигурации на базе JSON с поддержкой комментариев и декораторов. Полностью совместим с обычным JSON.
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
Часто задаваемые вопросы
Совместимость
Зависимости
Создатели
Детали
Версии мода Prickle
Доступно 105 версий. Сначала показаны самые популярные и самые свежие.