Dokulu bir GUI nasıl çalışır
Bir sandık menüsü başlığını sol üst köşede gösterir. Başlık bir metindir ve metin, sunucunun kaynak paketindeki (resource pack) karakterleri içerebilir. ItemsAdder herhangi bir PNG’yi böyle bir karaktere, yani font görseline (font image) dönüştürebilir. Başlığa büyük bir font görseli koyarsan istemci onu sandık ekranının üzerine çizer.
Hizalamak için iki parça daha gerekir. Negatif bir offset, görselden önce imleci sola kaydırır; böylece resim başlık girintisinden sonra değil, sandığın sol kenarından başlar. Font görselinin y_position değeri ise onu tüm menüyü kaplayana kadar yukarı veya aşağı taşır.
Slotlar normal slot olarak kalır. Resminde buton görünen yerde menüde material: air olan, kendi tıklama eylemlerine sahip boş ve tıklanabilir bir slot bulunur.
Neye ihtiyacın var
- Spigot veya Paper sunucusunda DeluxeMenus ve PlaceholderAPI.
- Kaynak paketini oluşturan ve
%img_…%placeholder’larını sağlayan ItemsAdder. - Çalışan bir kaynak paketi dağıtımı, yani oyuncuların paketi gerçekten indirmesi (ItemsAdder kendi barındırma ve başka hosting seçenekleri sunar).
- Bir arka plan PNG’si. Minecraft 256×256 pikselden büyük font glyph’lerine izin vermez, resim buna sığmalı.
1. adım: Arka plan resmini hazırla
Menüyü GUI Maker’da tasarla: satır sayısını, bir tema veya hazır şablon seç ve birden fazla slotu kaplayan büyük butonlar çiz. Dışa aktarma olarak ItemsAdder’ı seç, namespace’ini (örneğin mymenus) ve menü adını (örneğin shop) gir.
Dışa aktarılan PNG 256 piksel genişliğindedir. Yüksekliği satır sayısına bağlıdır: tek satır için 164, altı satır için 254 piksel. Sandığın etrafındaki ek alan, çerçevelerin ve süslemelerin normal menü çerçevesinin dışına taşabilmesini sağlar.
2. adım: Font görselini ItemsAdder’a kaydet
PNG’yi namespace’ine kopyala ve bir font_images girdisi ekle. GUI Maker’ın altı satırlık bir menü için dışa aktardığı şey şu:
info:
namespace: mymenus
font_images:
gui_shop:
path: gui/shop
show_in_gui: false
suggest_in_command: false
scale_ratio: 254
y_position: 45Resmin kendisi plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png konumuna gider.
scale_ratiogörselin çizildiği yüksekliktir. Hiçbir şey gerilmesin diye PNG’nin gerçek piksel yüksekliğini kullan.y_positiongörseli dikey olarak taşır. ItemsAdder bununscale_ratiodeğerinden küçük veya ona eşit olmasını ister, çünkü oyun daha fazlasına izin vermez.show_in_gui: falsearka planı ItemsAdder emoji listesinin dışında tutar.
3. adım: Görseli DeluxeMenus menü başlığına koy
DeluxeMenus, menu_title içindeki PlaceholderAPI placeholder’larını işler. ItemsAdder görsel için %img_<name>%, boşluk için de negatif olabilen %img_offset_<pixels>% sağlar.
menu_title: '&f%img_offset_-48%%img_gui_shop%%img_offset_-201%&8Shop'
open_command: 'shop'
register_command: true
size: 54
items:
button_1_buy:
material: air
slots: [10, 11, 19, 20]
priority: 1
click_commands:
- '[openguimenu] shop_buy'- Baştaki
&fresmi gerçek renklerinde tutar. O olmadan görsel başlık rengiyle boyanır. %img_offset_-48%resimden önce imleci 48 piksel sola kaydırır. GUI Maker tuvali için bu değeri kullanır: sandık başlığının girintisi için 8 piksel artı her iki yana eklediği 40 piksellik kenar boşluğu.%img_gui_shop%arka planın kendisidir.- İkinci offset imleci geri taşır; böylece
&8Shopresmin üzerinde, başlığın olması gereken yere yazılır. Değeri resminin genişliğine bağlıdır; GUI Maker bunu senin için hesaplar.
Başlığı GUI Maker’da resmin içine gömersen başlık arka plan placeholder’ından sonra biter ve ikinci offset olmaz.
4. adım: Menüyü kaydet ve paketi yeniden oluştur
DeluxeMenus yalnızca config.yml dosyasında listelenen menüleri yükler:
gui_menus:
shop:
file: shop.yml- ItemsAdder kaynak paketini yeni görselle yeniden oluştursun diye
/iazipçalıştır. /dm reloadçalıştır. Kontrol etmek için menüyü bir kez/dm open shopile aç.register_command: true,/shopkomutunu gerçek bir komut olarak kaydeder, ama yalnızca sunucu başlarken. Yeni bir menü ekledikten sonra sunucuyu bir kez yeniden başlat.- Sunucuya yeniden gir, kaynak paketini kabul et ve menüyü aç.
Sık görülen hatalar ve çözümleri
| Ne görüyorsun | Neden ve çözüm |
|---|---|
Başlıkta %img_gui_shop% metin olarak görünüyor | PlaceholderAPI eksik ya da isim yanlış. Placeholder, config’teki font görseli adını namespace olmadan kullanır. |
| Resim yerine boş bir kutu veya yanlış bir sembol | Paket yeniden oluşturulmamış ya da oyuncuda eski paket var. /iazip çalıştır ve yeniden gir. |
| Bazı oyuncularda hiç resim yok | Sunucunun kaynak paketini reddetmişler. Paket barındırmanı ve istemcinin sunucu ayarlarını kontrol et. |
| Resim kaymış | İlk offset veya y_position, PNG’nin kenar boşluklarıyla uyuşmuyor. Sayı tahmin etmek yerine yeniden dışa aktar. |
| Resim gri veya daha koyu | Görselin önünde &f eksik. |
/shop bilinmeyen bir komut | Menü eklendikten sonra sunucu yeniden başlatılmamış ya da menü config.yml’de yok. |
| ItemsAdder font görselini kabul etmiyor | y_position, scale_ratio değerinden büyük ya da görsel 256×256’dan büyük. |