Kotlin · Bukkit · Spigot · Paper

KOTLIN-PLUGIN GENERATOR

Samma Bukkit-API, skrivet i Kotlin. Beskriv vad pluginet ska göra så sätter Codexe upp ett Gradle-projekt med en Kotlin-källkodsmapp, en korrekt plugin.yml och en JAR som kan kompileras åt dig innan du laddar ner den.

Varför generera ett Kotlin-plugin

Null-säkerhet där Bukkit behöver det

Bukkit ger ständigt tillbaka null - offlinespelare, saknade världar, frånvarande konfigurationsnycklar. Kotlin gör de fallen explicita vid kompilering i stället för klockan 02 i din serverkonsol.

Ett riktigt Gradle-projekt

build.gradle.kts är inställd för Kotlin JVM-pluginet och Paper/Spigot-repositorierna, med standardlayouten för källkod. Inte en enda fil som du måste hitta ett hem åt.

Mycket mindre boilerplate

Dataklasser för konfigurationsmodeller, extensionfunktioner på Player och ItemStack och scope-funktioner i stället för nästlade null-kontroller. Samma logik med märkbart mindre kod.

Siktar också på Folia och proxyer

Om du kör Papers flertrådade fork, notera att Folia tar bort den enda huvudtråden och kräver regionmedveten schemaläggning - välj Folia-målet i plugingeneratorn så blir schemaläggningen rätt från början. För arbete på nätverksnivå, använd proxyplugingeneratorn. Plugindokumentationen förklarar skillnaderna.

Exempelprompter

> Ett Kotlin-plugin för Paper 1.21 med ett /kit-kommando som ger en konfigurerbar uppsättning föremål, en nedkylningstid per spelare lagrad i en dataklass och YAML-konfiguration med standardvärden.
> Ett Kotlin-plugin som loggar varje blockbrytning till en fil per värld asynkront och lägger till /blocklog <player> för att läsa tillbaka de senaste 20 posterna.
> Ett Kotlin-plugin som lägger till ett eget tillverkningsrecept för ett förtrollat föremål, med en lyssnare som hindrar det från att användas utanför Nether.
> Ett Kotlin-plugin med ett GUI med sidindelning som listar spelare online, klicka-för-att-teleportera låst bakom en behörighetsnod.

Vanliga frågor om Kotlin-plugingeneratorn

Fungerar Kotlin-plugin på en vanlig Spigot- eller Paper-server?

+

Ja. Kotlin kompileras till vanlig JVM-bytekod, så servern varken vet eller bryr sig om vilket språk pluginet är skrivet i. Det laddas precis som ett Java-plugin.

Behöver jag installera något på servern?

+

Nej. Kotlins standardbibliotek paketeras (shade) in i JAR-filen vid bygget, så pluginet är fristående. Det gör förstås JAR-filen större än ett motsvarande Java-plugin.

Maven eller Gradle?

+

Gradle. Kotlin-målet använder Gradles Kotlin-plugin, som är standardverktygskedjan för Kotlin på JVM. Java-målen använder Maven.

Vad får jag egentligen ut av Kotlin här?

+

Främst null-säkerhet och mindre ceremoni. Bukkit-API:er returnerar null på många ställen - getPlayer, getWorld, konfigurationsuppslag - och Kotlins typsystem tvingar dig att hantera det vid kompilering i stället för att upptäcka det som ett NullPointerException i produktion. Dataklasser, extensionfunktioner och scope-funktioner tar också bort mycket boilerplate ur konfigurations- och lyssnarkod.

Kan jag blanda Java och Kotlin i samma plugin?

+

Generatorn skapar en Kotlin-källkodsmapp. Gradle kan kompilera blandad källkod, så du kan lägga till Java-filer efteråt, men det genererade projektet är Kotlin först.

Ska jag välja Kotlin eller Java?

+

Välj Java om du vill ha maximal kompatibilitet med handledningar, befintliga kodavsnitt och andras kod, eftersom nästan allt Bukkit-material utgår från Java. Välj Kotlin om du är bekväm med det och vill ha kortare, null-säker kod - API:et är detsamma i båda fallen.

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

Hur Codexe bygger och kontrollerar de här projekten, vad du ska skriva i begäran och vanliga problem: guiden Spigot and Paper plugins (Java or Kotlin).

REDO FÖR ETT NYTT PLUGIN?

Gratisnivån fylls på med 50K tokens varje dag, tillräckligt för att leverera ett litet Kotlin-plugin på en gång.

BÖRJA SMIDA
Kotlin-plugingenerator för Minecraft - AI-byggda Bukkit-plugin i Kotlin | Codexe