ModularMachinery Wiki(ZH)/NBT 检查 & 设置 【进阶】:修订间差异

分类:ModularMachinery
(rp)
(分类:ModularMachinery)
 
(未显示同一用户的2个中间版本)
NBTTag会保存关于物品的属性信息,当定义一个物品作为配方的输入物品或者是在配方的物品输出上设置特定的NBTTag时你可能需要对其进行检查
 
NBTTag可以是复杂的也可以是递归的。检查它的话你只需要检查一个特定的NBT值是否存在,或者说也可以检查NBTTag中的被检查的数字数字是否在特定范围内。所以大部分的Tag可能根本就没必要检查。
检查或者设置NBTTag不总是对玩家可用的。所以在你做出复杂的NBT行为检测时需要注意这点。
 
检查或者设置NBTTag不总是对玩家可用的。所以在做出复杂的NBT行为检测时需要注意这点。
你可以使用/mm-hand来获得你手上的itemstack的NBTTag。在信息栏中给你返回的信息也会以预设好的JSON格式复制到你的剪贴板上。(如果可以)
 
你可以使用/mm-hand来获得你手上的itemstack的NBTTag。在信息栏中给你返回的信息也会以预设好的JSON格式复制到你的剪贴板上。(如果可以)
NBT检查方法是懒检查(lazy-checks),所以mod只检测你指定的NBT数据是否存在/可用。该模组会忽略itemstack中的其他tag/entries。要被检查的NBTTag在带有Tag为"nbt"的物品输入/输出定义中要定义为JSON。(样例在下)
 
NBT检查方法是懒检查(lazy-checks),所以mod只检测你指定的NBT数据是否存在/可用。该模组会忽略itemstack中的其他tag/entries。要被检查的NBTTag在带有Tag为"nbt"的物品输入/输出定义中要定义JSON形式。(样例在下)
在NBTTag中定义字符串时,你也可以把它定义为一个正则表达式。(请留意你给字符串定义的内容,因为它不仅会用来与ItemStack上的字符串匹配,它还会被设置在ItemStack中用于在JEI中预览。)
 
当在NBTTag中定义一个数字时,你可以直接使用"<","<=","==","=>",">"作为定义的数字的前缀,这样就可以不只可以检查定义数字是否等于ItemStack上的数字了呢。
在NBTTag中定义字符串时,你也可以把它定义为一个正则表达式。(请留意你给字符串定义的内容,因为它不仅会用来与ItemStack上的字符串匹配,它还会被设置在ItemStack中用于在JEI中预览。)
当在NBTTag中定义一个数字时,你可以直接使用"<","<=","==","=>",">"作为定义的数字的前缀(即设定检查范围),这样就可以不只可以检查定义数字是否等于ItemStack上的数字了
 
即使只是为了检查/匹配NBTTag或它的值和可能的输入物品,在输入中定义的NBTTag也会在建立JEI的预览时直接应用到ItemStack中。为了在匹配字符串时使用正则表达式,并使JEI的预览不出错,你可以为物品添加定义一个"nbt-display"entries,同时在与"nbt"并列的地方你可以删除所有的NBT检查,比如正则表达式,因为在将NBTTag标签应用于JEI中的配方预览的ItemStack时NBTTag会优先"nbt"。
 
</syntaxhighlight>
此配方中只有输入物品是个盛装有大于等于1000mb的"ic2uu_matter"的Forge-Bucket物品时输入才会成功运行配方
 
样例 #2:
 
Tr:[[Eicy]]
[[分类:Mod作品ModularMachinery]]
优秀编辑者、​界面管理员、​监督员、​管理员
1,747

个编辑