Minecraft 23w31a 让全球命令玩家狂欢的第三次技术革命

第一次技术革命-1.8 加入execute
第二次技术革命-1.13 命令系统重构+性能优化
命令历经13余年的发展,由最初的脉冲方块演变为三色命令方块,即1.9加入的循环与链,这也是命令方块拥有朝向的版本,并且自成一个体系(依然能被红石激活);再到1.12的由方块转为本地拥有.mcfunction后缀名的函数文件,至此不再依赖出生点区块;随后到今年8.1更新的23w31a快照,拥有了传参功能(宏),这让以往一板一眼的编码工作变得非常有趣(终于又向正统语言迈了一步),以前因为机制问题不得不使用复杂逻辑实现的功能,以及所有算法库,都因为宏的出现可以大面积重构逻辑了,让所有的系统都“瘦”了一大圈,据说当天discord的命令群都炸锅了,有的cber激动得想给MJ的开发者银行卡里打钱,啊,不要可以给我(其实全球的圈子应该都炸了)
这次的高光必然当属macro(宏),不过聊它之前,再来看看这次技术性更新的另一位

random命令
具体格式:
/random value|roll <range> [<sequenceId>]
/random reset *|<sequenceId> [<seed>] [<includeWorldSeed>] [<includeSequenceId>]
能够设置迭代区间以及序列,并且能够重置种子,这个随机命令直接让不少随机数前置包都退休了

然后就是主角macro了,这玩意儿具体用法可以参考在B站投稿了视频教程的cber们,这里就简单说一下
官方更新日志::

翻译总结:在版本号为16的数据包中,.mcfunction文件里,若一行命令以$为起始符号,则表示该行为宏命令,该行后续的代码中必须要存在一个或多个取值表达式,并且一定要有对应的值被传入。
允许传入Compound,这个分支是需要手写数据的,有人说这不没啥用处么,不不不,错了,这个分支其实可以帮助开发者封装数据,以后逻辑就不用改了,直接改数据即可。
另外一个分支即with后跟数据源,最后接路径表达式。数据源即block、entity、storage三选一,path即普通的json路径,需要注意的是目前这个传入参数依然是有很多限制的,希望后续能完善
macro这个东西上限是非常恐怖的,怎么用就看各位的想象力了,目前已经能玩出不少花样了,期待MJ未来的动作。