2.1 物品的表示——ItemStack和Ingredient

关于ProbeJS提示

带有🔎符号的段落代表该段内容ProbeJS中有语言文档,或使用ProbeJS编写较为简便。


一、ItemStack

顾名思义,ItemStack可以代表一组物品。

🔎 以下为一些实例:

例子

解释

Item.of("minecraft:diamond")

1个铁锭

Item.of("minecraft:diamond").withCount(6)

4个铁锭

Item.of("minecraft:iron_ingot").withCount(5).withName("KubeJS魔改教程")

5个名字为"KubeJS魔改教程"的铁锭

Item.of("minecraft:diamond_sword").ignoreNBT()

忽略了NBT的钻石剑(多用于忽略物品耐久、附魔等属性)

Item.of("minecraft:enchanted_book", {StoredEnchantments:[{lvl:1,id:"minecraft:sweeping"}]})

横扫之刃I附魔书(直接添加NBT例子)

Item.of("minecraft:enchanted_book").enchant("minecraft:sweeping", 1)

横扫之刃I附魔书(使用函数添加NBT例子)

Item.of(/create:.*/)

所有机械动力物品(正则表达式)

...

...

在KubeJS中,你可以直接使用物品ID来表示单个物品,例如"minecraft:diamond_sword"代表一把钻石剑。

你还可以在物品前加上倍数来表示物品个数,例如"5x minecraft:cobblestone"代表5个圆石。

二、Ingredient

Ingredient类似于一个集合,它能够代表其所包含的所有物品,包括但不限于tag、物品列表......

以下为一些实例:

例子
意义

Ingredient.of("#minecraft:logs")

代表tag:#minecraft:logs

Ingredient.matchAny["minecraft:diamond", "@tinkersconstruct"])

获得一个包含当前筛选条件的物品组

...

...

Ingredient.of()可以接受很多类型的输入并返回对应的Ingredient,包括正则表达式,tag(如上例),Ingredient[],模组名称(如@xplus

另请参阅:ItemStackJS (kubejs.com)IngredientJS (kubejs.com)旧版本教程 2.1物品表示


我们将在后续章节中详细讲解ItemStack。

最后更新于