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 :

Sommaire

Partager

Partager sur facebook
Facebook
Partager sur twitter
Twitter

Laisser un commentaire

Votre adresse de messagerie 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.