Kotlin · Bukkit · Spigot · Paper

PLUGIN W KOTLINIE STRON

To samo API Bukkit, napisane w Kotlinie. Opisz, co plugin ma robić, a Codexe przygotuje projekt Gradle z zestawem źródeł Kotlin, poprawnym plikiem 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

> Plugin w Kotlinie na Paper 1.21 z komendą /kit, która daje konfigurowalny zestaw przedmiotów, czasem odnowienia dla każdego gracza przechowywanym w klasie danych i konfiguracją YAML z wartościami domyślnymi.
> Plugin w Kotlinie, który asynchronicznie zapisuje każde zniszczenie bloku do pliku dla danego świata i dodaje /blocklog <player>, żeby odczytać ostatnie 20 wpisów.
> Plugin w Kotlinie dodający własną recepturę craftingu zaklętego przedmiotu, z listenerem, który blokuje jego użycie poza Netherem.
> Plugin w Kotlinie z GUI ze stronicowaniem, które listuje graczy online, a teleport po kliknięciu jest zablokowany uprawnieniem.

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.

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Ć
Generator pluginów Minecraft w Kotlinie – pluginy Bukkit w Kotlinie tworzone przez AI | Codexe