Voici (comme l'indique le titre) trois systèmes différents qui vous permettrons de ne pas vous faire taper par un mob.
Le premier est relativement simple, et probablement le plus connu. Il s'agit de mettre les entités (mobs ciblés et joueur) dans une même , et d'empêcher les membres de cette équipe de se battre. Pour cela, il faut déjà créer cette équipe :
/scoreboard teams add Friends
Puis on modifie une règle de cette équipe : la règle qui autorise le combat. Lorsqu'elle est en
False, les dégâts sont interdits.
/scoreboard teams option Friends friendlyfire false.
Ensuite on n'oublie pas d'ajouter les membres de cette équipe. Pour ajouter une entité à l'équipe créée (avec le nom Friends dans cet exemple), on tape
/scoreboard teams join Friends entity, en remplaçant
entity par
@p pour le joueur le plus proche,
@e pour toute les entités du monde, etc. (vous pouvez personnaliser le sélecteur
ici).
Par exemple, en ajoutant un nommé Bob2 dans une équipe (que j'ai coloré en bleu pour la mettre en évidence), j'obtient ce résultat :
Mais cette solution a un inconvénient (eh oui, il y a toujours un
"mais") : les ne sont pas affectés par cette méthode, allez savoir pourquoi. Du coup on utilise un de leur tag NBT qui définit leur puissance de frappe (ou le nombre de pv qu'ils vous enlèvent). Pour cela il suffit d'entrer une commande dans un :
/entitydata entity {Attributes:[{Name:"generic.attackDamage",Base:0}]}
L'entité visée vous attaquera quand même, mais elle ne vous fera strictement aucun dégât. Cela aura même un drôle d'effet sur les mobs tels que les qui essaieront de vous taper à mains nues :
Pour éviter d'éventuels bugs, et parce que même si les mobs ne vont pas de dégâts ils courent quand même vers vous, il y a une troisième solution : le tag NBT qui correspond à leur rayon de détection. Vous savez sûrement qu'il y a une distance maximale pour qu'une créature vous détecte (et vous attaque) ; et bien nous pouvons mettre cette valeur à 0, et ainsi faire en sorte qu'il ne vous "voit" que si vous êtes sur la même case que lui. Pour cela, il faut copier cette commande dans un bloc de commande à répétition :
/entitydata entity {Attributes:[{Name:"generic.followRange",Base:0}]}
Ce qui permet de se balader dans des biomes aussi dangereux que l' sans être inquiété par les Endermen !
Mais je me pose une question (plus général que cette astuce d'ailleur): ta boucle redstone, elle ne fonctionne que lorsque le chunk sur lequel elle se trouve est chargé, et donc uniquement si il y a un joueur non ? Du coups, impossible d'explorer le monde, sinon la redstone s'arrete et l'effet de la commande aussi, ou alors je me trompe ?
Dans tous les cas, vivement la 1.12, avec la gamerulle "gameLoopFunction" plus besoin de boucle redstone, les commandes fonctionneront toujours ^^