Kotlin · Bukkit · Spigot · Paper

KOTLIN-PLUGIN GENERÁTOR

Ugyanaz a Bukkit API, Kotlinban írva. Írd le, mit csináljon a plugin, és a Codexe felépít egy Gradle projektet Kotlin forráskészlettel, helyes plugin.yml-lel és egy JAR-ral, amelyet a letöltés előtt le is fordíthat neked.

Miért érdemes Kotlin-plugint generálni

Null-biztonság ott, ahol a Bukkitnak kell

A Bukkit folyamatosan null-t ad vissza - offline játékosok, hiányzó világok, nem létező konfigurációs kulcsok. A Kotlin ezeket az eseteket fordításkor teszi explicitté, nem hajnali 2-kor a szerverkonzolodban.

Valódi Gradle projekt

A build.gradle.kts be van kötve a Kotlin JVM pluginhoz és a Paper/Spigot repókhoz, szabványos forrásszerkezettel. Nem egyetlen fájl, amelynek helyet kell keresned.

Sokkal kevesebb sablonkód

Adatosztályok a konfigurációs modellekhez, kiterjesztő függvények a Player és ItemStack osztályokon, scope függvények a beágyazott null-ellenőrzések helyett. Ugyanaz a logika érezhetően kevesebb kóddal.

Folia-t és proxykat is célozza

Ha a Paper többszálú forkján vagy, vedd figyelembe, hogy a Folia megszünteti az egyetlen fő szálat, és régiótudatos ütemezést igényel - válaszd a Folia célpontot a plugin generátoron, hogy az ütemezés elejétől helyes legyen. Hálózati szintű munkához használd a proxyplugin-generátort. A plugin dokumentáció elmagyarázza a különbségeket.

Példa promptok

> Egy Kotlin-plugin Paper 1.21-re egy /kit paranccsal, amely konfigurálható tárgykészletet ad, játékosonkénti várakozási idővel egy adatosztályban tárolva, és YAML-konfigurációval alapértékekkel.
> Egy Kotlin-plugin, amely minden blokktörést aszinkron módon világonkénti fájlba naplóz, és hozzáad egy /blocklog <player> parancsot az utolsó 20 bejegyzés visszaolvasásához.
> Egy Kotlin-plugin, amely egyéni barkácsreceptet ad egy elvarázsolt tárgyhoz, és egy listenerrel megakadályozza, hogy a Nether-en kívül használják.
> Egy Kotlin-plugin lapozható GUI-val, amely felsorolja az online játékosokat, kattintásra teleportálással, jogosultsági csomóponthoz kötve.

Kotlin-plugin generátor GYIK

Futnak a Kotlin-pluginok egy normál Spigot vagy Paper szerveren?

+

Igen. A Kotlin sima JVM-bájtkódra fordul, így a szerver nem tudja és nem is érdekli, milyen nyelven írták a plugint. Pontosan úgy töltődik be, mint egy Java-plugin.

Kell valamit telepítenem a szerverre?

+

Nem. A Kotlin standard könyvtár buildkor bekerül a JAR-ba (shade), így a plugin önálló. Ettől a JAR nagyobb lesz, mint egy hasonló Java-pluginé.

Maven vagy Gradle?

+

Gradle. A Kotlin célpont a Gradle Kotlin pluginját használja, ami a JVM-es Kotlin szabványos eszközlánca. A Java célpontok Mavent használnak.

Mit nyerek valójában a Kotlinnal?

+

Főleg null-biztonságot és kevesebb szertartást. A Bukkit API sok helyen null-t ad vissza - getPlayer, getWorld, konfigurációs lekérdezések -, és a Kotlin típusrendszere arra kényszerít, hogy ezt fordításkor kezeld, ne NullPointerExceptionként fedezd fel élesben. Az adatosztályok, a kiterjesztő függvények és a scope függvények is rengeteg sablonkódot spórolnak meg a konfigurációs és listener-kódból.

Keverhetem a Javát és a Kotlint egy pluginban?

+

A generátor Kotlin forráskészletet állít elő. A Gradle tud vegyes forrásokat fordítani, így utólag hozzáadhatsz Java-fájlokat, de a generált projekt Kotlin-központú.

Kotlint vagy Javát válasszak?

+

Válaszd a Javát, ha maximális kompatibilitást szeretnél a bemutatókkal, a meglévő kódrészletekkel és mások kódjával, mivel szinte minden Bukkit-anyag Javát feltételez. Válaszd a Kotlint, ha jól érzed magad vele, és tömörebb, null-biztos kódot szeretnél - az API-felület mindkét esetben azonos.

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

Hogyan építi és ellenőrzi a Codexe ezeket a projekteket, mit írj a kérésbe, és gyakori problémák: Spigot and Paper plugins (Java or Kotlin) útmutató.

KÉSZEN ÁLLSZ EGY ÚJ PLUGINRA?

Az ingyenes csomag naponta 50K tokennel töltődik újra, ami egy kis Kotlin-plugin kiadásához elég egy menetben.

KEZDJ KOVÁCSOLNI
Kotlin Minecraft-plugin generátor – AI-val készített Bukkit-pluginok Kotlinban | Codexe