1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Ajouter un tag a un item qu'on vient de le mettre dans l'inventaire

Discussion dans 'Redstone & Commands blocks' créé par DemonForce, 28 Juil 2020.

  1. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    Bonjour à tous, je suis entrain de créer une map aventure mais j'ai un petit souci, quand un joueur vient de mettre un item dans son inventaire qu'il a recupéré lors d'un craft par exemple. J'aimerais qu'on ajoute le tag CanPlaceOn sur cet item qu'on vient de le mettre dans son inventaire.

    J'ai essayé avec les /data (mais je ne suis pas fort là-dessus et je recevais des erreurs comme l'erreur de "Liste attendue")

    Si quelqu'un aurait une solution, je suis preneur !
    Merci d'avance !
     
  2. Chelocad

    Chelocad Bûcheron

    Inscrit:
    24 Avr 2020
    Messages:
    100
    Points:
    39
    Salut,

    Si j'ai bien compris: tu veux que quand un joueur craft un block, ce block puisse être placé sur un autre de ton choix. dis moi si je me trompe

    Pour ce qui est du /data il serai préférable que tu donne les command exacte que tu as utilisé,
    mais je suppose que tu as fait un /data pour modifier un item dans l'inventaire de tout les joueur or c'est inventaire est sous forme de liste d'ou cette possible erreur "liste attendue".

    Il serait également pratique que tu communiques la version de ton jeu (du coup je suppose que tu es en 1.16).

    Je peux te proposé une solution mais en fonction du bloque et de la façon dont on le récupère il faut procéder différemment. Je m'explique si il s'agit d'un block à récupérer uniquement alors je peut te proposé une solution très simple si il peut aussi être crafté alors il va falloir être plus innovant. Mais je te rassure dans tout les cas j'aurais très probablement une solution.
     
  3. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    Bonsoir, effectivement je suis bien en 1.16, pour le systeme que je souhaite faire doit fonctionner sur toutes types d'items (outils, blocs...).
    La commande que j'avais essayé est :

    /data modify entity @a[limit=1] Inventory[{id:"minecraft:gold_block"}] append value {CanPlaceOn:["minecraft:diamond_block"]}

    Où je souhaite ajouter sur un item (qui est dans inventaire d'un joueur) qui est un block d'or le tag CanPlaceOn (sur bloc de diamant) mais je reçois une erreur ci contre :

    Liste attendue, value reçue : {Slot:0b,id:"minecraft:gold_block",Count:5b}


    Sinon, je pense avoir trouvé une solution mais il me faut un moyen de clear le block d'or n'ayant pas le tag CanPlaceOn, es-ce possible ?
     
  4. Chelocad

    Chelocad Bûcheron

    Inscrit:
    24 Avr 2020
    Messages:
    100
    Points:
    39
    Ok je comprend mieux.

    si tu reçois cette erreur c'est par ce que Inventory[{id:"minecraft:gold_block"}] n'est pas une liste et renvoie donc le premier élément de la liste Inventory (on peut lire que dans ton premier slot tu avais 5 block d'or).

    Malheureusement il est impossible de modifier les data des items quand ils sont dans l'inventaire d'un joueur et je ne connais pas la command pour supprimé les items qui on un tag en particulier (et je doute qu'elle existe).

    J'ai 2 idée pour palier à ce problème:
    - modifier les data des items lancé
    - clear tout les item et les redonnés 1 à 1 avec les bonnes data (long et peu pratique)
     
  5. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    D'accord, merci beaucoup pour ton aide, j'avais trouve une solution grâce au "SelectedItem"
    (/replaceitem @a[SelectedItem=gold_block] waipon.hand gold_block{CanPlaceOn:diamond_block} (je l'ai écrit vite fait)) où on peut remplacer les items sélectionnés par un joueur, ce qui est pas très pratique dans certains cas...

    Peut être que je peux opter pour la solution du clear item dans les crafts ou on a pas a les refaire après.

    Sinon pour la solution où on peut modifier les datas dans les items lancés, je l'ai récemment découvert, je vais peut être la mettre en place dans ma map (avec quelques exceptions je pense où j'utiliserai le SelectedItem)

    Encore, merci à toi pour ton aide :lol:
     
  6. Chelocad

    Chelocad Bûcheron

    Inscrit:
    24 Avr 2020
    Messages:
    100
    Points:
    39
    tiens je t'ai fais un datapack qui permet remplacer les block en or par des block en or posabale sur de block en diamant mais le remplacement se fait 1 par 1 et à condition d'avoir crafter au moins un block en or. Il modifie également les block dropés.
     

    Fichiers attachés:

  7. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    Super merci beaucoup ! Je vais regarder ça demain :smile:
     

Partager cette page