Kotlin · Bukkit · Spigot · Paper

PLUGIN KOTLIN ΙΣΤΟΤΟΠΩΝ AI

Το ίδιο Bukkit API, γραμμένο σε Kotlin. Περίγραψε τι πρέπει να κάνει το plugin και το Codexe στήνει ένα project Gradle με Kotlin sources, σωστό plugin.yml και ένα JAR που μπορεί να κάνει compile για σένα πριν το κατεβάσεις.

Γιατί να φτιάξεις plugin σε Kotlin

Ασφάλεια απέναντι στα null εκεί που τη χρειάζεται το Bukkit

Το Bukkit επιστρέφει null συνέχεια: παίκτες offline, κόσμοι που λείπουν, κλειδιά που δεν υπάρχουν στο config. Η Kotlin κάνει αυτές τις περιπτώσεις ξεκάθαρες κατά το compile, αντί για τις 2 τα ξημερώματα στην κονσόλα του server σου.

Ένα πραγματικό project Gradle

build.gradle.kts ρυθμισμένο για το Kotlin JVM plugin και τα repositories του Paper/Spigot, με την standard δομή πηγών. Όχι ένα μεμονωμένο αρχείο που πρέπει να βρεις πού να το βάλεις.

Πολύ λιγότερο boilerplate

Data classes για τα μοντέλα του config, extension functions σε Player και ItemStack και scope functions αντί για εμφωλευμένους ελέγχους null. Η ίδια λογική σε αισθητά λιγότερο κώδικα.

Υποστηρίζει επίσης Folia και proxies

Αν είσαι στο multithreaded fork του Paper, να ξέρεις ότι το Folia καταργεί το ένα κύριο thread και χρειάζεται scheduling ανά περιοχή: διάλεξε τον τύπο Folia στη γεννήτρια plugins ώστε το scheduling να είναι σωστό από την αρχή. Για δουλειά σε επίπεδο network χρησιμοποίησε τη γεννήτρια proxy plugins. Η τεκμηρίωση των plugins εξηγεί τις διαφορές.

Παραδείγματα prompt

> Ένα plugin Kotlin για Paper 1.21 με εντολή /kit που δίνει ένα ρυθμιζόμενο σετ αντικειμένων, cooldown ανά παίκτη αποθηκευμένο σε data class και config YAML με προεπιλεγμένες τιμές.
> Ένα plugin Kotlin που καταγράφει ασύγχρονα κάθε σπάσιμο block σε αρχείο ανά κόσμο και προσθέτει το /blocklog <player> για να διαβάζεις τις τελευταίες 20 εγγραφές.
> Ένα plugin Kotlin που προσθέτει μια προσαρμοσμένη συνταγή crafting για ένα μαγεμένο αντικείμενο, με listener που εμποδίζει τη χρήση του έξω από το Nether.
> Ένα plugin Kotlin με GUI σε σελίδες που δείχνει τους παίκτες online, με τηλεμεταφορά με κλικ που προστατεύεται από permission node.

Συχνές ερωτήσεις για τη γεννήτρια plugins Kotlin

Τρέχουν τα plugins Kotlin σε κανονικό server Spigot ή Paper;

+

Ναι. Η Kotlin μεταγλωττίζεται σε κανονικό bytecode JVM, οπότε ο server ούτε ξέρει ούτε τον νοιάζει σε ποια γλώσσα γράφτηκε το plugin. Φορτώνει ακριβώς όπως ένα plugin Java.

Πρέπει να εγκαταστήσω κάτι στον server;

+

Όχι. Η standard library της Kotlin ενσωματώνεται στο JAR κατά το build, οπότε το plugin είναι αυτόνομο. Γι' αυτό το JAR βγαίνει μεγαλύτερο από ένα αντίστοιχο plugin Java.

Maven ή Gradle;

+

Gradle. Ο τύπος project Kotlin χρησιμοποιεί το Gradle Kotlin plugin, το standard toolchain για Kotlin στη JVM. Οι τύποι project Java χρησιμοποιούν Maven.

Τι κερδίζω στην πράξη με την Kotlin;

+

Κυρίως ασφάλεια απέναντι στα null και λιγότερο περιττό κώδικα. Τα API του Bukkit επιστρέφουν null σε πολλά σημεία (getPlayer, getWorld, αναζητήσεις στο config) και το σύστημα τύπων της Kotlin σε αναγκάζει να το χειριστείς κατά το compile αντί να το ανακαλύψεις ως NullPointerException στην παραγωγή. Οι data classes, οι extension functions και οι scope functions κόβουν επίσης πολύ boilerplate από τον κώδικα config και listeners.

Μπορώ να συνδυάσω Java και Kotlin σε ένα plugin;

+

Η γεννήτρια παράγει Kotlin sources. Το Gradle μπορεί να κάνει compile μικτές πηγές, οπότε μπορείς να προσθέσεις αρχεία Java αργότερα, αλλά το project που δημιουργείται είναι πρώτα απ' όλα Kotlin.

Kotlin ή Java;

+

Διάλεξε Java αν θέλεις τη μέγιστη συμβατότητα με tutorials, έτοιμα κομμάτια κώδικα και κώδικα άλλων, αφού σχεδόν όλο το υλικό για το Bukkit θεωρεί δεδομένη τη Java. Διάλεξε Kotlin αν την ξέρεις και θέλεις πιο σύντομο κώδικα, ασφαλή απέναντι στα null: το API είναι ακριβώς το ίδιο και στις δύο περιπτώσεις.

Προτιμάς Java ή δουλεύεις αλλού στο stack; Το Codexe δημιουργεί επίσης:

Πώς το Codexe φτιάχνει και ελέγχει αυτά τα projects, τι να γράψεις στο αίτημα και τα συνηθισμένα προβλήματα: οδηγός Spigot and Paper plugins (Java or Kotlin).

ΕΤΟΙΜΟΣ ΓΙΑ ΝΕΟ PLUGIN;

Το δωρεάν πλάνο ανανεώνει 50K tokens κάθε μέρα, αρκετά για να βγάλεις ένα μικρό plugin Kotlin με τη μία.

ΞΕΚΙΝΑ ΝΑ ΣΦΥΡΗΛΑΤΕΙΣ
Γεννήτρια plugins Minecraft σε Kotlin με AI | Codexe