Kotlin · Bukkit · Spigot · Paper

KOTLIN ПЛЪГИН НА УЕБСАЙТОВЕ

Същото Bukkit API, написано на Kotlin. Опиши какво трябва да прави плъгинът и Codexe създава Gradle проект с Kotlin source set, правилен plugin.yml и JAR, който може да компилира за теб, преди да го изтеглиш.

Защо да генерираш Kotlin плъгин

Null безопасност там, където Bukkit има нужда

Bukkit постоянно връща null - офлайн играчи, липсващи светове, липсващи ключове в config. Kotlin прави тези случаи явни още при компилация, вместо в 2 през нощта в конзолата на сървъра ти.

Истински Gradle проект

build.gradle.kts е настроен за Kotlin JVM плъгина и хранилищата на Paper/Spigot, със стандартната структура на изходния код. Не е един-единствен файл, за който трябва да търсиш място.

Много по-малко boilerplate

Data класове за моделите на config, extension функции върху Player и ItemStack и scope функции вместо вложени проверки за null. Същата логика с осезаемо по-малко код.

Поддържа също Folia и проксита

Ако си на многонишковия fork на Paper, имай предвид, че Folia премахва единствената главна нишка и изисква планиране по региони - избери целта Folia в генератора на плъгини, за да е правилно планирането от самото начало. За работа на ниво мрежа използвай генератора на прокси плъгини. Документацията за плъгини обяснява разликите.

Примерни заявки

> Kotlin плъгин за Paper 1.21 с команда /kit, която дава настройваем комплект предмети, cooldown за всеки играч, пазен в data клас, и YAML config със стойности по подразбиране.
> Kotlin плъгин, който асинхронно записва всяко чупене на блок във файл за всеки свят и добавя /blocklog <player> за преглед на последните 20 записа.
> Kotlin плъгин, който добавя собствена рецепта за изработка на омагьосан предмет, с listener, който не позволява използването му извън Nether.
> Kotlin плъгин с GUI на страници, което показва онлайн играчите, с телепорт с клик, достъпен само с permission node.

Често задавани въпроси за генератора на Kotlin плъгини

Работят ли Kotlin плъгините на обикновен Spigot или Paper сървър?

+

Да. Kotlin се компилира до обикновен JVM байткод, така че сървърът нито знае, нито се интересува на какъв език е написан плъгинът. Зарежда се точно като Java плъгин.

Трябва ли да инсталирам нещо на сървъра?

+

Не. Стандартната библиотека на Kotlin се вгражда (shading) в JAR файла при компилация, така че плъгинът е самостоятелен. Затова JAR файлът е по-голям от еквивалентен Java плъгин.

Maven или Gradle?

+

Gradle. Целта Kotlin използва Gradle Kotlin плъгина, който е стандартният инструментариум за Kotlin на JVM. Java целите използват Maven.

Какво всъщност ми дава Kotlin тук?

+

Основно null безопасност и по-малко церемонии. Bukkit API-тата връщат null на много места - getPlayer, getWorld, четене от config - и типовата система на Kotlin те принуждава да се справиш с това още при компилация, вместо да го откриеш като NullPointerException в продукция. Data класовете, extension функциите и scope функциите също махат много boilerplate от кода за config и listener-и.

Мога ли да смесвам Java и Kotlin в един плъгин?

+

Генераторът създава Kotlin source set. Gradle може да компилира смесени изходни файлове, така че можеш да добавиш Java файлове по-късно, но генерираният проект е ориентиран към Kotlin.

Kotlin или Java да избера?

+

Избери Java, ако искаш максимална съвместимост с уроци, готови фрагменти и чужд код, защото почти всички материали за Bukkit приемат, че ползваш Java. Избери Kotlin, ако се чувстваш удобно с него и искаш по-кратък, null-safe код - API-то е едно и също и в двата случая.

Предпочиташ Java или работиш в друга част от стека? Codexe генерира също:

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

ГОТОВ ЛИ СИ ЗА НОВ ПЛЪГИН?

Планът Free се презарежда с 50K токена всеки ден, достатъчно, за да издадеш малък Kotlin плъгин наведнъж.

ЗАПОЧНИ ДА КОВЕШ
Генератор на Minecraft плъгини на Kotlin с AI | Codexe