Minecraft 23w31a 讓全球命令玩家狂歡的第三次技術(shù)革命

第一次技術(shù)革命-1.8 加入execute
第二次技術(shù)革命-1.13 命令系統(tǒng)重構(gòu)+性能優(yōu)化
命令歷經(jīng)13余年的發(fā)展,由最初的脈沖方塊演變?yōu)槿罘綁K,即1.9加入的循環(huán)與鏈,這也是命令方塊擁有朝向的版本,并且自成一個體系(依然能被紅石激活);再到1.12的由方塊轉(zhuǎn)為本地擁有.mcfunction后綴名的函數(shù)文件,至此不再依賴出生點區(qū)塊;隨后到今年8.1更新的23w31a快照,擁有了傳參功能(宏),這讓以往一板一眼的編碼工作變得非常有趣(終于又向正統(tǒng)語言邁了一步),以前因為機制問題不得不使用復(fù)雜邏輯實現(xiàn)的功能,以及所有算法庫,都因為宏的出現(xiàn)可以大面積重構(gòu)邏輯了,讓所有的系統(tǒng)都“瘦”了一大圈,據(jù)說當(dāng)天discord的命令群都炸鍋了,有的cber激動得想給MJ的開發(fā)者銀行卡里打錢,啊,不要可以給我(其實全球的圈子應(yīng)該都炸了)
這次的高光必然當(dāng)屬macro(宏),不過聊它之前,再來看看這次技術(shù)性更新的另一位

random命令
具體格式:
/random value|roll <range> [<sequenceId>]
/random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]
能夠設(shè)置迭代區(qū)間以及序列,并且能夠重置種子,這個隨機命令直接讓不少隨機數(shù)前置包都退休了

然后就是主角macro了,這玩意兒具體用法可以參考在B站投稿了視頻教程的cber們,這里就簡單說一下
官方更新日志::

翻譯總結(jié):在版本號為16的數(shù)據(jù)包中,.mcfunction文件里,若一行命令以$為起始符號,則表示該行為宏命令,該行后續(xù)的代碼中必須要存在一個或多個取值表達式,并且一定要有對應(yīng)的值被傳入。
允許傳入Compound,這個分支是需要手寫數(shù)據(jù)的,有人說這不沒啥用處么,不不不,錯了,這個分支其實可以幫助開發(fā)者封裝數(shù)據(jù),以后邏輯就不用改了,直接改數(shù)據(jù)即可。
另外一個分支即with后跟數(shù)據(jù)源,最后接路徑表達式。數(shù)據(jù)源即block、entity、storage三選一,path即普通的json路徑,需要注意的是目前這個傳入?yún)?shù)依然是有很多限制的,希望后續(xù)能完善
macro這個東西上限是非??植赖?,怎么用就看各位的想象力了,目前已經(jīng)能玩出不少花樣了,期待MJ未來的動作。