Plugin Hata Mesajları: NoClassDefFoundError ve Bağımlılık Sorunları
Yeni bir plugin yüklediğinizde sunucu başlamıyor veya plugin etkinleşmiyor ve konsolda karmaşık Java hata mesajları görüyorsunuz. Bu mesajlar ilk bakışta korkutucu olsa da genellikle çok basit ve hızlı çözülebilir sorunlara işaret eder. Bu rehberde en yaygın plugin yükleme hatalarını ve çözümlerini açıklıyorum.
NoClassDefFoundError
[ERROR] Could not load 'plugins/ShopGUI+.jar' in folder 'plugins'
java.lang.NoClassDefFoundError: com/earth2me/essentials/api/Economy
at net.brcdev.shopgui.ShopGuiPlugin.onEnable(ShopGuiPlugin.java:89)
Bu hata "bir sınıf bulunamadı" demektir. Genellikle eksik bağımlılık (dependency) anlamına gelir. Hata mesajındaki sınıf adına bakın:
com/earth2me/essentials → EssentialsX'e ait bir sınıf; EssentialsX kurulu değil veya yüklenmedi.Çözüm:
- Plugin sayfasında Dependencies bölümünü okuyun
- Listelenen pluginleri kurun
- Sunucuyu yeniden başlatın
ClassNotFoundException
java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_20_R1.CraftServer
Bu hata genellikle plugin'in farklı bir Minecraft sürümü için yazıldığını gösterir. Bazı eski pluginler CraftBukkit iç sınıflarına (NMS - net.minecraft.server) doğrudan erişir ve bu sınıflar sürümden sürüme değişir.
Çözüm:
- Plugin'in sunucu sürümünüzle uyumlu bir versiyonunu bulun
- Plugin SpigotMC sayfasında "Supported Versions" kısmını kontrol edin
- Plugin artık güncellenmiyorsa alternatif arayın
UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError: /tmp/native-lib.so: wrong ELF class
Nadir görülen bu hata, plugin'in native (yerel) kütüphane içerdiğini ve bu kütüphanenin işletim sistemiyle uyumsuz olduğunu gösterir. Genellikle 32-bit/64-bit uyumsuzluğu veya Windows/Linux farkından kaynaklanır.
IllegalStateException: Plugin already initialized
java.lang.IllegalStateException: Already initialized
Aynı plugin'in iki farklı versiyonu aynı anda yüklü. Çözüm: eski versiyonu plugins klasöründen silin; yalnızca bir tane kalmalı.
Bağımlılık Yükleme Sırası
Plugin A, Plugin B'ye bağımlıysa B'nin önce yüklenmesi gerekir. Paper genellikle bağımlılık sırasına göre otomatik yükleme yapar. Ancak bazen:
[WARN] Plugin 'ShopGUI+' requires 'Vault' to be loaded before it but it cannot be found!
Bu durumda Vault yüklü değil veya plugin adı tam eşleşmiyor. Plugin sayfasında tam bağımlılık adlarını kontrol edin.
ProtocolLib Sürüm Uyumsuzluğu
Birçok plugin ProtocolLib'e bağımlıdır. ProtocolLib her MC sürümü için ayrıca güncellenir; eski sürümüyle yeni MC'de şu hata görülür:
[WARN] [ProtocolLib] Plugin 'TAB' requires a compatible version of ProtocolLib
Çözüm: ProtocolLib'i her zaman en güncel sürüme yükseltin. SpigotMC'deki "Dev Build" versiyonu en güncel MC desteğine sahiptir.
Genel Sorun Giderme Akışı
- Hata mesajını tam olarak kopyalayın
- "NoClassDefFoundError" ise eksik dependency'yi bulun
- "ClassNotFoundException" ise sürüm uyumsuzluğunu kontrol edin
- Plugin'i tek başına test edin (diğer pluginleri geçici kaldırın)
- Plugin'in GitHub veya SpigotMC Issues sayfasını kontrol edin; aynı hata rapor edilmiş olabilir
Sonuç
Plugin yükleme hataları genellikle eksik bağımlılık veya sürüm uyumsuzluğu kaynaklıdır. Hata mesajının ilk satırına odaklanın; Java class adı çoğunlukla hangi plugin veya kütüphanenin eksik olduğunu söyler. Sistematik bir şekilde ilerlerseniz bu hataları kolayca aşabilirsiniz.
💡 Etkileşim için giriş yap.