- Кросс-версионный инструмент для конфигурации с минимальными зависимостями, обеспечивающий простой перенос
- Специально разработан для удобства использования и портируемости
- Название Cryonic выбрано потому, что это очень круто
Объяснение функциональности
- Хранение JSON-файлов в {minecraft_dir}/config под именами "mod_id.json"
- Все файлы конфигурации читаются из словаря в "cryonicconfig.json" на этапе ранней инициализации
- Конфиги настраиваются только путём прямого редактирования JSON-файлов, поддержка GUI не планируется
- Для упрощения переноса синхронизируемые переменные отправляются игроку непосредственно в чат и перехватываются
- Для поиска используются хэш-карты: Str → ConfigStorage и Str → Obj (переменная)
API
Добавление зависимости (Groovy, build.gradle)
Добавьте Maven-репозиторий:
repositories {
maven { url "https://api.modrinth.com/maven" }
}Modern/Architectury:
Для Fabric или NeoForge замените ${project.name} на fabric,forge или neoforge
dependencies {
modImplementation "maven.modrinth:cryonicconfig:fabric-${project.name}:1.0.0+mc${rootProject.minecraft_version}"
}b1.7.3:
dependencies {
modImplementation "maven.modrinth:cryonicconfig:babric:1.0.0+mcb1.7.3"
}Простое использование:
// Можно сохранить или использовать напрямую, вызов возможен в любом месте
ConfigStorage config = CryonicConfig.getConfig("mod_id");
// Поддерживаются int, double, boolean, string
// При получении устанавливается значение по умолчанию
// Формат геттера: (имя переменной, значение по умолчанию)
// Нельзя повторять имена переменных! Они будут перезаписаны.
config.getInt("varName", 3);
config.getDouble("name", 3.3);
config.getBoolean("var", true);
config.getString("str", "Geronimo!")
// Переменная будет доступна локально на клиенте и сервере
// Для использования серверного конфига игроком
// Вызовите синхронизацию, чтобы клиент использовал значение сервера
config.sync("varName", playerEntity);
// Допустим такой формат:
CryonicConfig.getConfig("mod_id").getInt("varName", 3);
// Ручная установка значений вместо генерации через get
// Также полезно для переопределения старых значений
config.setInt("varName", 3);
config.setDouble("name", 3.3);
config.setBoolean("var", true);
config.setString("str", "Geronimo!");Указание зависимости
В fabric.mod.json:
{
"depends": {
"cryonicconfig": "*"
}
}В mods.toml/neoforge.mods.toml:
[[dependencies.cryonicconfig]]
modId = "cryonicconfig"
type = "required"
versionRange = "[0,)"

