Merhaba mc-forum.net üyeleri ve değerli sunucu sahipleri,
Bugün forumda birçoğunuzun sunucusunda yaşadığı en büyük sorunlardan birine değineceğiz: Arayüz (GUI) kaynaklı performans kayıpları ve karmaşık konfigürasyonlar.
Yıllarca DeluxeMenus veya ChestCommands gibi hantal, girintilerle uğraştıran ve sunucuya oyuncu girdiğinde TPS düşüşlerine yol açan eklentilere katlanmak zorunda kaldık. Bu rehberimizde, sunucu sahiplerinin gizli silahı olan, optimizasyon harikası CommandPanels eklentisini, mantığını ve temel hatlarını inceliyoruz.

🔥 Neden CommandPanels Kullanmalısınız?
Sıfır İşlemci Yükü: Sadece oyuncu tıkladığında çalışır. Arka planda sunucu döngüsünü (Tick) sürekli meşgul etmez.
Akıllı Slot Matrisi: 20 farklı slotu kapatmak için 20 kez kod kopyalamanıza gerek kalmaz. Tek satırda aralık belirleyebilirsiniz (
0-18gibi).Temel Yapı: Girintilerle (indentation) boğuşurken hata yapma olasılığınızı en aza indiren temiz bir YAML söz dizimine sahiptir.
📂 Slot Mantığı ve Dosya Yapısı
Eklentiyi kurduktan sonra plugins/CommandPanels/panels/ dizini sizin üretim merkeziniz olur. Buraya açacağınız her .yml dosyası bağımsız bir menüyü temsil eder.
Minecraft sanal sandıkları 9 ve katları (en fazla 54 slot) şeklinde çalışır. Unutmamanız gereken en kritik kural: Sayım 1'den değil, 0'dan başlar.
[ 0] [ 1] [ 2] [ 3] [ 4] [ 5] [ 6] [ 7] [ 8] -> 1. Satır
[ 9] [10] [11] [12] [13] [14] [15] [16] [17] -> 2. Satır
📝 Profesyonel Bir Panel Anatomisi (Örnek Şablon)
Aşağıdaki şablonu panels/profil.yml olarak kaydedip sunucunuzda anında test edebilirsiniz. İçerisinde PlaceholderAPI ve gelişmiş mantıksal sorgu barındırır:
panel-name: profil_menusu
title: '&8» &dOyuncu Profili &7(%player%)'
rows: 3
# Oyuncunun chate yazarak bu menüyü açacağı kısayollar
commands:
- 'profil'
- 'menu'
item:
# 1. BİLEŞEN: Oyuncu Kafası ve İstatistikler
oyuncu_kafa:
material: PLAYER_HEAD
skull: '%player%' # Kafanın otomatik olarak tıklayan oyuncunun cildi olmasını sağlar.
slot: 11
name: '&e&lKarakter Bilgileri'
lore:
- ' &8▪ &fCüzdan: &a%vault_eco_balance_formatted% TL'
- ' &8▪ &fAktiflik: &e%statistic_hours_played% Saat'
# 2. BİLEŞEN: Koşullu Mantık (Conditional Logic) Butonu
# Oyuncunun parası yetiyorsa işlem yapar, yetmiyorsa hata mesajı verir.
gunluk_odul:
material: CHEST_MINECART
slot: 15
name: '&6&lGünlük VIP Çekiliş Bileti'
lore:
- '&7Maliyeti: &c5,000 TL'
- ''
- '&eSatın almak için tıklayın.'
commands:
left:
# Tek satırda gelişmiş sorgu kullanımı:
- 'papi: %vault_eco_balance% < 5000 ? msg %player% &cBakiyen yetersiz! : eco take %player% 5000 ; crazycrates give physical günlük 1 %player% ; msg %player% &aBilet alındı!'
# 3. BİLEŞEN: Arka Plan Camları (Tek satırda tüm boş slotları kapatır)
panel_cerceve:
material: BLACK_STAINED_GLASS_PANE
name: ' '
slots:
- 0-10
- 12-14
- 16-26
⚙️ Komutlar ve Yetkiler (Permissions)
Oyuncularınızın oluşturduğunuz menülere erişebilmesi için yetki eklentinize (LuckPerms vb.) ilgili izni vermelisiniz.
Yetki (Permission):
commandpanels.panel.<panel_adı>(Örn:commandpanels.panel.profil_menusu)Admin Yetkisi:
commandpanels.admin(Tüm yönetim ve reload yetkisi)
Can Alıcı Komutlar:
/cp reload- Sunucuyu yeniden başlatmadan tüm panelleri anında günceller./cp open <panel_adı> <oyuncu>- Belirtilen oyuncunun ekranında zorla menü açar./cp toggle <panel_adı>- Acil bir durumda veya bakım anında menüyü geçici olarak kilitler.
💡 Forum Üyelerine Özel İpucu:
Komutlar kısmında oyuncunun yetkisinin yetmediği (örneğin sadece adminlerin yazabildiği bir yetki verme komutu gibi) durumlarda komutun başına
console:ön ekini ekleyin. Böylece komut oyuncu adına değil, sunucu konsolu üzerinden güvenli bir şekilde tetiklenir.CommandPanels hakkında takıldığınız, sormak istediğiniz veya çözemediğiniz gelişmiş mantık kombinasyonları varsa konu altından sorabilirsiniz. Keyifli forumlar!


