Personnalisation des Enderman

Depuis Minecraft 1.13 il est possible de choisir les blocs que les enderman peuvent prendre.

Qui n’a jamais râlé quand un enderman a volé un bloc en détruisant sa maison ou sa terraformation ? Jusqu’à maintenant il existait deux solutions pour y contrer. Mais depuis la 1.13, on peut contrôler avec précision les blocs prenables.

Anciennes solutions

Interdire le Grief

La première solution vient d’une gamerule disponible depuis la 1.4.2 :

				
					/gamerule mobGriefing false
				
			

Si cette commande a l’avantage d’empêcher les endermen de prendre des blocs, elle empêche également les villageois d’interagir avec le monde. Ce n’est donc pas l’idéal.

Les mains pleines

Une autre solution consiste à remplir les mains des endermen d’un objet invisible.

				
					/entitydata @e[type=Enderman,tag=!a] {carried:minecraft:piston_extension,Tags:["a"]}
				
			

Pour cela, on utilise une commande dans un bloc de commande en mode répétition ou dans une fonction chargée à chaque tick. Chaque enderman recevra une extension de piston et sera tagué afin de ne plus en recevoir. L’objet n’étant utilisé que par le jeu pour étendre les pistons, quand l’enderman est tué, l’objet disparaît, ne pouvant pas exister.

Utilisation de tags

Depuis la 1.13, il est possible de créer le tag enderman_holdable afin de lister tous les blocs prenables par les Endermen.

Voici le contenu du fichier du jeu :

				
					{
  "replace": false,
  "values": [
    "#minecraft:small_flowers",
    "minecraft:grass_block",
    "minecraft:dirt",
    "minecraft:coarse_dirt",
    "minecraft:podzol",
    "minecraft:sand",
    "minecraft:red_sand",
    "minecraft:gravel",
    "minecraft:brown_mushroom",
    "minecraft:red_mushroom",
    "minecraft:tnt",
    "minecraft:cactus",
    "minecraft:clay",
    "minecraft:pumpkin",
    "minecraft:carved_pumpkin",
    "minecraft:melon",
    "minecraft:mycelium",
    "minecraft:crimson_fungus",
    "minecraft:crimson_nylium",
    "minecraft:crimson_roots",
    "minecraft:warped_fungus",
    "minecraft:warped_nylium",
    "minecraft:warped_roots"
  ]
}
				
			

Pour personnaliser cette liste, il faut créer dans un datapack le fichier /data/minecraft/tags/blocks/enderman_holdable.json

Fonctionnement des tags

Un tag est un fichier json contenant une liste d’éléments sous forme de tableau. Cela permet par la suite d’exécuter des commandes sans lister toutes les variations. Par exemple, dans la recette du lit, il est possible d’utiliser n’importe quel bois et n’importe quelle couleur de laine. La recette utilise les tags pour connaître les variations possibles. Pour la laine par exemple, le fichier wool.json contient :

				
					{
  "replace": false,
  "values": [
    "minecraft:white_wool",
    "minecraft:orange_wool",
    "minecraft:magenta_wool",
    "minecraft:light_blue_wool",
    "minecraft:yellow_wool",
    "minecraft:lime_wool",
    "minecraft:pink_wool",
    "minecraft:gray_wool",
    "minecraft:light_gray_wool",
    "minecraft:cyan_wool",
    "minecraft:purple_wool",
    "minecraft:blue_wool",
    "minecraft:brown_wool",
    "minecraft:green_wool",
    "minecraft:red_wool",
    "minecraft:black_wool"
  ]
}
				
			

Les tags Minecraft ont un replace à false. Cela ajoute les valeurs listées au tag au lieu de les remplacer.

Il est temps de personnaliser tout ça

Ainsi, si nous souhaitons que nos Endermen puissent prendre des blocs de diamant en plus des blocs actuels, nous pouvons écrire : 

				
					{
  "replace": false,
  "values" : [
    "minecraft:diamond_block"
  ]
}
				
			

C’est un peu idiot j’en convient, c’était juste pour l’exemple. Si à l’inverse, nous souhaitons que les Endermen ne prennent que des fleurs, nous écrirons :

				
					{
  "replace": true,
  "values": [
    "minecraft:dandelion",
    "minecraft:poppy",
    "minecraft:blue_orchid",
    "minecraft:allium",
    "minecraft:azure_bluet",
    "minecraft:red_tulip",
    "minecraft:orange_tulip",
    "minecraft:white_tulip",
    "minecraft:pink_tulip",
    "minecraft:oxeye_daisy"
  ]
}
				
			

Note bien le « replace : true » qui indique à Minecraft d’ignorer les valeurs par défaut du jeu. Attention, cela écrasera aussi les valeurs des datapacks chargés avant. L’ordre de chargement des datapacks est donc important.

Enfin, tu l’auras peut-être compris, pour empêcher les Endermen de prendre des blocs, il suffit de créer un fichier avec une liste vide. Toujours dans ton datapack, créé le fichier /data/minecraft/tags/blocks/enderman_holdable.json avec ce contenu :

				
					{
  "replace": true,
  "values" : []
}
				
			

Téléchargement

Le datapack de ce tuto est disponible au téléchargement sur Dropbox :

Pour aller plus loin

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

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

Boutique en jeu

Maintenant que nous avons vu comment créer des lootboxes et mettre en place une monnaie, nous pouvons créer la boutique.

Onglet de gestion des comptes Google (avec plusieurs comptes)
Gsuite

Google : connexion multi-comptes

Nous pouvons avoir accès à plusieurs comptes Google, qu’il s’agisse de comptes Gmail ou Gsuite, il peut être utile de paramétrer notre navigateur pour changer de compte en un clic.

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