搓整合包时发现居然不存在"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

如有更好的方法欢迎在评论区提出