PLUGIN V KOTLINE GENERÁTOR
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í
Č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é.
Ďalšie generátory Codexe
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Ť