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
- L'autel ignore les objets : vérifiez la position et la distance.
- Le nombre de récompenses est faux : une pile jetée est une seule entité objet, elle ne paie donc qu'une fois.
- Bedrock : pas de statistique de lâcher ni de test d'objet, c'est donc réservé à Java.
Vérifiez votre commande
Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.