Kotlin в экосистеме Forge
Kotlin for Forge позволяет разработчикам создавать моды на Kotlin и предоставляет среду, необходимую для их запуска. Проект включает библиотеки языка, языковой загрузчик и набор необязательных вспомогательных средств.
Игрок обычно встречает его в списке обязательных зависимостей. Сам файл не добавляет блоки, предметы или измерения, но мод, скомпилированный с его компонентами, без подходящей версии не загрузится.
Основные компоненты
- Встроенные Kotlin-библиотеки предоставляют стандартную среду языка зависимым проектам.
- KotlinLanguageProvider помогает загружать объявления object, отмеченные как мод.
- AutoKotlinEventBusSubscriber обслуживает автоматическую регистрацию подписчиков событий.
- Утилиты и константы сокращают повторяющийся код при разработке.
- Клиентская и серверная работа позволяет использовать зависимость в разных типах проектов.
Разработчику не обязательно подключать все возможности. Kotlin for Forge можно применять только ради поставляемых библиотек Kotlin, не используя языковой загрузчик или дополнительные утилиты.
Что важно игроку
Версия зависимости должна соответствовать Minecraft, загрузчику и требованиям конкретного мода. Нельзя заменять Forge-файл вариантом для другой платформы или считать любой новый релиз автоматически совместимым со старой сборкой.
Разные поколения включают разные версии Kotlin и связанных библиотек, например coroutines и serialization. Поэтому безопаснее следовать странице зависимостей модпака, а не обновлять этот компонент отдельно.
Сравнение с Fabric Language Kotlin
Fabric Language Kotlin тоже даёт модам возможность использовать Kotlin, но предназначен для Fabric Loader. Он является технической зависимостью и не добавляет самостоятельного игрового контента.
Kotlin for Forge выполняет аналогичную роль в среде Forge и NeoForge. Эти проекты решают сходную языковую задачу, но относятся к разным загрузчикам и не могут подменять друг друга.
Для сборок и серверов
Если ошибка запуска указывает на отсутствующий Kotlin for Forge, нужно поставить требуемую версию на те стороны, которые указаны зависимым модом. Проект помечен как клиентский и серверный, поэтому в общей сборке он может потребоваться обоим окружениям.
При диагностике полезно сверить версии Minecraft, Forge или NeoForge, самой библиотеки и мода-потребителя. Такой согласованный набор предотвращает конфликты классов и несовместимость языковой среды.