Releases: tickwarden/macroEngine-datapack
macroEngine v4.0.2-fix1
Full Changelog: v4.0.2...v4.0.2-fix1
macroEngine v4.0.2
Full Changelog: v4.0.1...v4.0.2
macroEngine v4.0.1
✨ Yeni
Load Confirmation Gate (ame_load:load/confirm, yes, no, timeout)
ame_load:_ (Stage 0) artık ame_load:load/all'u direkt çağırmıyor.
Bunun yerine bir onay kapısı açıyor:
ame_load:load/confirm—#pending ame.loadflag'ini ayarlar, marker entity aracılığıyla talimatları yayınlar, 5 dakikalık timeout'u schedule'larame_load:load/yes— admin onayı, tam init pipeline'ını çalıştırırame_load:load/no— iptal,macro:enginestorage'a dokunulmazame_load:timeout— 5 dakika yanıt gelmezse otomatik iptal (load/no'ya delegate)
Problem çözülüyor:
minecraft:load tag'i hem /reload'da hem de dünya açılışında tetiklenir. Önceki davranış: mevcut session verisini (permissions, flags, wand binds, vb.) koşulsuz data modify ... set value ile üzerine yazıyordu → nondeterministic state + sessiz veri kaybı.
Yeni davranış: Onay gelmeden macro:engine storage'a hiçbir şey yazılmaz.
Marker Entity Pattern (say yerine tellraw)
Tüm gate mesajları summon marker → say → kill @s pattern'ini kullanıyor.
Neden: tellraw @a + clickEvent, server başlangıcında güvenilmez:
minecraft:loadtetiklendiğinde client connection pipeline henüz tamamlanmamış olabilir- Sıfır oyuncu online olabilir (unattended/headless server)
- Marker
say, server loguna doğrudan yazar — her koşulda çalışır
Dangerous Command Gate (ame_load:gate/)
Üç yıkıcı komut artık anında çalışmıyor — onay gerektiriyor:
| Komut | Değişiklik |
|---|---|
macro:cmd/ban |
pending_gate'e yazar → gate/request açar |
macro:cmd/ban_ip |
pending_gate'e yazar → gate/request açar |
macro:disable |
pending_gate'e yazar → gate/request açar |
Onaylama: /function ame_load:gate/yes
İptal: /function ame_load:gate/no
Auto-cancel: 30 saniye yanıt gelmezse otomatik
Gate executor'ları: ame_load:gate/exec/ban, gate/exec/ban_ip, gate/exec/disable
Yeni komutlar için ame_load:gate/exec/ altına executor yazılır, gate/yes.mcfunction'a dispatch satırı eklenir.
Storage Safety — storages.mcfunction
ame_load:load/storages'daki her alan artık execute unless data storage macro:engine X run ... guard'ı kullanıyor. Kasıtlı olarak sıfırlanan alanlar (fibers._pending, region_watches, batches) inline açıklama ile belgelenmiş.
macroEngine v4.0.0-fix2
Full Changelog: v4.0.0-fix1...v4.0.0-fix2
macroEngine v4.0.0-fix1
Full Changelog: v4.0.0...v4.0.0-fix1
macroEngine v4.0.0
✨ Yeni
Load Confirmation Gate (ame_load:load/confirm, yes, no, timeout)
ame_load:_ (Stage 0) artık ame_load:load/all'u direkt çağırmıyor.
Bunun yerine bir onay kapısı açıyor:
ame_load:load/confirm—#pending ame.loadflag'ini ayarlar, marker entity aracılığıyla talimatları yayınlar, 5 dakikalık timeout'u schedule'larame_load:load/yes— admin onayı, tam init pipeline'ını çalıştırırame_load:load/no— iptal,macro:enginestorage'a dokunulmazame_load:timeout— 5 dakika yanıt gelmezse otomatik iptal (load/no'ya delegate)
Problem çözülüyor:
minecraft:load tag'i hem /reload'da hem de dünya açılışında tetiklenir. Önceki davranış: mevcut session verisini (permissions, flags, wand binds, vb.) koşulsuz data modify ... set value ile üzerine yazıyordu → nondeterministic state + sessiz veri kaybı.
Yeni davranış: Onay gelmeden macro:engine storage'a hiçbir şey yazılmaz.
Marker Entity Pattern (say yerine tellraw)
Tüm gate mesajları summon marker → say → kill @s pattern'ini kullanıyor.
Neden: tellraw @a + clickEvent, server başlangıcında güvenilmez:
minecraft:loadtetiklendiğinde client connection pipeline henüz tamamlanmamış olabilir- Sıfır oyuncu online olabilir (unattended/headless server)
- Marker
say, server loguna doğrudan yazar — her koşulda çalışır
Dangerous Command Gate (ame_load:gate/)
Üç yıkıcı komut artık anında çalışmıyor — onay gerektiriyor:
| Komut | Değişiklik |
|---|---|
macro:cmd/ban |
pending_gate'e yazar → gate/request açar |
macro:cmd/ban_ip |
pending_gate'e yazar → gate/request açar |
macro:disable |
pending_gate'e yazar → gate/request açar |
Onaylama: /function ame_load:gate/yes
İptal: /function ame_load:gate/no
Auto-cancel: 30 saniye yanıt gelmezse otomatik
Gate executor'ları: ame_load:gate/exec/ban, gate/exec/ban_ip, gate/exec/disable
Yeni komutlar için ame_load:gate/exec/ altına executor yazılır, gate/yes.mcfunction'a dispatch satırı eklenir.
Storage Safety — storages.mcfunction
ame_load:load/storages'daki her alan artık execute unless data storage macro:engine X run ... guard'ı kullanıyor. Kasıtlı olarak sıfırlanan alanlar (fibers._pending, region_watches, batches) inline açıklama ile belgelenmiş.
macroEngine v3.0.4-fix3
Full Changelog: v3.0.4-fix2...v3.0.4-fix3
macroEngine v3.0.4-fix2
Full Changelog: v3.0.4-fix1...v3.0.4-fix2
macroEngine v3.0.4-pre1
✨ Yeni
macro:lib/string/* — StringLib Entegrasyonu
StringLib (CMDred, MIT) bağımlılık olarak bundle'landı. data/stringlib/ namespace ve Lantern Load altyapısı doğrudan pake eklendi.
AME namespace'inden erişim için macro:lib/string/ wrapper API'si eklendi:
| Fonksiyon | Input alanları | Output |
|---|---|---|
lib/string/concat |
list |
string.result |
lib/string/find |
string, find, n |
string.result (index listesi) |
lib/string/replace |
string, find, replace, n |
string.result |
lib/string/split |
string, separator, n, keep_empty |
string.result |
lib/string/insert |
string, insertion, index |
string.result |
lib/string/to_lowercase |
string |
string.result (A-Z) |
lib/string/to_lowercase_full |
string |
string.result (tam Unicode) |
lib/string/to_uppercase |
string |
string.result (a-z) |
lib/string/to_uppercase_full |
string |
string.result (tam Unicode) |
lib/string/to_number |
string |
string.result |
lib/string/to_string |
value |
string.result |
Tüm fonksiyonlar macro:input → stringlib:input → stringlib:output → macro:output string.result bridge pattern'ini kullanır. StringLib'in $(macro) variable beklediği fonksiyonlar için lib/string/internal/*_dispatch köprü dosyaları eklendi.
Load sırasında #StringLib.Init kontrolü yapılır; eksikse macro.debug tag'li oyunculara uyarı gösterilir.
v3.0.3 — 2026-04-11
✨ Yeni
Yeni Overlay: 1_20_5
1.20.5–1.20.6 (pack_format 48) için tam overlay.
math/mul_div — Overflow-safe a*b/c
v3.0.2 — 2026-04-10
✨ Yeni
Yeni Overlay: 1_20_3
1.20.3 / 1.20.4 (pack_format 26) için tam overlay. Load sistemi, scoreboardlar, storage'lar, damage type'lar, tüm modül dosyaları dahil.
queue/ — Multi-Cmd Kuyruk Yönetimi
| Fonksiyon | Açıklama |
|---|---|
queue/clear |
Tüm kuyruğu temizler |
queue/flush |
Kuyruktaki tüm komutları hemen çalıştırır |
queue/internal/exec_next |
Sıradaki komutu işler |
queue/internal/exec_as |
execute as context'iyle komut çalıştırır |
queue/internal/exec_fn |
Fonksiyon olarak kaydedilmiş komutu çalıştırır |
Trigger Yeniden Yazımı (Fix [#8])
trigger/bind, trigger/bind_cmd, trigger/disable, trigger/enable, trigger/list, trigger/unbind, trigger/unbind_all alt dosyaları kaldırıldı. Yerini unified trigger.mcfunction (dispatch hub) ve yeni trigger/execute.mcfunction + trigger/internal/dispatch.mcfunction aldı.
multi_cmd_adv.mcfunction
Base ve 1_20_3 overlay'ine cmd/other/multi_cmd_adv eklendi.
1_20_3 Hook Advancement'ları (Fix [#6])
break_block, dimension_change, entity_kill, hero_of_the_village, item_use, killed_by_arrow, placed_block, trade + hidden/root + template/task|goal|challenge
1_20_3 Hook Olayları (Fix [#7])
eat_food, fish_caught, interact_anvil, interact_shulker_box, player_death advancement'ları + internal handler'lar: on_eat, on_eat_fire, on_fish_caught, on_fish_fire, tick_scan güncellemesi
1_20_5 Hook Advancement'ları ve Olayları (Fix [#5])
Tüm hook advancement'ları + player_death. on_open_chest, tick_scan, on_interact_anvil, on_interact_shulker_box, raycast/loop, raycast/start, bind_exec, unbind_exec, on_advancement_fire, on_eat, on_fish_caught, on_fish_fire düzeltmeleri.
spyglass.json
Statik analiz yapılandırma dosyası eklendi.
🐛 Düzeltilen Hatalar
| Dosya | Düzeltme |
|---|---|
string/score_display (base) |
Yanlış çıktı düzeltildi |
tools/utils/input_check (base, 1_20_3) |
Doğrulama mantığı düzeltildi |
⚙️ Değişiklikler
pack.mcmeta:1_20_3overlay girişi eklendi;supported_formatsaralığı güncellendi- Tüm overlay'lerde versiyon stringleri
v3.0.2olarak güncellendi
v3.0.1 — 2026-04-09
✨ Yeni Fonksiyonlar
| Fonksiyon | Açıklama |
|---|---|
time/get_time |
Mevcut dünya zamanını (daytime, total, day) macro:output'a yazar |
time/time_phase |
Gün fazını döndürür (day / night / sunrise / sunset) |
hook/reset_all |
Tüm kayıtlı hook bind'larını temizler |
🐛 Düzeltilen Hatalar
| Hata | Düzeltme |
|---|---|
Fix [#4]: validate.mcfunction ve version_warn.mcfunction load sırasında yanlış versiyon string'i gösteriyordu |
Tüm overlay'lerde (1_20_3, 1_21_5, 1_21_6, compat_1_21_4, base) düzeltildi |
Fix [#3]: version.mcfunction overlay'lerde versiyon uyuşmazlığı |
Tüm overlay'lerde düzeltildi |
Fix [#2]: .gitignore yanlış dosyayı track ediyordu |
Düzeltildi |
Fix [#1]: .gitignore dosyası sorunu |
Düzeltildi |
docs/lib-player-cmd-string.md: Yanlış parametre anahtarı belgelenmiş |
Düzeltildi |
⚙️ Değişiklikler
cursor_item.mcfunction→cursor_item_exec.mcfunction'dan yeniden adlandırıldı; mantık sadeleştirildiinv/selected_item,inv/offhand_item,inv/chest_minecart_if_item,inv/chest_minecart_unless_item— macro parametre işleme güncellendi- Tüm overlay'lerde versiyon stringleri
v3.0.1olarak güncellendi
v3.0.0 — 2026-04-04
💥 Breaking Changes
rate_limitmodülü tamamen yeniden yazıldı. Eski alt fonksiyon tabanlı yapı kaldırıldı; artık saf scoreboard implementasyonu kullanılıyor (check/tick/configAPI).1_20_3,1_21_5,1_21_6overlay'lerindenrate_limitkaldırıldı — yalnızca base overlay üzerinden çalışıyor.
✨ Yeni
rate_limitmodülü:check,tick,config— sıfır alt fonksiyon, pure scoreboardadmin_systems.mcfunctiongüncellendi
⚙️ Değişiklikler
- Load sistemi tüm overlay'lerde yeniden yapılandırıldı
- Versiyon stringleri
v3.0.0olarak güncellendi
v2.2.9 — 2026-04-04
✨ New Features
| Module | Functions | Description |
|---|---|---|
cooldown/ |
pause, resume |
Freezes an active cooldown and restores it later with the original remaining duration |
player/ |
is_flying |
Checks if a named player is currently flying (abilities:{flying:1b}) |
string/ |
repeat + internal/repeat_1..16 |
Repeats a single character N times (1–16) into macro:output result |
v2.2.8 — 2026-04-03
✨ Yeni Fonksiyonlar
entity/
| Fonksiyon | Girdi | Çıkış | Açıklama |
|---|---|---|---|
entity/for_each_in_radius |
{player, type, radius, func} |
— | Belirtilen type entity'lerini player etrafındaki radius blok içinde iterate eder ve her biri için func'ı çalıştırır. entity/for_each'in radius filtreli versiyonu. |
player/
| Fonksiyon | Girdi | Çıkış | Açıklama |
|---|---|---|---|
player/is_on_ground |
{player} |
result (1b/0b), found |
macro:is_on_ground predicate ile oyuncunun yerde olup olmadığını kontrol eder. |
player/is_burning |
{player} |
result (1b/0b), found |
macro:is_burning predicate ile oyuncunun ateşte olup olmadığını kontrol eder. |
inv/
| Fonksiyon | Girdi | Çıkış | Açıklama |
|---|---|---|---|
inv/offhand_item |
{item, customData, invoke} |
— | Offhand slotunda belirtilen item + custom_data eşleşen tüm oyuncular için invoke'u çalıştırır. inv/selected_item (mainhand) ile aynı pattern. |
world/
| Fonksiyon | Girdi | Çıkış | Açıklama |
|---|---|---|---|
world/get_time |
— | daytime (0–23999), total, day |
Mevcut oyun saatini macro:output'a yazar. daytime: günün kaçıncı tick'i, total: toplam dünya yaşı, day: gün sayısı. |
v2.2.7 — 2026-04-02
✨ Yeni Fonksiyonlar
math/
| Fonksiyon | Girdi | Çıkış | Açıklama |
|---|---|---|---|
math/round |
{value, step} |
macro:output result |
value'yu en yakın step katına yuvarlar. Negatif değerler için sıfırdan uzağa yuvarlar. step ≤ 0 ise return fail. |
math/sign_nonzero |
{value} |
macro:output result |
Negatifler için -1, sıfır ve pozitifler için 1 döndürür. Yön çarpanı gereken durumlarda math/sign'ın sıfır üretmediği alternatifi. |
string/
macroEngine v3.0.4-fix1
Full Changelog: v3.0.4-pre1...v3.0.4-fix1