Estoy tratando de hacer un datapack que utiliza el started_riding
gatillo de avance. Necesito ayuda para concretar los detalles de cómo hacer el predicado que quiero. Quiero que el avance sólo se dé si un jugador empieza a montar un caballo que tenga una silla con un encantamiento específico (Lealtad).
Resumen del trabajo realizado para averiguarlo por mi cuenta:
He sido capaz de filtrar con éxito para el caballo que llevaba la armadura con el encantamiento como:
"predicate": {
"vehicle": {
"type": "minecraft:horse",
"equipment": {
"chest": {
"items": [
"leather_horse_armor",
"iron_horse_armor",
"golden_horse_armor",
"diamond_horse_armor"
],
"enchantments": [
{
"enchantment": "loyalty",
"levels": 3
}
]
}
}
}
}
pero no he visto un campo equivalente a equipment.chest.items que me permita acceder al item silla de montar a través de la interfaz de criterios. Así que creo que tengo que ir a través de etiquetas nbt, pero no he sido capaz de conseguir que funcione. Mis intentos más recientes fueron
"predicate": {
"vehicle": {
"type": "horse",
"nbt": "{SaddleItem:{id:\"saddle\", tag:{Enchantments:[{id:\"loyalty\", lvl:3s}]}}}"
}
}
También probé
"nbt": "{\"SaddleItem\":{\"id\":\"saddle\", \"tag\":{\"Enchantments\":[{\"id\":\"loyalty\", \"lvl\":3s}]}}}"
porque todavía no tengo claras las reglas de las citas de escape, pero ninguna de las dos funcionó. Cuando me SaddleItem
datos en el juego (a través de /data get entity @e[type=horse,sort=nearest,limit=1] SaddleItem
) Me devuelve este objeto:
{
id:"minecraft:saddle",
Count:1b,
tag: {
RepairCost: 1,
Enchantments: [
{
lvl: 3s,
id: "minecraft:loyalty"
}
]
}
}
y que parece reflejar lo que estaba introduciendo como los datos nbt así que no estoy seguro de a dónde ir desde allí. También traté de añadir en el Count
y RepairCost
campos pero eso no pareció ayudar y creo que no debería necesitarlo?
Cualquier orientación sobre cómo formar el started_riding
predicado para seleccionar un caballo que lleve una montura encantada por la lealtad es muy apreciado.