Hoy !
Est-ce que je déterre avec un mois de retard... Je ne sais pas, mais en tout cas je préfère répondre pour rectifier une chose pour ceux qui pourraient avoir la même problématique.
La commande va se répéter en boucle dès que la personne va se trouver dans la zone, ce qui ne répond pas à la problématique principale : exécuter la commande qu'une seule fois.
Pour ça tu peux utiliser les tag. Voici ma proposition.
Premier commande block en Repeat, unconditionnel, Always active. Il va, au moment où il entre dans la même zone, avoir le message
/execute as @a[x=0,y=0,z=0,dx=2,dy=2,dz=0,tag=!Salut] run (ta commande de message)
Puis un Chain, unconditionnel, Always active. Il va retirer la tag à tout le monde. C'est pour retirer le tag si il sort de la zone, ce qui permettra au message de s'afficher de nouveau au joueur si il revient.
Puis un Chain, unconditionnel, Always active. Si il est dans la zone, on lui ajoute le tag "Salut". Ce qui évitera qu'il reçoive une seconde fois le message tant qu'il est dans la zone.
tag @a[x=0,y=0,z=0,dx=2,dy=2,dz=0] add Salut
Pour expliquer ce que tu demandais au dessus. Le "distance=" fera un cercle autour des coordonnées et donc ne sera pas précis. dx,dy,dz permettent de faire une zone rectangulaire. Ils sont, respectivement, le prolongement de leur axe.
Avec cette méthode, le joueur aura un message aussi lorsqu'il repassera dans l'autre sens. Si tu veux que ce soit que dans un sens. Tu peux mettre la deuxième commande qui retire le tag avec une zone de détection devant la zone de la porte. Toute personne entrant se verront retirer le tag avant d'être ajouté de nouveau au moment du message. Mais ils garderont le tag, si il ressorte, il n'auront donc pas de message, mais ils peuvent l'avoir de nouveau si ils entrent par cette porte.
J'espère avoir été clair dans mon explication et que cela va permettre d'aider certaine personne.
EDIT : Sorry, je viens de voir la logique derrière le comparateur qui fait l'effet désirer. Donc le problème était bien résolu avec. Mais de toute manière je ne suis pas fan de la redstone dans les commandes blocs >.>
J'étais à deux doigts de proposer de le mettre en MCfunction.