TransWikia.com

How to remove specific NBT items from player inventory without data packs

Arqade Asked by User 12692182 on January 31, 2021

I created a level-based minigame, and every level, it checks your inventory, and makes sure you don’t have any forbidden items. I make items forbidden my adding a tag to them: discard:1b. Any items that should get removed from the inventory at the end of each level get this tag, so they are discarded.

I then started working on the clear command, and I found that you cannot remove items based upon NBT, but rather only by item, although you can add an NBT specification to items afterwards.

I then saw this answer, and got excited, but then I realized it used datapacks, and that would not be an option for me.
I looked around a bit more, and discovered this, who had a very similar problem to me, but its only answer was something I already knew how to do, and it wasn’t enough.

One Answer

You can do this using /replaceitem and a technique similar to the one described in Fabian Röling's answer to this related question:

/execute if entity @s[nbt={Inventory:[{Slot:0b,tag:{discard:1b}}]}] run replaceitem entity @s hotbar.0 air
…
/execute if entity @s[nbt={Inventory:[{Slot:8b,tag:{discard:1b}}]}] run replaceitem entity @s hotbar.8 air
/execute if entity @s[nbt={Inventory:[{Slot:9b,tag:{discard:1b}}]}] run replaceitem entity @s inventory.0 air
…
/execute if entity @s[nbt={Inventory:[{Slot:35b,tag:{discard:1b}}]}] run replaceitem entity @s inventory.26 air
/execute if entity @s[nbt={Inventory:[{Slot:-106b,tag:{discard:1b}}]}] run replaceitem entity @s weapon.offhand air

I haven't had the opportunity to test this yet, but it should work.

Answered by pppery on January 31, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP