How to use an execute command to test for an item/s in a chest?
I want to detect if a player is standing on a chest using an execute command then if so detect what is in that chest and give an output. E.G Player is standing on a chest there is 64 stone in the chest if so give a redstone or score board output?
I have tried
execute @p ~ ~ ~ setblock ~ ~-2 ~ command_block 0 replace {command:"testforblock ~ ~1 ~ chest -1 {Items:[{id:minecraft:stone,Slot:0b,Count:64b}]}"
and
execute @p ~ ~ ~ testforblock ~ ~-1 ~ chest -1 {Items:[{id:minecraft:stone,Slot:0b,Count:64b}]}
Best Answer
In order to target that player afterwards, you must use CommandStats to track the success of a command.
Prerequisites:
Objective to hold the return value.
/scoreboard objectives add AboveChest dummy
Applying the "AffectedBlocks" trigger to all players, who will then set their own "AboveChest" score depending on the success of block-related commands. This may need to run on a clock if new players can join at any time.
/stats entity @a set AffectedBlocks @a[c=1] AboveChest
In order for CommandStats to modify a target's score, that target must be tracked prior. This may also need to run on a clock.
/scoreboard players add @a AboveChest 0
Clock commands:
The following must be run on a clock in numerical order.
Cause players to run a
/testforblockto find the chest. If the command is successful, that player will have their "AboveChest" score set to 1. If unsuccessful, that player will have their score set to 0./execute @a ~ ~ ~ testforblock ~ ~-1 ~ minecraft:chest -1 {Items:[{id:"minecraft:stone",Count:64b,Slot:0b}]}Target players based on their "AboveChest" score.
/say @a[score_AboveChest_min=1] is above a chest containing a stack of 64 stone.
Pictures about "How to use an execute command to test for an item/s in a chest?"



How do you test a specific item in Minecraft?
How to Enter the Commandhow to detect item in a chest! I minecraft chest detection tutorial 1.16.5!
More answers regarding how to use an execute command to test for an item/s in a chest?
Answer 2
1.13+ Update to Skylinerw's answer
1.13 has completely changed commands. Are you playing 1.13 and have the same question? This is the answer for you.
Prerequisites
Objective:
/scoreboard objectives add AboveChest dummySet the player's initial score.
/scoreboard players set @a AboveChest 0
/stats is deprecated, use /execute store instead.
Clock commands
Find chest and store success/failure in scoreboard variable.
/execute as @a at @s if block ~ ~ ~ chest{Items:[{id:"minecraft:stone",Count:64b,Slot:0b}]}Target players who have a score of 1. Use whatever command you want and this target selector to get them
@e[scores={AboveChest=1}]
Sources: Stack Exchange - This article follows the attribution requirements of Stack Exchange and is licensed under CC BY-SA 3.0.
Images: Karolina Grabowska, RODNAE Productions, Andrea Piacquadio, Rodolfo Clix
