搓整合包时发现居然不存在"forge:food"这个标签,翻阅了许多资料都无果,最后自己摸索出来了一个方法
(kubejs-forge-1902.6.1-build.352)
直接上代码(ServerEvents.tags内)
//food
Ingredient.all.getItemIds().forEach(i => {
if(Item.of(i).edible)event.add('treasurebag:food', i);
})
其实就是遍历所有物品逐个用edible判断是否可食用
对一些id具有统一特征的物品,也可以使用正则表达式,/.*xxx.*/代表包含xxx的所有字符串
//spawn_egg
event.add('treasurebag:spawn_egg', /.*spawn_egg.*/);
但是要注意,mod作者命名的时候也可能会出点小意外
比如新生魔艺的魔符
(这些魔符其实同属于一个'%ars_glyphs'的创造物品栏位,但是这玩意填进add函数里不顶用。。)
//glyph
event.add('treasurebag:glyph', /.*glyph.*/);
event.add('treasurebag:glyph', 'ars_nouveau:burst');//爆发魔符的id显然是少了点什么
event.remove('treasurebag:glyph', 'ars_nouveau:blank_glyph');//尚不明确有什么用处的空白魔符
各种仪式之板
//ritual
event.add('treasurebag:ritual', /.*ritual.*/);
event.remove('xxx:ritual', 'ars_nouveau:ritual_brazier');//去掉仪式火盆的tag
如有更好的方法欢迎在评论区提出