Lexiconfig - это конфиг API для Майнкрафт, который создан чтобы упростить жизнь и разработчикам модов, и обычным игрокам. По сути, это библиотека, которая берёт на себя всю рутину по созданию, чтению и отображению файлов настроек. Вместо того чтобы писать кучу однотипного кода для каждого загрузчика (Fabric, Forge, NeoForge), ты просто используешь аннотации - и всё работает само.
Любой более-менее серьёзный мод рано или поздно обрастает настройками. Без нормальной конфиг-системы это превращается в ад: нужно вручную парсить JSON или TOML, обрабатывать ошибки, делать GUI. Lexiconfig решает эту проблему - ты просто описываешь поля с настройками, а библиотека сама создаёт файл, подгружает значения и показывает их в удобном интерфейсе.
Всё строится на аннотациях. Ты создаёшь класс, помечаешь его @Lexicon, а поля - @LexiconEntry. Можно даже группировать настройки по страницам с помощью @LexiconPage. Выглядит это примерно так:
@Lexicon(name = "my_mod_config")
public class MyConfig extends LexiconData {
@LexiconEntry(comment = "Включить звуки")
public boolean enableSounds = true;
@LexiconPage(comment = "Настройки графики")
public GraphicsPage graphics = new GraphicsPage();
public static class GraphicsPage extends LexiconPageData {
@LexiconEntry(comment = "Дальность прорисовки")
public int renderDistance = 12;
}
}
Дальше остаётся только "зашельфить" (shelve) этот конфиг в библиотеке:
@LexiconLibrary
public class MyLibrary extends Library {
public static MyConfig CONFIG = new MyConfig();
@Override
public void shelveLexicons() {
LexiconfigApi.shelveLexicon(CONFIG);
}
}
Для Forge ничего дополнительно делать не нужно - библиотека подхватится автоматически. А вот для Fabric придётся добавить entrypoint в fabric.mod.json:
"entrypoints": {
"lexiconfig": [
"com.path.to.MyLibrary"
]
}
Сейчас из коробки работает интеграция с Configured. Поддержка Cloth Config, oωo и Forge Config Screens пока в планах - автор постепенно добавляет совместимость, чтобы библиотеки не конфликтовали между собой.
Если ты просто игрок - тебе эти технические детали ни к чему. Но если ты разрабатываешь моды и хочешь сэкономить время на настройках - Lexiconfig реально упрощает жизнь. Особенно если проект мультизагрузочный (под Fabric и Forge одновременно).
Добавь репозиторий и зависимость в build.gradle:
repositories {
maven { url 'https://maven.codinglitch.com/repository/releases' }
}
dependencies {
implementation "com.codinglitch.lexiconfig:lexiconfig-api:АКТУАЛЬНАЯ_ВЕРСИЯ"
}
Актуальную версию API можно посмотреть на сайте версий.
Lexiconfig - это не какой-то громоздкий фреймворк, а лёгкая и удобная обёртка для конфигов. Если надоело каждый раз изобретать велосипед с настройками - попробуй эту библиотеку. Она не перегружена лишними функциями, но делает именно то, что нужно: быстро и без головной боли.