Come utilizzare un command di esecuzione per testare un object / i in una cassa?

Voglio rilevare se un giocatore è in piedi su una cassa usando un command di esecuzione, quindi in tal caso, rileva ciò che è in quella cassa e dà un risultato. EG Il giocatore è in piedi su una cassa, c'è 64 pietre nel petto se così si ottiene un risultato in redstone o tabellone?

Ho provato

execute @p ~ ~ ~ setblock ~ ~-2 ~ command_block 0 replace {command:"testforblock ~ ~1 ~ chest -1 {Items:[{id:minecraft:stone,Slot:0b,Count:64b}]}" 

e

 execute @p ~ ~ ~ testforblock ~ ~-1 ~ chest -1 {Items:[{id:minecraft:stone,Slot:0b,Count:64b}]} 

Per poter indirizzare quel giocatore in seguito, devi usare CommandStats per tracciare il successo di un command.

Prerequisiti:

Obiettivo per mantenere il valore di return.

 /scoreboard objectives add AboveChest dummy 

Applicare il trigger "AffectedBlocks" a tutti i giocatori, che quindi imposteranno il loro punteggio "AboveChest" a seconda del successo dei comandi relativi ai blocchi. Potrebbe essere necessario eseguire un orologio se nuovi giocatori possono unirsi in qualsiasi momento.

 /stats entity @a set AffectedBlocks @a[c=1] AboveChest 

Affinché CommandStats possa modificare il punteggio di un bersaglio, quel target deve essere tracciato prima. Potrebbe anche essere necessario eseguire un orologio.

 /scoreboard players add @a AboveChest 0 

Comandi di orologio:

Il seguente deve essere eseguito su un orologio in ordine numbersco.

  1. /testforblock in modo che i giocatori eseguano un /testforblock per trovare il forziere. Se il command ha successo, quel giocatore avrà il punteggio "AboveChest" impostato su 1. Se non riesce, quel giocatore avrà il suo punteggio impostato a 0.

     /execute @a ~ ~ ~ /testforblock ~ ~-1 ~ minecraft:chest -1 {Items:[{id:"minecraft:stone",Count:64b,Slot:0b}]} 
  2. Scegli come target i giocatori in base al loro punteggio "AboveChest".

     /say @a[score_AboveChest_min=1] is above a chest containing a stack of 64 stone.