Skip to content

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。

贡献者

页面历史

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON 开启
开启聚光灯。
OFF 关闭
关闭聚光灯。