Kotlin · Bukkit · Spigot · Paper

PLUGIN V KOTLINE GENERÁTOR

To isté API Bukkitu, napísané v Kotline. Opíš, čo má plugin robiť, a Codexe pripraví projekt Gradle so zdrojovou sadou v Kotline, správnym súborom plugin.yml a JAR, ktorý ti vie skompilovať ešte pred stiahnutím.

Prečo generovať plugin v Kotline

Bezpečnosť voči null tam, kde ju Bukkit potrebuje

Bukkit neustále vracia null - offline hráči, chýbajúce svety, chýbajúce kľúče konfigurácie. Kotlin tieto prípady urobí explicitnými pri kompilácii, nie o 2. ráno v konzole tvojho servera.

Skutočný projekt Gradle

build.gradle.kts nastavený pre plugin Kotlin JVM a repozitáre Paper/Spigot so štandardným rozložením zdrojov. Nie jediný súbor, ktorému musíš nájsť miesto.

Oveľa menej šablónového kódu

Dátové triedy pre modely konfigurácie, rozširujúce funkcie nad Player a ItemStack a scope funkcie namiesto vnorených kontrol null. Tá istá logika v citeľne menšom množstve kódu.

Cieli aj na Folia a proxy

Ak používaš viacvláknový fork Paperu, pamätaj, že Folia odstraňuje jediné hlavné vlákno a vyžaduje plánovanie podľa regiónov - zvoľ cieľ Folia v generátore pluginov, aby bolo plánovanie správne od začiatku. Pre prácu na úrovni siete použi generátor proxy pluginov. Dokumentácia pluginov vysvetľuje rozdiely.

Príklady zadaní

> Plugin v Kotline pre Paper 1.21 s príkazom /kit, ktorý dá nastaviteľnú sadu predmetov, s cooldownom pre každého hráča uloženým v dátovej triede a konfiguráciou YAML s predvolenými hodnotami.
> Plugin v Kotline, ktorý asynchrónne zapisuje každé zničenie bloku do súboru pre každý svet a pridáva /blocklog <player> na prečítanie posledných 20 záznamov.
> Plugin v Kotline, ktorý pridáva vlastný craftingový recept pre očarovaný predmet s listenerom, ktorý zabráni jeho použitiu mimo Netheru.
> Plugin v Kotline so stránkovaným GUI so zoznamom online hráčov a teleportom po kliknutí podmieneným oprávnením.

Časté otázky o generátore pluginov v Kotline

Bežia pluginy v Kotline na bežnom serveri Spigot alebo Paper?

+

Áno. Kotlin sa kompiluje do bežného bajtkódu JVM, takže server nevie a ani ho nezaujíma, v akom jazyku je plugin napísaný. Načíta sa presne ako plugin v Jave.

Musím na server niečo inštalovať?

+

Nie. Štandardná knižnica Kotlinu je pri builde zabalená do JAR, takže plugin je samostatný. JAR je kvôli tomu väčší než ekvivalentný plugin v Jave.

Maven alebo Gradle?

+

Gradle. Cieľ Kotlin používa Gradle plugin pre Kotlin, čo je štandardný toolchain pre Kotlin na JVM. Ciele v Jave používajú Maven.

Čo mi tu Kotlin vlastne prinesie?

+

Hlavne bezpečnosť voči null a menej zbytočného balastu. API Bukkitu vracia null na množstve miest - getPlayer, getWorld, čítanie konfigurácie - a typový systém Kotlinu ťa núti ošetriť to pri kompilácii, namiesto objavenia NullPointerException v produkcii. Dátové triedy, rozširujúce funkcie a scope funkcie tiež ušetria veľa šablónového kódu v konfigurácii a listeneroch.

Môžem v jednom plugine miešať Javu a Kotlin?

+

Generátor vytvára zdrojovú sadu v Kotline. Gradle vie kompilovať zmiešané zdroje, takže súbory v Jave môžeš pridať neskôr, ale vygenerovaný projekt je primárne v Kotline.

Mám zvoliť Kotlin alebo Javu?

+

Zvoľ Javu, ak chceš maximálnu kompatibilitu s návodmi, hotovými úryvkami a kódom od iných ľudí, keďže takmer všetok materiál o Bukkite predpokladá Javu. Zvoľ Kotlin, ak ti vyhovuje a chceš stručnejší kód bezpečný voči null - API je v oboch prípadoch rovnaké.

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

Ako Codexe tieto projekty zostavuje a kontroluje, čo uviesť v zadaní a bežné problémy: príručka Spigot and Paper plugins (Java or Kotlin).

PRIPRAVENÝ NA NOVÝ PLUGIN?

Plán Free dopĺňa denne 50K tokenov, čo stačí na vydanie malého pluginu v Kotline na jeden zátah.

ZAČNI KOVAŤ
Generátor pluginov pre Minecraft v Kotline – pluginy pre Bukkit v Kotline vytvorené AI | Codexe