Minecraft – Execute condition positioned doesnt work

minecraft-commandsminecraft-java-edition

I'm trying to test if an entity is positionned at a very specific coordinate to then and only then tag itself and others.

Here's the command:

execute as @e[type=minecraft:armor_stand,tag=pillar_first,tag=bot] positioned ~ 45.518 ~ at @s run tag @e[type=minecraft:armor_stand,tag=pillar_first] add complete

The command block is litterally ignoring the positionned condition and tags right away.

What have I done wrong?

Best Answer

There are two different problems with the command:

  1. The second at @s repositions the command to the armor stand, negating the previous positioned ~ 45.518 ~.
  2. Target selectors by default have no range limit, so even if the command were positioned correctly, it would still find the armor stand wherever on the map it is.

The corrected command would be:

execute as @e[type=minecraft:armor_stand,tag=pillar_first,tag=bot] at @s positioned ~ 45.518 ~ if entity @s[distance=...1] run tag @e[type=minecraft:armor_stand,tag=pillar_first] add complete

This command checks if the armor stand is within one tenth of a block of the given coordinates, since checking if it is there exactly does not work for reasons I can't figure out. This may not be what you want.