Why won't this execute command work?
-
I'm trying to make a datapack and in it you cannot sleep unless you are
y 100
or above, but my command doesn't work. Can anyone explain why P.S:playerheight
is a scoreboard that updates according to the Y coordinate.execute at @e[tag=avian,scores={slep=1..}] if score @p[tag=avian] playerheight < 100 run run setblock ~ ~ ~ air destroy
-
There are multiple things, that might be wrong:
Your sleeping scoreboard is misspelled
slep
, which might cause issues, unless you've have the same misspelling everywhere.You're using
<
. This compares the score of two players/entities in two scoreboards. Your code would compare the score of@p[tag=avian]
inplayerheight
with the score of100
inrun
. What you want ismatches
:if score @p[tag=avian] playerheight matches ..100
.Also note two things:
You can check multiple scores at once:
execute at @e[tag=avian,scores={sleep=1..,playerheight=..100}]
And for the height of a player you don't even need a scoreboard:
execute at @e[tag=avian,scores={sleep=1..},y=100,dy=-200]