Kotlin for Forge
Kotlin for Forge - библиотека для Minecraft, добавляющая поддержку языка программирования Kotlin. Нужна как зависимость для модов, написанных на Kotlin под Forge.
Что такое Kotlin for Forge
Kotlin for Forge - это библиотека-загрузчик для Minecraft, которая позволяет разработчикам создавать моды на языке программирования Kotlin под платформу Forge. По сути - это мост между Kotlin и Forge API, без которого моды, написанные на этом языке, просто не запустятся.
Зачем нужен этот мод
Ванильный Minecraft и Forge по умолчанию работают с Java. Но многие разработчики предпочитают Kotlin за его лаконичность, null-safety и корутины. Проблема в том, что Forge ничего не знает о Kotlin - ни про его синтаксис, ни про стандартную библиотеку. Тут и появляется Kotlin for Forge.
Мод делает несколько вещей:
- Встраивает (shading) библиотеки Kotlin - стандартная библиотека Kotlin, корутины, JSON-сериализация и аннотации Jetbrains идут в комплекте. Разработчику не нужно тащить их вручную.
- Предоставляет KotlinLanguageProvider - загрузчик, который читает аннотации
@Modи регистрирует объекты мода. Аналог того, что Forge делает для Java-классов, но для Kotlin. - Поддержка AutoKotlinEventBusSubscriber - автоматическая регистрация подписчиков событий через аннотацию
@EventBusSubscriber. Удобно, не надо вручную вешать слушатели. - Собственная реализация IEventBus - начиная с версии 1.2.0, библиотека даёт свою реализацию шины событий, которая корректно работает с function references. Поддерживаются
addListenerиaddGenericListener.
Версии библиотек
Начиная с Kotlin for Forge 1.8.0, в комплекте идут:
- Kotlin 1.4.21
- Kotlin coroutines 1.4.2
- Kotlin JSON serialization 1.0.1
- Jetbrains annotations 20.1.0
Версии периодически обновляются, так что перед сборкой модпака стоит проверить актуальные требования конкретного мода.
Если вы обычный игрок
Важный нюанс - если вы не разработчик модов, Kotlin for Forge для вас - это просто зависимость. Вы не заметите никаких изменений в геймплее, новых блоков или мобов не появится. Мод просто работает в фоне и обеспечивает совместимость.
Но если в сборке модов есть хотя бы один проект, написанный на Kotlin, - без этой библиотеки игра крашнется при запуске. Forge выдаст ошибку загрузки и не сможет найти нужные классы.
Совет: при сборке модпака всегда проверяйте список зависимостей каждого мода. Некоторые авторы не указывают Kotlin for Forge в обязательных требованиях явно, хотя без него ничего не работает.
Отличия от Kottle
Раньше для Kotlin-модов под Forge использовали Kottle. Kotlin for Forge позиционируется как более современная альтернатива. Ключевое отличие - собственная реализация IEventBus, которая нормально переваривает function references вместо рефлексии. Это даёт более чистый код и меньше накладных расходов.
Использование
Разработчик может использовать только встроенные библиотеки Kotlin, игнорируя загрузчик и утилиты. Но если нужен полный цикл - автоматическая регистрация мода, событий и т.д. - лучше задействовать все возможности Kotlin for Forge.
Мод совместим с Forge для Minecraft 1.16+ и более новых версий. Для Fabric есть отдельные решения вроде Fabric Kotlin, этот мод заточен именно под Forge.
Скачайте Kotlin for Forge, если в вашей сборке модов есть проекты на Kotlin - без них игра просто не запустится.
Часто задаваемые вопросы
Совместимость
Создатели
Детали
Версии мода Kotlin for Forge
Доступно 57 версий. Сначала показаны самые популярные и самые свежие.