ПЛАГИН НА KOTLIN САЙТОВ
plugin.yml и JAR, который он может скомпилировать для вас ещё до скачивания.Зачем создавать плагин на Kotlin
Null-безопасность там, где её требует Bukkit
Bukkit постоянно возвращает null: игроки не в сети, отсутствующие миры, пропавшие ключи конфигурации. Kotlin делает эти случаи явными при компиляции, а не в два часа ночи в консоли вашего сервера.
Настоящий проект Gradle
build.gradle.kts настроен под плагин Kotlin JVM и репозитории Paper/Spigot, со стандартной структурой исходников. Не один файл, для которого вам нужно искать место.
Намного меньше шаблонного кода
Классы данных для моделей конфигурации, функции-расширения для Player и ItemStack и scope-функции вместо вложенных проверок на null. Та же логика заметно меньшим кодом.
Подходит также для Folia и прокси
Если вы используете многопоточный форк Paper, учтите, что в Folia нет единого главного потока и нужно планирование по регионам: выберите вариант Folia в генераторе плагинов, чтобы планирование было правильным с самого начала. Для задач уровня сети используйте генератор прокси-плагинов. Различия описаны в документации по плагинам.
Примеры запросов
Частые вопросы о генераторе плагинов на Kotlin
Работают ли плагины на Kotlin на обычном сервере Spigot или Paper?
+
Да. Kotlin компилируется в обычный байт-код JVM, поэтому серверу всё равно, на каком языке написан плагин. Он загружается точно так же, как плагин на Java.
Нужно ли что-то устанавливать на сервер?
+
Нет. Стандартная библиотека Kotlin включается в JAR при сборке, так что плагин самодостаточен. Из-за этого JAR получается больше, чем у такого же плагина на Java.
Maven или Gradle?
+
Gradle. Для Kotlin используется плагин Gradle для Kotlin, это стандартный набор инструментов для Kotlin на JVM. Для Java используется Maven.
Что мне даёт Kotlin здесь?
+
В основном null-безопасность и меньше церемоний. API Bukkit во многих местах возвращает null (getPlayer, getWorld, чтение конфигурации), а система типов Kotlin заставляет обработать это при компиляции, а не обнаруживать как NullPointerException на боевом сервере. Классы данных, функции-расширения и scope-функции тоже убирают много шаблонного кода из конфигурации и обработчиков.
Можно ли смешивать Java и Kotlin в одном плагине?
+
Генератор создаёт набор исходников Kotlin. Gradle умеет компилировать смешанные исходники, так что Java-файлы можно добавить потом, но созданный проект в первую очередь на Kotlin.
Что выбрать: Kotlin или Java?
+
Выбирайте Java, если нужна максимальная совместимость с руководствами, готовыми фрагментами и чужим кодом, ведь почти все материалы по Bukkit рассчитаны на Java. Выбирайте Kotlin, если вам он удобен и нужен более лаконичный null-безопасный код: набор API одинаковый.
Другие генераторы Codexe
Prefer Java, or working somewhere else in the stack? Codexe also generates:
Как Codexe создаёт и проверяет такие проекты, что указывать в запросе и частые проблемы: руководство: Spigot and Paper plugins (Java or Kotlin).
ГОТОВЫ К НОВОМУ ПЛАГИНУ?
Бесплатный тариф каждый день пополняется на 50K токенов, этого хватает, чтобы за один заход выпустить небольшой плагин на Kotlin.
ПРИСТУПИТЬ К СОЗДАНИЮ