PLUGIN W KOTLINIE STRON
plugin.yml i JAR-em, który może skompilować, zanim go pobierzesz.Dlaczego warto wygenerować plugin w Kotlinie
Bezpieczeństwo względem null tam, gdzie Bukkit tego potrzebuje
Bukkit ciągle zwraca null - gracze offline, brakujące światy, nieobecne klucze konfiguracji. Kotlin czyni te przypadki jawnymi w czasie kompilacji, a nie o 2 w nocy w konsoli twojego serwera.
Prawdziwy projekt Gradle
build.gradle.kts skonfigurowany pod wtyczkę Kotlin JVM i repozytoria Paper/Spigot, ze standardowym układem źródeł. Nie jeden plik, któremu musisz szukać domu.
Znacznie mniej powtarzalnego kodu
Klasy danych dla modeli konfiguracji, funkcje rozszerzające dla Player i ItemStack oraz funkcje zakresu zamiast zagnieżdżonych sprawdzeń null. Ta sama logika w wyraźnie mniejszej ilości kodu.
Obsługuje też Folię i proxy
Jeśli używasz wielowątkowego forka Papera, pamiętaj, że Folia usuwa pojedynczy główny wątek i wymaga harmonogramowania uwzględniającego regiony - wybierz cel Folia w generatorze pluginów, żeby harmonogramowanie było poprawne od początku. Do pracy na poziomie sieci użyj generatora pluginów proxy. Różnice opisuje dokumentacja pluginów.
Przykładowe prompty
FAQ o generatorze pluginów w Kotlinie
Czy pluginy w Kotlinie działają na zwykłym serwerze Spigot lub Paper?
+
Tak. Kotlin kompiluje się do zwykłego bajtkodu JVM, więc serwer nie wie i nie dba, w jakim języku napisano plugin. Ładuje się dokładnie jak plugin w Javie.
Czy muszę coś instalować na serwerze?
+
Nie. Standardowa biblioteka Kotlina jest wkompilowana (shade) do JAR-a podczas budowania, więc plugin jest samodzielny. Przez to JAR jest większy niż odpowiadający mu plugin w Javie.
Maven czy Gradle?
+
Gradle. Cel Kotlin używa wtyczki Gradle Kotlin, czyli standardowego zestawu narzędzi dla Kotlina na JVM. Cele w Javie używają Mavena.
Co właściwie daje mi tu Kotlin?
+
Głównie bezpieczeństwo względem null i mniej ceremonii. API Bukkit w wielu miejscach zwraca null - getPlayer, getWorld, odczyt konfiguracji - a system typów Kotlina zmusza cię do obsłużenia tego w czasie kompilacji, zamiast odkrywać to jako NullPointerException na produkcji. Klasy danych, funkcje rozszerzające i funkcje zakresu wycinają też dużo powtarzalnego kodu z konfiguracji i listenerów.
Czy mogę mieszać Javę i Kotlin w jednym pluginie?
+
Generator tworzy zestaw źródeł Kotlin. Gradle potrafi kompilować mieszane źródła, więc możesz później dodać pliki Javy, ale wygenerowany projekt jest przede wszystkim w Kotlinie.
Wybrać Kotlin czy Javę?
+
Wybierz Javę, jeśli chcesz maksymalnej zgodności z poradnikami, gotowymi fragmentami i cudzym kodem, bo prawie wszystkie materiały o Bukkit zakładają Javę. Wybierz Kotlin, jeśli dobrze się w nim czujesz i chcesz zwięźlejszego kodu bezpiecznego względem null - powierzchnia API jest w obu przypadkach taka sama.
Inne generatory Codexe
Prefer Java, or working somewhere else in the stack? Codexe also generates:
Jak Codexe buduje i sprawdza te projekty, co wpisać w prośbie i jakie są częste problemy: poradnik: Spigot and Paper plugins (Java or Kotlin).
GOTOWY NA NOWY PLUGIN?
Plan Free co dzień odnawia 50K tokenów, wystarczy, żeby za jednym razem wypuścić mały plugin w Kotlinie.
ZACZNIJ TWORZYĆ