This probably sounds like a bad question and I should know this, but how do you test for a block relative from a player? I put down a command block with "testfor ~1 ~ ~ " but that did it from the command block. (I expected it to with that) "testfor @a ~1 ~ ~ " didnt work, and neither did "testfor ~1 ~ ~ @a". What is the right way to write this?
While you cannot use testfor to do this, you CAN use execute detect. This is most likely how it would look:
/execute @a ~ ~ ~ detect ~1 ~ ~ grass 0 <command>
the execute command will detect a grass block to the left (in the X cord) of all players in the world. the command is how you would track that player if it detects the block successfully.
an example tracking command would be
/execute @a ~ ~ ~ detect ~1 ~ ~ grass 0 scoreboard players set @p Sample_Obj 1
comment if you have any other questions.