Boutique : vendeur villageois

Avant les recettes personnalisées, on utilisait des vendeurs villageois. Ils sont toujours utiles pour les objets utilisant des tags.

Pour l’exemple, nous allons mettre en place un vendeur de fruits décoratifs. Il s’agit en fait de têtes personnalisées.

Invocation

Commençons par créer la fonction d’invocation du Villageois. Dans le dossier des fonctions de la boutique, je créé un dossier villagers. Il contiendra les fonctions pour invoquer les vendeurs. Je créé ensuite la fonction fruits, pour un vendeur de fruits.

La commande d’invocation est assez simple :

				
					summon villager ~ ~1 ~

				
			

Nous invoquons simplement un villageois à l’endroit où est lancée la fonction avec la commande :

				
					/function mangarmor:shop/villagers/fruits

				
			

Personnalisations maintenant le villageois. Nous pouvons continuer la commande avec des données de villageois. Celles-ci peuvent définir sa profession, son niveau de métier ainsi que son biome. Pour aider à choisir, on peut consulter la liste des vêtements sur le wiki Minecraft.

				
					summon villager ~ ~1 ~ {VillagerData:{profession:farmer, level:5, type:plains}}
				
			

Pour simplifier la génération de la commande, on peut utiliser des sites comme DigMinecraft ou Minecraft Command Science.

Décoration : la pomme

Création d'une offre de villageois sur le site DigMinecraft
Création d'une offre de villageois sur le site DigMinecraft

J’utilise DigMinecraft pour générer la commande. Minecraft Command Science propose d’autres options mais la commande générée n’est pas compatible avec Minecraft 1.16.

J’indique donc une offre pour échanger 5 émeraudes contre une tête de joueur. Nous indiquerons plus tard la texture pour obtenir une pomme. Voici la commande générée :

				
					summon villager ~ ~1 ~ {VillagerData: profession:farmer, level:5, type:plains}, Invulnerable:1, PersistenceRequired:1, CustomName:"Fruits", Offers:{Recipes:[{buy:{id:emerald,Count:5}, sell:{id:player_head,Count:1,tag:{display:{Name:"\"Pomme\""}}}, rewardExp:0b, maxUses:9999999}]}}
				
			

Il est temps de chercher une tête en forme de pomme. Pour cela, j’utilise le site Minecraft Heads. Voici le code indiqué pour Minecraft 1.16 :

				
					/give @p minecraft:player_head{display:{Name:"{\"text\":\"Apple\"}"}, SkullOwner:{Id:[I;1773962895,-939242600,-1676573066,1848849180], Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxMTI3ZDIyNjc1YzVjNzY5YTBjMDhiNTcyMDE4ZDI5OWM4MzA0NmY4ZTFmOTQzZWQ5ZDUxYmUwM2IwNyJ9fX0="}]}}} 1
				
			

Ce qui nous intéresse ici, c’est la partie SkullOwner. Elle comporte un id et surtout les textures de la tête. Nous allons copier toute la partie SkullOwner dans la commande d’invocation du vendeur, dans la partie tag, juste après le display.

				
					summon villager ~ ~1 ~ {VillagerData:{profession:farmer, level:5, type:plains}, Invulnerable:1, PersistenceRequired:1, CustomName:"Fruits", Offers:{Recipes:[{buy:{id:emerald,Count:5}, sell:{id:player_head,Count:1,tag:{display:{Name:"{\"text\":\"Pomme\"}"}, SkullOwner:{Id:[I;1773962895,-939242600,-1676573066,1848849180], Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxMTI3ZDIyNjc1YzVjNzY5YTBjMDhiNTcyMDE4ZDI5OWM4MzA0NmY4ZTFmOTQzZWQ5ZDUxYmUwM2IwNyJ9fX0="}]}}}},rewardExp:0b,maxUses:9999999}]}}
				
			

Décoration : la pêche

Comme pour la pomme, nous allons ajouter une offre. Pour cela, je copie l’offre de la pomme. Je change le nom en pêche et modifie l’id et les textures par ceux trouvés sur Minecraft Heads. J’ajoute donc ce bloc de code dans les offres :

				
					{buy:{id:emerald,Count:5}, sell:{id:player_head,Count:1,tag:{display:{Name:"{\"text\":\"Pêche\"}"}, SkullOwner:{Id:[I;436418374,257114978,-1779699401,1303019964], Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg0MDRjZmU3YWQxMTY2ODFiNDg1MGI4OTk5OGFjZjAzY2ViZTQ2ODVjYzc2NjM4OTMwNjUyZGM0YWZjMzc2MiJ9fX0="}]}}}},rewardExp:0b,maxUses:9999999}
				
			

Persistance et immobilité

Comme tu as pu le remarquer, le villageois est invulnérable et ne peut pas disparaître. Toutefois, il court partout. Pour l’empêcher de bouger, on peut cocher la case NoAI du générateur. Cela ajoutera le paramètre NoAI:1 à la commande. Le villageois sera incapable de bouger mais ne sera pas soumis à la gravité.

Une autre solution est de rendre nulle la vitesse de déplacement du villageois. Pour cela, on passe l’attribut movement_speed à 0 en ajoutant cette petite ligne :

				
					Attributes:[{Name:"generic.movement_speed",Base:"0f"}]
				
			

Voici donc le code complet de mon vendeur :

				
					summon villager ~ ~1 ~ {VillagerData:{profession:farmer,level:5,type:plains}, Invulnerable:1, PersistenceRequired:1, Attributes:[{Name:"generic.movement_speed",Base:"0f"}], CustomName:"Fruits", Offers:{Recipes:[{buy:{id:emerald,Count:5}, sell:{id:player_head,Count:1,tag:{display:{Name:"{\"text\":\"Pomme\"}"}, SkullOwner:{Id:[I;1773962895,-939242600,-1676573066,1848849180],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxMTI3ZDIyNjc1YzVjNzY5YTBjMDhiNTcyMDE4ZDI5OWM4MzA0NmY4ZTFmOTQzZWQ5ZDUxYmUwM2IwNyJ9fX0="}]}}}},rewardExp:0b,maxUses:9999999}, {buy:{id:emerald,Count:5}, sell:{id:player_head,Count:1,tag:{display:{Name:"{\"text\":\"Pêche\"}"}, SkullOwner:{Id:[I;436418374,257114978,-1779699401,1303019964], Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg0MDRjZmU3YWQxMTY2ODFiNDg1MGI4OTk5OGFjZjAzY2ViZTQ2ODVjYzc2NjM4OTMwNjUyZGM0YWZjMzc2MiJ9fX0="}]}}}},rewardExp:0b,maxUses:9999999}]}}
				
			

Il ne me reste plus qu’à créer d’autres vendeurs avec de nouvelles fonctions. Pour ajouter le vendeur dans ma boutique, j’utilise la commande indiquée en début d’article :

				
					/function mangarmor:shop/villagers/fruits
				
			

Téléchargement

Le datapack est disponible au téléchargement. Il contient un deuxième vendeur qui échange également un objet contre des émeraudes.

Pour aller plus loin

Voici d’autres articles qui pourraient t’intéresser :

Recette personnalisée d'étiquette
Minecraft

Recettes personnalisées

Que ce soit pour réintégrer des recettes disparues, ou en créer de nouvelles, voyons comment mettre en place des recettes personnalisées.

Minecraft

Commandes aléatoires

Il peut parfois être utile de générer de l’aléatoire dans Minecraft pour envoyer un texte à un joueur, permettre à un pnj de proposer diverses offres, ou encore modifier la réaction du jeu en fonction de l’heure.

Loot boxes dans une boutique sur serveur Minecraft
Minecraft

Création de loot boxes

Le serveur Mang’Armor s’est démarqué en proposant aux joueurs des coffres disponibles grâce aux progrès. Nous allons voir aujourd’hui comment mettre en place ces boites au contenu aléatoire.

2 réponses

  1. Salut 🙂

    Merci pour ces tutos. Je me suis lancé récemment dedans et ils m’aident pas mal.
    Serait-il possible d’en avoir un concernant le vendeur itinérant?
    Ses ventes sont toujours a chier et je voudrais personnaliser un peu le truc.
    Merci

    1. Bonjour,

      Je suis heureux que mes articles te soient utiles. J’avais effectivement prévu un sujet sur le Wandered trader mais j’ai préféré traiter des progrès et de la génération de terrain avant. J’ai fais une pause dans la rédaction des articles manquant d’idées de sujets. Je note donc ça pour le prochain article qui devrait paraître le mercredi 7 octobre.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Sommaire

Partager

Partager sur facebook
Facebook
Partager sur twitter
Twitter