Bir glyph nasıl menü arka planına dönüşür
Bir sandık menüsü başlığını sol üst köşeye yazar ve bu başlık sunucunun kaynak paketindeki (resource pack) karakterleri içerebilir. Glyph, PNG’nden çizilen böyle bir karakterdir. Başlığa büyük bir glyph koyarsan istemci onu bütün sandık ekranının üzerine boyar.
Konumunu iki değer belirler. Negatif bir shift, glyph’ten önce imleci sola kaydırır; böylece resim başlık girintisinden değil, sandığın kenarından başlar. Glyph’in ascent değeri ise onu menüyü kaplayana kadar dikey olarak taşır. Slotlar gerçek slot olarak kalır: resimde buton görünen yerde menüde material: air olan ve yine de tıklama eylemlerini çalıştıran boş bir slot vardır.
Bunun yerine ItemsAdder kullanıyorsan bu rehberin ItemsAdder sürümünü oku. Fikir aynı, yalnızca config ve placeholder adları farklı.
Neye ihtiyacın var
- Sunucunda DeluxeMenus ve PlaceholderAPI. DeluxeMenus,
menu_titleiçindeki PlaceholderAPI placeholder’larını işler. - Kaynak paketini oluşturan ve glyph ile shift placeholder’larını sağlayan Nexo veya Oraxen.
- Oraxen için: envanter başlıklarındaki glyph’ler Paper 1.21.2 veya daha yenisinde doğrudan çalışır. Oraxen dokümantasyonuna göre daha eski sunucularda PacketEvents gerekir.
- En fazla 256×256 piksellik bir arka plan PNG’si. Tek bir glyph için daha büyük dokulara izin verilmez.
1. adım: Arka planı tasarla
Menüyü GUI Maker’da kur: satır sayısını, bir hazır şablon veya tema seç ve birden fazla slota yayılan büyük butonlar çiz. Dışa aktarma altında Nexo veya Oraxen’i seç, bir namespace (örneğin mymenus) ve bir menü adı (örneğin shop) belirle.
PNG 256 piksel genişliğinde ve 164 piksel (tek satır) ile 254 piksel (altı satır) arasında yüksekliktedir. Sandığın etrafındaki boşluk, çerçevelerin normal menü çerçevesinin dışına taşmasına yer açar.
2a. adım: Nexo glyph config’i
Nexo, glyph’leri glyphs klasöründeki herhangi bir YAML dosyasından okur. Doku namespace:path olarak yazılır; burada plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png konumundaki PNG:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightçizilen yüksekliktir. PNG’nin gerçek piksel yüksekliğini kullan.ascentglyph’i yukarı taşır. Nexo’ya göre height asla ascent’ten küçük olmamalı.- Placeholder’lar glyph için
%nexo_gui_shop%, boşluk için de negatif olabilen%nexo_shift_<pixels>%.
2b. adım: Oraxen glyph config’i
Oraxen glyph’leri plugins/Oraxen/glyphs/ klasöründen okur. Doku yolu pack/textures/ klasörüne görelidir, bu yüzden PNG plugins/Oraxen/pack/textures/gui/shop.png konumuna gider:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen,
heightdeğerininascentdeğerinden büyük veya ona eşit olmasını ister; Minecraft bunu zorunlu kılar. - Glyph placeholder’ı
%oraxen_gui_shop%. Shift için iki placeholder var:%oraxen_shift_<pixels>%sağa,%oraxen_neg_shift_<pixels>%sola kaydırır. İkisi de 2047 piksele kadar destekler. - Karakteri kendin seçmek için bir
charanahtarı var, ama isteğe bağlı.
4. adım: Menüyü kaydet ve yeniden yükle
gui_menus:
shop:
file: shop.yml- Paketi yeniden oluştur: Nexo için
/nexo reload(veya/nexo reload pack), Oraxen için/oraxen reload all. /dm reloadçalıştır ve/dm open shopile test et.- Sunucuyu bir kez yeniden başlat. DeluxeMenus,
register_command: trueile/shopkomutunu yalnızca açılışta kaydeder. - Yeni kaynak paketini alman için sunucuya yeniden gir.
Sık görülen hatalar ve çözümleri
| Ne görüyorsun | Neden ve çözüm |
|---|---|
%nexo_gui_shop% veya %oraxen_gui_shop% metin olarak görünüyor | PlaceholderAPI eksik ya da placeholder’daki glyph ID’si glyph dosyasındaki anahtarla uyuşmuyor. |
| Boş bir kutu veya yanlış bir sembol | Paket yeniden oluşturulmamış ya da oyuncuda eski paket var. Eklentiyi yeniden yükle ve sunucuya tekrar gir. |
| Oraxen glyph’i yalnızca menü başlıklarında yok | Sunucu Paper 1.21.2’den eski ve PacketEvents kurulu değil. |
| Resim kaymış | Shift veya ascent PNG ile uyuşmuyor. Aynı tasarımdan yeniden dışa aktar. |
| Resim PNG’den daha koyu | İlk placeholder’ın önünde &f eksik. |
| Glyph yüklenirken reddediliyor | ascent, height değerinden büyük ya da PNG 256×256’dan büyük. |
/shop hiçbir şey yapmıyor | Menü config.yml’de yok ya da eklendikten sonra sunucu yeniden başlatılmamış. |