An item requirement is a set of criteria that an item must meet. They currently support checking:
Item IDs and tags
Item count (though most things don't check this)
durability
enchantments (including enchanted books)
potion type (for potion items)
nbt
These are modeled after Vanilla's item predicates, and are structured like so:
{
// The items or item tags
"items": [
"minecraft:iron_chestplate",
"#forge:armors/helmets"
],
// Isn't used in most cases, but Vanilla's item predicates have it
"count": {
"min": 2,
"max": 8
},
// Remaining durability on the item
"durability": {
"min": 100,
"max": 150
},
// Also supports tags, but there aren't any enchantment tags in Vanilla
"enchantments": [
{
"enchantment": "minecraft:flame",
"levels": {
"min": 1,
"max": 2
}
},
// "levels" field is optional. Any level of "infinity" is accepted
{
"enchantment": "minecraft:infinity"
}
],
// The item's remaining durability must be within these bounds
"durability": {
"min": 1,
"max": 100
},
// The item must be a lengthened fire resistance potion
"potion": "minecraft:long_fire_resistance",
// The item must have these NBT tags
"nbt": {
"SomeTag": true,
"SomeOtherTag": "1-10"
// NBT tags can be nested
"SomeNestedCompoundTag": {
"ThisTagValue": 42,
"ThisTagName": "Ramphord Yortold"
}
}
}