-
Notifications
You must be signed in to change notification settings - Fork 2
Makro Sistemi (Macros)
Bu sayfa, Minecraft 1.20+ ile gelen resmî makro (macro) sistemini ve datapack mimarisindeki yerini açıklar.
Makro sistemi:
Plugin değildir.
Mod değildir.
Vanilla Minecraft’ın kendi sistemidir.
Makro sistemi, bir komut çalıştırılmadan önce metin bazlı ön işleme yapılmasını sağlar.
Yani:
Komut önce yazı olarak çözülür,
sonra Minecraft tarafından çalıştırılır.
Bir komut $ ile başlıyorsa:
Bu komut makro olarak değerlendirilir.
Bu sistem sayesinde:
- JSON gönderilebilir
- Dinamik veri taşınabilir
- Aynı function farklı davranışlar alabilir
Normal function çağrısı:
function eventcore:trigger
Makro ile function çağrısı:
$function eventcore:trigger {args:{type:"broadcast",data:{msg:"Merhaba"}}}
Burada:
-
$→ Makro modunu başlatır - JSON → Function’a veri taşır
- Makro çözümü → Komut çalışmadan önce olur
Makro içinde $(...) kullanımı,
bir değişkenin değerini
komut metnine yerleştirir.
$function eventcore:trigger {args:{type:"$(event_type)",data:{value:$(amount)}}}
Önemli noktalar:
- Değişkenler metin olarak eklenir
- JSON parse edilmeden önce çözülür
- Bu bir referans değil, kopyalamadır
Geçerli karakterler:
a-z A-Z 0-9 . - _
Makrolar, storage verileriyle doğrudan çalışabilir.
$function $(xxx)
with storage mypack:storage My.NBT[{function:"namespace:path"}]
Bu yapı:
- Storage içindeki verileri makroya taşır
-
$(...)ile erişilebilir hale getirir - GUI → storage → macro zincirini mümkün kılar
Makro sistemi, entity NBT’sini de okuyabilir.
$function eventcore:trigger
with entity @s
Bu sayede:
- Oyuncu verileri okunabilir
- Item, tag, skor bilgileri taşınabilir
- GUI tıklaması oyuncuya bağlanabilir
Makrolar, dünya üzerindeki bir block’un NBT’sini kaynak olarak alabilir.
with block 10 64 -5
Bu yöntem:
- Block entity tabanlı sistemlerde
- Harita mekaniklerinde
- Redstone + datapack hibritlerinde
sıklıkla kullanılır.
Makro sistemi:
Sadece function komutuna özel değildir.
Aşağıdaki tüm komutlar makro destekler:
$execute$tellraw$data$scoreboard$playsound
Yani:
Makro = komut türünden bağımsızdır.
EventCore makroyu:
- Event taşımak için kullanır
- GUI mantığı kurmak için kullanmaz
- Tek giriş noktası sağlar
Akış:
GUI / Event → Storage / Entity / Block → Macro → Trigger → Tekil Function
- Makroyu mantık sanmak
- Her function’da makro kullanmak
- Makroyu tag içinde kontrolsüz çağırmak
- GUI’yi makro ile çözmeye çalışmak
Makro:
Güçlüdür.
Ama mimari değildir.
Makro sistemi:
- Vanilla’dır
- Resmîdir
- Datapack mimarisinin temelidir
Makro veri taşır.
EventCore düzenler.
Sistem kalıcı olur.