Lexiconfig — это API для конфигураций, разработанное для обеспечения совместимости с различными библиотеками конфигураций и удобства использования как для разработчиков, так и для пользователей.
Обзор
Lexiconfig предоставляет простой синтаксис на основе аннотаций, который облегчает создание новых конфигурационных файлов. Основная цель — обеспечить совместимость с разными библиотеками конфигураций и удобство работы в многозагрузочных проектах, особенно в собственных модах автора.
На данный момент поддержка интеграций с другими библиотеками отсутствует, но в будущих обновлениях планируется добавить совместимость с ними, чтобы избежать конфликтов и обеспечить бесшовную интеграцию.
Статус интеграций с различными библиотеками:
| Статус | Мод |
|---|---|
| ❌ | Cloth Config |
| ❌ | oc3o config |
| ✅ | Configured |
| ❌ | Forge Config Screens |
Разработка
API мода позволяет создавать новые «лексиконы», слушать события и расширять функциональность.
Подключение
В вашем build.gradle добавьте зависимость:
dependencies { implementation "com.codinglitch.lexiconfig:lexiconfig-api:API_VERSION_HERE"
}
Версию API можно уточнить на официальном сайте разработчика.
Использование
@LexiconLibrary
public class MyNewLibrary extends Library { @Override public void shelveLexicons() { // регистрация лексиконов }
}
В среде Forge дополнительных действий не требуется. Для Fabric нужно указать этот класс в качестве точки входа в файле fabric.mod.json:
{ "entrypoints": { "lexiconfig": [ "com.path.to.MyNewLibrary" ] }
}
@Lexicon(name = MY_LEXICON_TITLE)
public class MyLexicon extends LexiconData { @LexiconEntry(comment = "Комментарий для простого поля") public String mySimpleField = "content"; @LexiconPage(comment = "Комментарий для новой страницы") public MyNewPage myNewPage = new MyNewPage(); public static class MyNewPage extends LexiconPageData { @LexiconEntry(comment = "Поле внутри страницы лексикона") public Boolean myPageField = true; }
}
Для регистрации лексикона добавьте его экземпляр в библиотеку и вызовите метод регистрации в shelveLexicons:
@LexiconLibrary
public class MyNewLibrary extends Library { public static MyLexicon MY_LEXICON = new MyLexicon(); @Override public void shelveLexicons() { LexiconfigApi.shelveLexicon(MY_LEXICON); }
}





