How to tell when a player isn't moving?
Is there a away to test if a player isn't moving?
At the moment I have put this command on a hopper clock:
/scoreboard players set @a sneak 3
But that doesn't seem to work because in another command block I am testing for a score of three, and every tick it summons a block even when you're moving.
I am using this for a vanilla block hunt so when your not moving you become a solid block.
@132ikl's answer works in general, but there is a flaw to the design: stat.walkOneCm
does not increase while you are in mid-air. We can fix this by assuming every player that is in mid-air is moving.
Create the scoreboard:
/scoreboard objectives add Moving stat.walkOneCm
Create a 20Hz clock or use repeat/chain command blocks and run the following two commands:
/scoreboard players remove @a[score_Moving_min=1] Moving 1 {OnGround:1b}
/scoreboard players set @a[score_Moving_min=1] Moving 1
The first command will reduce the Moving
score by one for every player on the ground, if it is at least 1 (I.e. the score will not go below 0).
The second command limits the Moving
score to at most 1 by setting it to one if it is greater.
Moving
will be 1 for people that are moving, or were moving prior to jumping (jumping in place does not work), and 0 otherwise.
Step 1: Create two scoreboards:
/scoreboard objectives add walk stat.walkOneCm
/scoreboard objectives add moving dummy
Step 2: Make a command block clock with these commands:
/scoreboard players set @a walk 0
/scoreboard players set @a[score_walk_min=1] moving 1
Then everyone that is not walking will have a moving score of 0