🚀 ProtocolLib: Nedir, Nasıl Çalışır, Kurulum, Komutlar ve Sorun Giderme

  • Konu başlatıcı Konu başlatıcı @LoGK_Shadoww
  • Başlangıç Tarihi Başlangıç Tarihi
  • Görüntülenme Görüntülenme 19 Görüntülenme

@LoGK_Shadoww

Moderatör
MC Yaşı
3 gün
Mesaj Sayısı
9
Konu Sayısı
7
Beğeni Sayısı
12
Trade Sayısı
0
Memleket
ANKARA

1. ProtocolLib Nedir ve Nasıl Çalışır?

ProtocolLib, Spigot/Paper tabanlı Minecraft sunucularında, oyun içi ağ paketlerine (Netty network packets) düşük seviyeli (low-level) erişim sağlayan bir geliştirici altyapı kütüphanesidir.

💡 Ana Mantığı

  • Tek Başına İş Yapmaz: Sunucuya kurduğunuzda oyunculara doğrudan yeni bir komut, menü veya oyun modu sunmaz.
  • Ağ Trafiği Köprüsü: Sunucu ile istemci (oyuncu) arasına girerek gönderilen ve alınan verileri işleyen bir "filtre/dinleyici" görevi görür.
  • NMS (Net.Minecraft.Server) Kolaylığı: Normalde Minecraft paketlerini düzenlemek zorlu kod güncellemeleri (reflection ve obfuscation) gerektirirken, ProtocolLib geliştiricilere stabil bir API sunarak işleri kolaylaştırır.

2. Minecraft Ağ Paketleri (Packets) Mantığı

Minecraft'ta gerçekleştirdiğiniz her eylem arka planda paketler halinde taşınır. İletişim çift yönlüdür:
İstemci (Oyuncu) ──> ProtocolLib (Filtre) ──> Sunucu (Paper/Spigot)


1. Client-Bound Packets (Sunucudan Oyuncuya)

Sunucunun oyuncunun bilgisayarına gönderdiği görsel ve dünyasal verilerdir:
  • Haritadaki blok değişiklikleri
  • Oyuncuların/Yaratıkların (Entity) hareketleri ve görünümleri
  • Tab listesi, Skor tahtası (Scoreboard), Başlık (Title) ve Sesler


2. Server-Bound Packets (Oyuncudan Sunucuya)

Oyuncunun kendi bilgisayarından sunucuya bildirdiği eylemlerdir:
  • Sol/Sağ tık etkileşimleri
  • Karakterin yürüme/uçma pozisyon verileri (XYZ)
  • Envanter tıklamaları ve sohbet mesajları
ProtocolLib İşte Burada Devreye Girer: Bu paketler yoldayken araya girer. Örneğin; bir oyuncunun önündeki taşı oyuncuya Elmas gibi gösterebilir veya hile yapan bir oyuncunun sunucuya yolladığı hatalı hareket paketini sunucuya ulaşmadan engelleyebilir.


3. Sunucu Uyumluluğu ve Doğru Kurulum

🏢 Platform Uyumluluk Tablosu

Sunucu YazılımıDestek DurumuAçıklama
Paper / Purpur / Spigot / Bukkit✅ Tam DestekDoğrudan çalışır.
Folia⚠️ Kısmi DestekGüncel sürümler destekler ancak eklentinin de Folia uyumlu olması gerekir.
Velocity / BungeeCord (Proxy)❌ ÇalışmazProxy üzerine yüklenemez! Sadece arka plandaki (Backend) Paper/Purpur sunucularına kurulur.
Fabric / Forge / NeoForge❌ ÇalışmazBukkit API yapısı olmadığı için mod sunucularında çalışmaz.
Mohist / Magma (Hybrid)⚠️ ÖnerilmezPaket müdahalesi (injection) çakışmaları yaşanabilir.

🔧 Adım Adım Kurulum Rehberi

  1. Sunucu Minecraft sürümünüze uyumlu .jar dosyasını resmî GitHub veya SpigotMC sayfasından indirin.
  2. Java sürümünüzü kontrol edin (ProtocolLib 5.4.0+ için en az Java 17 gereklidir).
  3. .jar dosyasını sunucunuzun plugins klasörüne atın.
  4. Sunucuyu tamamen durdurun (stop) ve yeniden başlatın.
  5. Konsolda [ProtocolLib] Enabling ProtocolLib vX.X.X yazısını doğrulayın.
⛔ HAYATİ UYARI: ProtocolLib'i yüklerken, güncellerken veya kaldırırken asla PlugMan, FastAsyncWorldEdit reloader veya /reload komutunu KULLANMAYIN. Netty ağ kanallarına çift erişim denemesi sunucu ağ mimarisini kilitler ve çökeltir.


4. Kullanım Alanları ve Örnek Eklentiler

ProtocolLib'in gücünden yararlanan popüler eklenti kategorileri:
  • Disguise (Dönüşüm) Sistemleri: LibsDisguises (Oyuncuları yaratıklara dönüştürme).
  • Maden Gizleme (Anti-Xray): Orebfuscator (İstemciye giden cevher paketlerini değiştirerek X-Ray hilesini engelleme).
  • Anti-Cheat (Hile Engelleme): AAC, Matrix, GrimAC gibi eklentilerin gelişmiş paket kontrolleri.
  • Sahte Entity ve NPC: Citizens, ZNPCsPlus veya özel Hologram eklentileri.
  • Görsel Düzenlemeler: Özel TAB listeleri, Nametag gizleme, renkli zırh simülasyonları.


5. Tüm Komutlar ve Detaylı Açıklamaları

Tüm komutlar ana kök olarak /protocol veya /packet kullanır.

🛠️ Yönetim Komutları

  • /protocol version
    • Açıklama: Sunucuda aktif olan ProtocolLib sürümünü ve build numarasını basar.
  • /protocol listeners
    • Açıklama: ProtocolLib'e bağlı çalışan eklentileri ve bu eklentilerin dinlediği (intercept ettiği) paket türlerini listeler. Performans takibi için harikadır.
  • /protocol config
    • Açıklama: config.yml dosyasında yapılan değişiklikleri sunucuyu kapatmadan yeniden yükler.
  • /protocol check / /protocol update
    • Açıklama: Yeni bir sürüm çıkıp çıkmadığını kontrol eder ve destekleniyorsa günceller.
  • /protocol timings
    • Açıklama: ProtocolLib listener'larının sunucu işlemcisi üzerindeki yükünü ölçmeye başlar / durdurur.
  • /protocol dump
    • Açıklama: Teknik destek isterken (GitHub Issues vb.) geliştiricilere sunulacak sistem, Java, sunucu ve eklenti durum raporunu oluşturur.


🧪 Geliştirici & Hata Ayıklama (Debug) Komutları

  • /packet names client — İstemciden sunucuya gönderilen tüm paket isimlerini listeler.
  • /packet names server — Sunucudan istemciye gönderilen tüm paket isimlerini listeler.
  • /packet add client BlockPlace — Belirtilen istemci paketini konsolda canlı izlemeye alır.
  • /packet add server BlockChange — Belirtilen sunucu paketini konsolda canlı izlemeye alır.
  • /packet remove client BlockPlace — Eklenen paket izleyicisini kaldırır.
  • /packetlog — Paket verilerini HEX formatında log dosyasına kaydeder (Canlı sunucuda performans düşürebilir!).

6. Config.yml Yapılandırması ve Optimizasyon

plugins/ProtocolLib/config.yml dosyasındaki kritik ayarların açıklamaları:
  • auto updater.notify (Varsayılan: true): Yeni sürüm çıkınca yetkiliye bildirim gösterir.
  • auto updater.download (Varsayılan: false): Yeni sürümün otomatik indirilmesini yönetir (Elle güncelleme önerilir).
  • auto updater.delay (Varsayılan: 43200): Güncelleme kontrol sıklığı (saniye).
  • background compiler (Varsayılan: true): Paket verilerini arka planda derleyerek performansı artırır (Açık kalması önerilir).
  • ignore version check (Varsayılan: false): UYARI: true yapmak ProtocolLib'i yeni sürümle uyumlu yapmaz, sadece uyarı hatasını gizler.
  • debug (Varsayılan: false): Gelişmiş /filter ve debug modunu aktif eder.
  • detailed error (Varsayılan: true): Hata oluştuğunda konsola detaylı rapor basar.


7. ProtocolLib vs PacketEvents Karşılaştırması

Son yıllarda ProtocolLib'e alternatif olarak öne çıkan PacketEvents ile arasındaki temel farklar:
ÖzellikProtocolLibPacketEvents
Hedef PlatformBukkit / Spigot / Paper / PurpurBukkit, Velocity, BungeeCord, Fabric, Sponge
PerformansYüksek (Eski reflection yapıları bulunur)Çok Yüksek (Sıfır gömülü reflection hedefi)
Ekosistem & Yaygınlık🏆 Çok Yüksek (10+ yıllık eklentiler kullanır)📈 Hızla Büyüyor (Yeni nesil eklentiler tercih ediyor)
Birlikte Çalışmaİkisi aynı Paper sunucusunda çakışmadan birlikte çalışabilir.İkisi aynı Paper sunucusunda çakışmadan birlikte çalışabilir.
Hangisini Kurmalıyım? Seçim size bağlı değildir! Yüklediğiniz eklenti (örneğin LibsDisguises) hangisini bağımlılık (dependency) olarak istiyorsa onu kurmalısınız.

 
Geri
En Üst