Actualizado:

1. Ejecutar un comando al tirar algo

scoreboard objectives add drop minecraft.custom:minecraft.drop
# Iterativo, siempre activo
execute as @a[scores={drop=1..}] run tellraw @s {"text":"Has tirado un objeto","color":"gray"}
# En cadena, siempre activo
scoreboard players reset @a[scores={drop=1..}] drop

2. Un altar de ofrendas

execute positioned 0 64 0 as @e[type=item,distance=..1.5] if items entity @s contents minecraft:diamond run tag @s add offered
execute as @e[type=item,tag=offered] at @s run give @p minecraft:emerald 5
kill @e[type=item,tag=offered]

Ejecútalos en un bloque iterativo y dos en cadena. Un diamante lanzado cerca de (0, 64, 0) se cambia por cinco esmeraldas. contents es el hueco de un objeto tirado (1.20.5+). Consulta detectar zonas.

3. Objetos que vuelven

/give @s minecraft:compass[custom_name="Recuerdo",custom_data={bound:1b}]
execute as @e[type=item] if items entity @s contents *[custom_data~{bound:1b}] at @s run tp @s @p
execute as @e[type=item] if items entity @s contents *[custom_data~{bound:1b}] run data modify entity @s PickupDelay set value 0s

Pon las dos últimas en bloques iterativo y en cadena. Un objeto ligado que se tire salta al jugador más cercano y se puede recoger al momento.

4. Quitar los objetos tirados

/kill @e[type=item]

Consulta el comando kill.

Solución de problemas

Comprueba tu comando

El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.