1 votos

Predicado de avance del datapack de Minecraft para los objetos del caballo (silla encantada)

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.

2voto

turtlemcnuggets Puntos 31

Parece que me faltaba el minecraft: identificador de espacio de nombres antes de los campos id de silla y fidelidad. Parece que especificar el espacio de nombres predeterminado de Minecraft no es necesario para los campos de avance, pero sí para las etiquetas nbt.

Un predicado nbt funcional para detectar la silla encantada es:

"nbt": "{SaddleItem:{id:\"minecraft:saddle\", tag:{Enchantments:[{id:\"minecraft:loyalty\", lvl:3s}]}}}"

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X