/execute entity @a[x=(координата x),y=(координата y),z=(координата z),distance=..(дистанция в блоках)] run say (текст)
Например:
/execute entity @a[x=10,y=50,z=20,distance=..1] run say замечен игрок
Это комманда выводит в чат "замечен игрок" Когда на указанных координатах (10 50 20) находится игрок. Если тебе нужен текст от лица персонажа, то просто вставь нужную команду после run.
distance это дистанция от указанных координат, на которой игрок будет замечен. В случае примера, игрок будет замечен только если его ноги или голова будут находится в указанных координатах (10 50 20).
Чтоб работало, нужно в настройках КБ поставить всегда активен, и сделать его цикличным. Ну это если не нужно никаких условий кроме нахождения игрока на месте.
Если не нужно чтоб текст выводился 20 раз в секунду, можно сделать так:
Поставить КБ который не выводит текст, а ставит блок редстоуна при виде игрока (run setblock) рядом с другим КБ, который выводит текст (say). Третий КБ будет ломать блок редстоуна с задержкой.
Если не нужно чтоб текст выводился каждый раз когда игрок проходит через одно место, можно сделать ту-же схему, но блок редстоуна не убирать.
Возможно я ошибся, так-что в случае чего почитай про execute entity где-то.