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.
/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}]}
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.