3 votes

Effacer les objets nommés (et colorés) de l'inventaire des joueurs 1.13

En 1.12, la commande :

clear @p paper 0 1 {display:{Name:"[Winning Ticket] Musical Minecarts",Lore:[" Take this ticket to the reward "," collections at the entrance of the ", " Games area to claim your prize! "]}}

retire de l'inventaire du joueur un morceau de papier portant ce nom et cet héritage spécifiques. J'ai supposé que la conversion de la 1.13 le serait :

 execute at @p as @p run clear @s paper{display:{Name:"[Winning Ticket] Musical Minecarts",Lore:[" Take this ticket to the reward "," collections at the entrance of the ", " Games area to claim your prize! "]}} 1

mais cela ne fonctionne pas. En plus de cela, la commande :

give @p minecraft:paper{display:{Name:"[Winning Ticket] Musical Minecarts",Lore:[" Take this ticket to the reward "," collections at the entrance of the ", " Games area to claim your prize! "]}} 1

ne donne que l'objet, sans le nom d'affichage personnalisé, bien que l'histoire soit correcte. Quelle est la syntaxe correcte pour ces deux commandes ?

1 votes

Quels sont les messages d'erreur ?

5 votes

2voto

Niall Smart Points 348

Le changement pertinent ici concerne les noms des éléments. Au lieu d'être de simples chaînes, ils utilisent des composants texte JSON -- le même format que vous verriez dans /tellraw mais regroupés en une ficelle. Cela vous permet d'utiliser des couleurs ou des traductions dans vos noms d'articles.

Ce sont deux façons valables de formater le texte JSON :

  • "[Winning Ticket] Musical Minecarts"
  • {"text":"[Winning Ticket] Musical Minecarts"}

Lorsque vous les placez dans un nom d'élément, tout cela est mis dans une chaîne littérale, vous devrez donc échapper les guillemets comme suit :

  • Name:"\"[Winning Ticket] Musical Minecarts\""
  • Name:"{\"text\":\"[Winning Ticket] Musical Minecarts\"}"

Cependant, effacer un élément par son nom est généralement une mauvaise idée. Les éléments donnés peuvent avoir n'importe quel type de NBT arbitraire, et vous pouvez simplement vérifier cela dans la fonction /clear .

give @p paper{ticket:1b,display:{Name:"\"[Winning Ticket] Musical Minecarts\"",Lore:[" Take this ticket to the reward "," collections at the entrance of the ", " Games area to claim your prize! "]}}
clear @p paper{ticket:1b} 1

0 votes

Ah, tu avais 4 minutes d'avance sur moi. :D Intéressant, je ne savais pas que les chaînes de caractères simples fonctionnaient toujours si on les faisait "comme ça". Upvote !

0voto

Fabian Röling Points 19325

Tout d'abord j'ai supprimé un espace inutile de la commande, ils sont susceptibles de casser NBT. De plus, vous êtes sûr de vouloir mettre un espace au début et à la fin de chaque ligne de l'histoire ?

Obtenir le NBT d'un objet est maintenant facile dans la 1.13 : jetez-le par terre et exécutez par exemple /data get entity @e[type=item,distance=..10,limit=1] . Vous pouvez même spécifier un chemin derrière lui, comme Item.tag .

La NBT de la commande souhaitée peut alors être simplement copiée à partir de la sortie, à l'exception d'une bug qui lui-même insère des espaces dans le NBT. De plus, vous devez maintenant vous donner l'élément avec une syntaxe différente, car les noms des éléments sont maintenant un composant JSON au lieu d'une simple chaîne. Cela signifie que vous pouvez également le colorer, le mettre en gras, le traduire, l'obscurcir, etc.

Nouveau give le même principe s'applique à la syntaxe clear :

/give @s paper{display:{Name:"{\"text\":\"[Winning Ticket] Musical Minecarts\"}",Lore:[" Take this ticket to the reward "," collections at the entrance of the "," Games area to claim your prize! "]}}

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X