PLUGIN V KOTLINU GENERÁTOR
plugin.yml a JARem, který ti může před stažením zkompilovat.Proč generovat plugin v Kotlinu
Null safety tam, kde ji Bukkit potřebuje
Bukkit neustále vrací null - offline hráči, chybějící světy, chybějící klíče konfigurace. Kotlin tyto případy činí explicitními při kompilaci, ne ve 2 ráno v konzoli tvého serveru.
Skutečný projekt Gradle
build.gradle.kts nastavený pro plugin Kotlin JVM a repozitáře Paper/Spigot, se standardním rozložením zdrojů. Ani jeden soubor, pro který bys musel/a hledat místo.
Mnohem méně boilerplate
Data classes pro modely konfigurace, extension funkce nad Player a ItemStack a scope funkce místo vnořených kontrol null. Stejná logika s výrazně menším množstvím kódu.
Cílí také na Folia a proxy
Pokud používáš vícevláknový fork Paperu, pamatuj, že Folia odstraňuje jediné hlavní vlákno a potřebuje plánování podle regionů - vyber cíl Folia v generátoru pluginů, aby bylo plánování správné od začátku. Pro práci na úrovni sítě použij generátor proxy pluginů. Rozdíly vysvětluje dokumentace pluginů.
Příklady zadání
Časté dotazy ke generátoru pluginů v Kotlinu
Běží pluginy v Kotlinu na normálním serveru Spigot nebo Paper?
+
Ano. Kotlin se kompiluje do obyčejného bytekódu JVM, takže server neví ani ho nezajímá, v jakém jazyce byl plugin napsán. Načítá se úplně stejně jako plugin v Javě.
Musím na server něco instalovat?
+
Ne. Standardní knihovna Kotlinu se při buildu přibalí (shade) do JARu, takže je plugin samostatný. JAR je kvůli tomu větší než ekvivalentní plugin v Javě.
Maven, nebo Gradle?
+
Gradle. Cíl v Kotlinu používá plugin Gradle pro Kotlin, což je standardní toolchain pro Kotlin na JVM. Cíle v Javě používají Maven.
Co mi tady Kotlin vlastně přináší?
+
Hlavně null safety a méně rituálů. API Bukkitu na mnoha místech vrací null - getPlayer, getWorld, hledání v konfiguraci - a typový systém Kotlinu tě donutí to ošetřit už při kompilaci, místo abys to objevil/a jako NullPointerException v produkci. Data classes, extension funkce a scope funkce také ukrajují hodně boilerplate z kódu konfigurace a listenerů.
Můžu v jednom pluginu míchat Javu a Kotlin?
+
Generátor vytváří zdrojový set v Kotlinu. Gradle umí kompilovat smíšené zdroje, takže můžeš později přidat soubory v Javě, ale vygenerovaný projekt je především v Kotlinu.
Mám zvolit Kotlin, nebo Javu?
+
Zvol Javu, pokud chceš maximální kompatibilitu s návody, existujícími ukázkami a cizím kódem, protože téměř všechny materiály k Bukkitu počítají s Javou. Zvol Kotlin, pokud ho ovládáš a chceš stručnější, null-safe kód - API je v obou případech totéž.
Další generátory Codexe
Prefer Java, or working somewhere else in the stack? Codexe also generates:
Jak Codexe tyto projekty vytváří a kontroluje, co napsat do zadání a běžné potíže: návod Spigot and Paper plugins (Java or Kotlin).
PŘIPRAVEN NA NOVÝ PLUGIN?
Tarif Free každý den doplní 50K tokenů, což stačí na dodání malého pluginu v Kotlinu najednou.
ZAČNI KOVAT