Geçiş Genel Bakış ve Mimarisi
Bukkit / Spigot / Paper eklenti geliştirmeden Pumpkin'a geçiş yapmak; Java merkezli nesne yönelimli bir modelden derlenmiş, çok dilli bir WebAssembly (WASM) bileşen modeline geçişi ifade eder.
Aşağıdaki tablo, geleneksel Bukkit/Paper paradigmasını Pumpkin'ın modern WebAssembly mimarisiyle karşılaştırmaktadır:
| Kavram | Bukkit / Spigot / Paper | Pumpkin |
|---|---|---|
| Dil Desteği | Java / Kotlin / Scala (JVM) | Rust, Python, Kotlin, C#, Go, C |
| İkili Dosya Çıktısı | .jar Java Arşivi | .wasm WebAssembly Bileşeni |
| Eklenti Tanımlayıcısı | plugin.yml dosyası | Programatik PluginMetadata yapısı (struct) |
| Yaşam Döngüsü Kancaları | onEnable() / onDisable() | on_load(context) / on_unload(context) |
| Güvenlik ve Yalıtım | Kısıtlamasız JVM Yansıması (Reflection) | Yalıtılmış (sandboxed) WASM yetenek modeli |
| Eşzamanlılık | Tek iş parçacıklı tick döngüsü (BukkitScheduler) | Async çalışma zamanı ile çok iş parçacıklı yerel yürütüm |
Ayrıntılı Geçiş Konuları
Başlıca eklenti alt sistemlerini taşımaya yönelik özel kılavuzları inceleyin:
- Komutları Taşıma —
getCommand().setExecutor()veplugin.ymlyapısından Brigadier komut ağaçlarına geçiş. - Olayları Taşıma —
@EventHandlerveListenerarayüzlerini Pumpkin'ın bloklayan ve bloklamayan olay sistemiyle değiştirme. - Envanterleri ve GUI'leri Taşıma —
Bukkit.createInventory()yaklaşımından Pumpkin konteyner ve pencere işleyicilerine geçiş. - Yapılandırma ve Verileri Taşıma —
getConfig()/config.ymlyapısını yerel TOML, JSON veya özel depolama ile değiştirme.