Cette réponse est basée sur la réponse de @CommandFox et ma propre idée (totalement affreuse) pour une solution. Cependant, j'ai trouvé que la combinaison des deux ajoute une limitation possible pour blesser des entités spécifiques.
Tout d'abord, créez deux objectifs de tableau de bord : didDamage
y hurtTime
scoreboard objectives add didDamage stat.damageDealt
scoreboard objectives add hurtTime dummy
Ensuite, créez une horloge de remplissage et exécutez les commandes suivantes :
scoreboard players add @e hurtTime 1
scoreboard players set @e hurtTime 0 {HurtTime:0s}
execute @e[score_hurtTime_min=1,score_hurtTime=1] ~ ~ ~ tellraw @a[score_didDamage=1] "Nice hit!"
scoreboard player set @a didDamage 0
Jusqu'à présent, nous n'avons rien gagné en utilisant la fonction hurtTime
objectif. Son principal avantage est qu'il peut être limité grâce à son sélecteur de cible. Par exemple, en utilisant
scoreboard players add @e[type=Zombie] hurtTime 1
scoreboard players set @e[type=Zombie] hurtTime 0 {HurtTime:0s}
fait en sorte que le message n'apparaisse que lorsque vous avez effectivement touché un zombie. L'utilisation de multiples de cette paire de blocs de commande permet de sélectionner plusieurs entités.