Mise à jour :

1. Lancer une commande quand un objet est lâché

scoreboard objectives add drop minecraft.custom:minecraft.drop
# Répétition, Toujours actif
execute as @a[scores={drop=1..}] run tellraw @s {"text":"Vous avez lâché un objet","color":"gray"}
# Chaîne, Toujours actif
scoreboard players reset @a[scores={drop=1..}] drop

2. Un autel d'offrande

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]

Lancez-les dans un bloc Répétition et deux blocs Chaîne. Un diamant jeté près de (0, 64, 0) est échangé contre cinq émeraudes. contents est l'emplacement d'un objet au sol (1.20.5+). Voir la détection de zone.

3. Des objets qui reviennent

/give @s minecraft:compass[custom_name="Souvenir",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

Mettez les deux dernières dans des blocs Répétition et Chaîne. Un objet lié lâché saute vers le joueur le plus proche et peut être ramassé aussitôt.

4. Supprimer les objets au sol

/kill @e[type=item]

Voir la commande kill.

Dépannage

Vérifiez votre commande

Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.