How to use an execute command to test for an item/s in a chest?

How to use an execute command to test for an item/s in a chest? - Medical single use disposable syringe without protective cover on needle and with empty barrel placed on bright yellow surface

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.

  1. Cause players to run a /testforblock to 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}]}
    
  2. 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 to use an execute command to test for an item/s in a chest? - Student Taking Photo of the Test Paper
How to use an execute command to test for an item/s in a chest? - Stylish adult female using smartphone on street
How to use an execute command to test for an item/s in a chest? - Photo of Clear Glass Measuring Cup Lot



How do you test a specific item in Minecraft?

How to Enter the Command
  • Test if Players are within 10 blocks. In this example, we will test to see if there are any players within a 10 block radius with the following command: /testfor @a[r=10] ...
  • Test if Mooshrooms are within 50 blocks. ...
  • Test if Nearest Player is at Level 20 experience.




  • how 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

    1. Objective:

      /scoreboard objectives add AboveChest dummy
      
    2. Set the player's initial score.

      /scoreboard players set @a AboveChest 0
      

    /stats is deprecated, use /execute store instead.

    Clock commands

    1. 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}]}
      
    2. 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