MC Toolkit

Rehberler / Sunucu ve Performans

server-icon.png: tam gereksinimler ve kimsenin kullanmadığı yönetim API'si

64x64, PNG, sunucu kök dizininde — üçünden birini yanlış yaparsanız simge sessizce görünmez. Ayrıca konsolu ekran kazıma yöntemiyle okumanın yerini alan JSON-RPC yönetim API'si.

Sunucu simgesi, Minecraft'ın en affetmeyen küçük özelliğidir; çünkü her hata modu aynı görünür: simge yok, hata yok.

Üç gereksinim, hepsi zorunlu

  1. Tam olarak 64×64 piksel. 63 değil, 128 değil. Sunucu yeniden boyutlandırma yapmaz.
  2. PNG formatı. Gerçekten PNG, adı değiştirilmiş bir JPG değil.
  3. server-icon.png adında, sunucu kök dizininde — server.properties dosyasının yanında, dünya klasörünün içinde değil.

Herhangi birini yanlış yaparsanız sunucu normal şekilde başlar ve varsayılan simgeyi gösterir. Yanlış boyut veya gerçekten PNG olmayan bir dosya, başlangıçta tek bir satır kaydeder — Couldn't load server icon — ancak adı yanlış veya yeri yanlış bir dosya hiçbir şey kaydetmez. (Hiç server-icon.png yoksa, sunucu varsa dünyanın kendi icon.png dosyasına geri döner.)

Bunu da bozan şeyler

  • Geçmeli (interlaced) PNG. Bazı düzenleyiciler varsayılan olarak geçmeli kaydeder; Minecraft'ın okuyucusu bunu reddeder. Geçmeli olmayan şekilde yeniden dışa aktarın.
  • 16-bit renk derinliği. Kanal başına 8-bit olarak kaydedin.
  • Renk profilleri. Gömülü bir ICC profili zaman zaman ayrıştırıcıyı takar. Dışa aktarırken meta verileri temizleyin.
  • Saydamlık sorun değil ve sunucu listesinde doğru şekilde görüntülenir.

Sunucu onu bir kez okur

Sunucu başlarken server-icon.png dosyasını yükler ve bir daha asla okumaz. Çalışan bir sunucuda dosyayı değiştirmek, yeniden başlatılana kadar hiçbir şeyi değiştirmez — bu yüzden yeniden başlatmadan bir simge değişikliğini test etmek, işe yaramadığına sizi ikna eder. Yeniden başlatmanın ardından bir istemci, bir sonraki sunucu listesi yenilemesinde yeni simgeyi alır.

Yönetim API'si

Yakın tarihli sunucu sürümleri, konsol çıktısını ayrıştırmanın veya bir eklenti takmanın onaylanmış yerine geçen bir JSON-RPC yönetim arayüzü sunar.

server.properties dosyasında etkinleştirin:

management-server-enabled=true
management-server-host=localhost
management-server-port=25585
management-server-tls-enabled=false

TLS varsayılan olarak açıktır ve bir anahtar deposu (management-server-tls-keystore) gerektirir; bu yüzden ya birini işaret edin ya da — yalnızca localhost'ta — yukarıdaki gibi kapatın; TLS açıkken ve anahtar deposu yokken yönetim sunucusu başlamaz. Bağlantı noktasının da varsayılanı yoktur (25585 sadece bir örnektir).

Ardından o bağlantı noktasına bir WebSocket açın, server.properties dosyasındaki management-server-secret değerini Authorization: Bearer <secret> olarak gönderin ve JSON-RPC konuşun:

{ "jsonrpc": "2.0", "id": 1, "method": "minecraft:players" }

Yöntemler; oyuncu listesini, sunucu durumunu, izin listesini ve yasak listesini, oyun kurallarını, ayarları ve bir kaydet/durdur çiftini kapsar. Her biri, regex'le ayrıştırmanız gereken bir metin satırı yerine yapılandırılmış JSON döndürür.

Localhost'a bağlayın

Varsayılan localhost değeridir ve öyle kalmalıdır. Arayüzün internete açılması amaçlanmamıştır — ona sırrı bilerek ulaşan herkes sunucunuzu durdurabilir ve sırrın güvenliği ancak server.properties kadar güvenlidir. Uzak erişime ihtiyacınız varsa, ana makineyi 0.0.0.0 olarak değiştirerek değil, bir SSH tüneli veya kimlik doğrulamalı bir ters proxy üzerinden açın.

Neden önemli

Panolar, Discord botları ve çalışma süresi izleyicileri tarihsel olarak konsol günlüğünü okuyarak veya RCON kullanarak çalıştı; her ikisi de kırılgandır. Tipli bir API, bir günlük satırının biçimi değiştiğinde oyuncu sayısı widget'ının bozulmaması anlamına gelir.

Herhangi bir görüntüyü uyumlu bir server-icon.png dosyasına dönüştürün ve JSON-RPC yöntemlerine Sunucu Simgesi ve API Araçları sayfasından göz atın.

Sunucu simgesi ve API →

Daha fazla rehber

Tümünü gör →