Kotlin · Bukkit · Spigot · Paper

KOTLIN PLUGIN OLUŞTURUCU

Aynı Bukkit API'si, Kotlin ile yazılmış. Plugin'in ne yapması gerektiğini anlat, Codexe Kotlin kaynak kümesi, doğru bir plugin.yml ve sen indirmeden önce derleyebileceği bir JAR ile Gradle projesi hazırlasın.

Neden Kotlin plugin'i oluşturmalısın

Bukkit'in ihtiyaç duyduğu yerde null güvenliği

Bukkit sürekli null döndürür: çevrimdışı oyuncular, eksik dünyalar, olmayan yapılandırma anahtarları. Kotlin bu durumları sunucu konsolunda gece 2'de değil, derleme zamanında açık hale getirir.

Gerçek bir Gradle projesi

Kotlin JVM plugin'ine ve Paper/Spigot depolarına bağlanmış build.gradle.kts, standart kaynak düzeniyle. Yuva bulman gereken tek bir dosya değil.

Çok daha az ortak kod

Yapılandırma modelleri için veri sınıfları, Player ve ItemStack üzerinde uzantı fonksiyonları ve iç içe null denetimleri yerine kapsam fonksiyonları. Aynı mantık gözle görülür şekilde daha az kodla.

Folia ve proxy'leri de hedefler

Paper'ın çok iş parçacıklı çatalındaysan, Folia'nın tek ana iş parçacığını kaldırdığını ve bölge duyarlı zamanlama gerektirdiğini unutma. Zamanlama baştan doğru olsun diye plugin oluşturucuda Folia hedefini seç. Ağ düzeyindeki işler için proxy plugin oluşturucuyu kullan. Farkları plugin dokümanları anlatır.

Örnek prompt'lar

> Yapılandırılabilir bir eşya seti veren bir /kit komutu, veri sınıfında saklanan oyuncu başına bekleme süresi ve varsayılanlı YAML yapılandırması olan Paper 1.21 için bir Kotlin plugin'i.
> Her blok kırmayı dünya başına bir dosyaya eşzamansız kaydeden ve son 20 girdiyi geri okumak için /blocklog <player> ekleyen bir Kotlin plugin'i.
> Büyülü bir eşya için özel bir crafting tarifi ekleyen ve Nether dışında kullanılmasını engelleyen bir dinleyiciye sahip bir Kotlin plugin'i.
> Çevrimiçi oyuncuları listeleyen, sayfalı bir GUI'ye sahip ve tıklayarak ışınlanmayı bir izin düğümüne bağlayan bir Kotlin plugin'i.

Kotlin plugin oluşturucu SSS

Kotlin plugin'leri normal bir Spigot veya Paper sunucusunda çalışır mı?

+

Evet. Kotlin sıradan JVM bytecode'una derlenir, bu yüzden sunucu plugin'in hangi dilde yazıldığını bilmez ve umursamaz. Tıpkı bir Java plugin'i gibi yüklenir.

Sunucuya bir şey kurmam gerekiyor mu?

+

Hayır. Kotlin standart kütüphanesi derleme sırasında JAR'a gömülür, bu yüzden plugin kendi başına yeter. Bu, JAR'ı eşdeğer bir Java plugin'inden daha büyük yapar.

Maven mı, Gradle mı?

+

Gradle. Kotlin hedefi, JVM'de Kotlin için standart araç zinciri olan Gradle Kotlin plugin'ini kullanır. Java hedefleri Maven kullanır.

Burada Kotlin bana gerçekte ne kazandırıyor?

+

Çoğunlukla null güvenliği ve daha az tören. Bukkit API'leri birçok yerde null döndürür (getPlayer, getWorld, yapılandırma aramaları) ve Kotlin'in tip sistemi bunu üretimde NullPointerException olarak keşfetmek yerine derleme zamanında ele almanı zorunlu kılar. Veri sınıfları, uzantı fonksiyonları ve kapsam fonksiyonları da yapılandırma ve dinleyici kodundan epey ortak kod eler.

Tek bir plugin'de Java ve Kotlin'i karıştırabilir miyim?

+

Oluşturucu bir Kotlin kaynak kümesi üretir. Gradle karışık kaynakları derleyebilir, bu yüzden sonradan Java dosyaları ekleyebilirsin, ama üretilen proje önce Kotlin'dir.

Kotlin mi Java mı seçmeliyim?

+

Öğreticiler, mevcut kod parçaları ve başkalarının kodlarıyla azami uyumluluk istiyorsan Java'yı seç; çünkü neredeyse tüm Bukkit içeriği Java varsayar. Kotlin'e hâkimsen ve daha özlü, null güvenli kod istiyorsan Kotlin'i seç. API yüzeyi her iki durumda da aynı.

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

Codexe bu projeleri nasıl oluşturur ve kontrol eder, istekte neler yazılmalı ve yaygın sorunlar: Spigot and Paper plugins (Java or Kotlin) rehberi.

YENİ BİR PLUGIN'E HAZIR MISIN?

Free plan her gün 50K token yeniler; küçük bir Kotlin plugin'ini tek seferde yayına çıkarmaya yeter.

ÜRETMEYE BAŞLA
Kotlin Minecraft Plugin Oluşturucu – yapay zekayla Kotlin'de Bukkit plugin'leri | Codexe