Skip to content
This repository was archived by the owner on May 10, 2026. It is now read-only.

Makro Sistemi (Macros)

Legends11 edited this page Dec 30, 2025 · 1 revision

🧪 Minecraft Makro Sistemi (Vanilla Datapack)

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 Nedir?

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

🔹 Temel Makro Kullanımı

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

🔸 $(Değişken) Mantığı

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 . - _


📦 with storage Kullanımı

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

👤 with entity Kullanımı

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

🧱 with block Kullanımı

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.


⚠️ Önemli Gerçek: Makrolar Her Komutta Geçerlidir

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 Bağlamında Makro

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

🚫 Yaygın Yanlışlar

  • 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.

🧠 Sonuç

Makro sistemi:

  • Vanilla’dır
  • Resmîdir
  • Datapack mimarisinin temelidir

Makro veri taşır.
EventCore düzenler.
Sistem kalıcı olur.