Sunucu MSPT'sine Göre Dinamik Görüş Mesafesi Ayarlama

İnceBelli

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

1. MSPT’yi Ölçme​

Spigot’un yerleşik Query API’si yanıt süresini döndürür.
Kod:
int msp = Bukkit.getServer().getServerListPing().getPings(); // ms cinsinden
Alternatif olarak Essentials veya LiteAPI gibi ücretsiz plugin’ler /query komutunu verir.

2. Görüş Mesafesi Değeri​

spigot.yml’deki view-distance değeri 2‑20 arasında değişebilir.
  • mspt < 80 ⇒ 10
  • 80 ≤ mspt < 120 ⇒ 8
  • 120 ≤ mspt < 200 ⇒ 6
  • mspt ≥ 200 ⇒ 4

3. Değişikliği Uygulama​

Spigot’un ViewDistance parametresi sunucu yeniden başlatmadan değiştirilemez.
Bu nedenle dinamik ayarlama için bir plugin yazılır.
Kod:
public class ViewDistanceUpdater implements Listener {
    private final JavaPlugin plugin;
    public ViewDistanceUpdater(JavaPlugin plugin) {
        this.plugin = plugin;
        Bukkit.getServer().getScheduler().runTaskTimer(plugin, this::update, 0, 20 * 5);
    }
    private void update() {
        int msp = Bukkit.getServer().getServerListPing().getPings();
        int newDist = switch (msp) {
            case <= 80 -> 10;
            case <= 120 -> 8;
            case <= 200 -> 6;
            default -> 4;
        };
        String cmd = "view-distance " + newDist;
        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
    }
}
view-distance komutu, Spigot API’sinin Server sınıfında bulunur ve anında uygulanır.

4. Güvenlik ve Performans Dikkatleri​

  • Çok sık değişim (her 5 saniyede) CPU üzerindeki yükü artırabilir.
  • Değişiklikler genellikle tek oyunculu test ortamında denetlenmeli; üretime geçmeden önce yedek alın.
  • core-spawn bloklarının yoğun olduğu bölgelerde yüksek MSPT, düşük mesafeyle yavaşlatma riskini azaltır.

5. Örnek Plugin Yapısı​

Dosyaİçerik
plugin.yml``name: DynamicViewDistance\ntag: viewdist-plugin\nmain: com.example.viewdist.DynamicViewDistanceUpdater\nversion: 1.0\napi-version: 1.20``
DynamicViewDistanceUpdater.javaYukarıdaki kod bloğu

Bu adımları uygulayarak sunucu MSPT’sine göre otomatik görüş mesafesi ayarlayabilirsiniz.
Dinamik mesafe değişikliğinin oyuncu deneyimine etkisi hakkında ne düşünüyorsunuz?

İlgili konular​

 
Geri
En Üst