Minecraft – Need help in command to remove item from inventory

minecraft-commandsminecraft-java-edition

I have a small server with my friends, and we want to remove mending from play. I was thinking it will be easy now to just place a command block which looks on players inventory and removes enchantment books with mending on it.

But I can't create that command, I was trying this various:

/clear Excidium minecraft:enchanted_book{Enchantments:[{id:"minecraft:Mending"}]}
/clear Excidium minecraft:enchanted_book{Enchantments:[{id:"minecraft:Mending",lvl:1}]}
/clear Excidium minecraft:enchanted_book{Enchantments:[{id:"minecraft:Mending",;lvl:1s}]}
clear Excidium minecraft:enchanted_book{StoredEnchantments:[{id:mending,lvl:1}]} 1

And nothing happened.

When I use the command /give Excidium minecraft:enchanted_book{StoredEnchantments:[{id:mending,lvl:1}]} 1 to give myself a book with mending, then I can remove it from the bag. But when the mending book is from another source like villager, chest, fishing, ect, the command doesn't work. The mending book is still in the inventory.

Please help.

Best Answer

Basically, make sure you're not putting all of the commands in a single command block.

If that's good to go, then you should also know that you don't need the first 3 lines of commands, since enchantment books' enchantments are always stored in the StoredEnchantments:[] NBT tag.

Another problem is that you're checking for a single player. Use @a to clear all players' inventories of said item.

That said, you should also take note that items that have the Mending enchantment will not be cleared. You'll have to clear them seperately one by one using seperate command blocks. (e.g. /clear @a golden_pickaxe{Enchantments:[{id:mending,lvl:1}]})