
KotlinLangForge
Мод KotlinLangForge добавляет поддержку языка Kotlin для Forge и NeoForge, позволяя писать моды на Kotlin вместо Java. Включает стандартные библиотеки Kotlin и корутины.
KotlinLangForge
KotlinLangForge - это адаптер языка Kotlin для Forge и NeoForge. Если вы пишете моды для Майнкрафт и хотите использовать Kotlin вместо Java - этот проект для вас. Он не только добавляет поддержку языка, но и включает кучу полезных библиотек: kotlin-stdlib, kotlinx-serialization, kotlinx-coroutines и другие. Всё уже внутри, ничего дополнительно тащить не надо.
Для разработчиков
Чтобы подключить KotlinLangForge к своему моду, пропишите в neoforge.mods.toml:
modLoader = "klf"
loaderVersion = "1,"
Теперь ваш @Mod класс может быть написан на Kotlin. Главное - чтобы у него был публичный конструктор. В конструктор можно передать:
IEventBusModContainerKotlinModContainerDist
Повторять аргументы нельзя.
Версии
Поддержка разных версий Minecraft различается. Вот таблица:
| Версия Minecraft | Версия адаптера | Поддерживаемые загрузчики |
|---|---|---|
| 1.16.5 | 1.0 | Forge |
| 1.17.1 - 1.20.4 | 2.0 | Forge, NeoForge |
| 1.20.5 - 1.21.8 | 3.0 | NeoForge |
| 1.21.9 - 26.x | 3.1 | NeoForge |
Подключение зависимости
В build.gradle.kts добавьте репозиторий и зависимость:
repositories {
maven("https://repo.nyon.dev/releases")
}
dependencies {
implementation("dev.nyon:KotlinLangForge:2.12.1-k2.4.0-$lpVersion+$loader")
}
Для версий адаптера <=3.0 используйте modImplementation.
События
Если хотите автоматическую регистрацию слушателей событий - добавьте аннотацию @EventBusSubscriber на класс или файл. Klf сам найдёт методы с параметрами событий и определит нужную шину. Можно дополнительно указать @SubscribeEvent для тонкой настройки.
Важно для Forge: приватные слушатели событий не работают - будет краш.
Модовая шина доступна через dev.nyon.klf.MOD_BUS.
Включенные библиотеки
В составе KotlinLangForge уже есть:
- org.jetbrains.kotlin:kotlin-stdlib:2.4.0
- org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.4.0
- org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.4.0
- org.jetbrains.kotlin:kotlin-reflect:2.4.0
- org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
- org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
- org.jetbrains.kotlinx:kotlinx-serialization-cbor:1.9.0
- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.10.2
- org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat
- org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
- org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
- org.jetbrains.kotlinx:atomicfu:0.29.0
Всё это уже под капотом - просто подключайте и пользуйтесь.
Итог
Если вы пишете моды для Minecraft на Kotlin - KotlinLangForge реально упрощает жизнь. Не надо вручную тащить кучу библиотек и настраивать адаптер языка. Всё работает из коробки. Для Forge и NeoForge, под разные версии Майнкрафт - выбирайте нужную версию адаптера по таблице выше.
