How do you detect if two specific items are thrown on the same block in Minecraft?
I'm trying to replace the block underneath where I throw two items on with a beacon (block). The two items I am trying to throw, respectively, are a custom nether star and a beacon (item).
Here are my commands:
execute as @e[type=item,nbt={Item:{id:"minecraft:nether_star",Count:1b,tag:{display:{Name:'[{"text":"Warp Stone","italic":true}]'}}}}] if entity @e[type=item,distance=..1,nbt={Item:{id:"minecraft:beacon",Count:1b}}] run function warp_shrines:create_shrine
and my function warp_shrines:create_shrine is as follows:
setblock ~ ~-1 ~ minecraft:beacon
Simple enough, but it doesn't work with the first command. What does work is if I run this command:
execute as @e[type=item,nbt={Item:{id:"minecraft:nether_star",Count:1b,tag:{display:{Name:'[{"text":"Warp Stone","italic":true}]'}}}}] at @s run function warp_shrines:create_shrine
which is just the top command without the "if entity" qualifier, meaning that I'm not detecting if those two items are on the same block correctly. Is my syntax/logic wrong, or do I need to figure out a workaround for this?
Just combine the 1st and 3rd commands. You need to add at @s
without removing the 2nd if entity
.
You'll need to put at @s
between the first item and the second item in the 1st command. (see the section marked BOLD)
...{Name:'[{"text":"Warp Stone","italic":true}]'}}}}] at @s if entity @e[type=item,distance=..1,...