Kotlin · Bukkit · Spigot · Paper

ПЛАГИН НА KOTLIN САЙТОВ

Тот же API Bukkit, но на Kotlin. Опишите, что должен делать плагин, и Codexe подготовит проект Gradle с набором исходников 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 для Paper 1.21 с командой /kit, выдающей настраиваемый набор предметов, перезарядкой для каждого игрока в классе данных и конфигурацией YAML со значениями по умолчанию.
> Плагин на Kotlin, который асинхронно записывает каждое разрушение блока в файл своего мира и добавляет /blocklog <player> для чтения последних 20 записей.
> Плагин на Kotlin, добавляющий рецепт крафта для зачарованного предмета и обработчик, не дающий использовать его вне Незера.
> Плагин на Kotlin с постраничным меню со списком игроков онлайн и телепортацией по клику, закрытой правом доступа.

Частые вопросы о генераторе плагинов на 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 одинаковый.

Prefer Java, or working somewhere else in the stack? Codexe also generates:

Как Codexe создаёт и проверяет такие проекты, что указывать в запросе и частые проблемы: руководство: Spigot and Paper plugins (Java or Kotlin).

ГОТОВЫ К НОВОМУ ПЛАГИНУ?

Бесплатный тариф каждый день пополняется на 50K токенов, этого хватает, чтобы за один заход выпустить небольшой плагин на Kotlin.

ПРИСТУПИТЬ К СОЗДАНИЮ
Генератор плагинов Minecraft на Kotlin: плагины Bukkit на Kotlin с помощью AI | Codexe