Command block problem detecting armour

Solution 1:

You've got two extra curly brackets at the end. After the last square bracket closed Inventory, you only need 1 more curly bracket to end the tag:

/testfor @p {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{Unbreakable:1,display:{Name:"shadow sandals",Lore:[_____],color:0},ench:[{id:0,lvl:31073},{id:7,lvl:31073},{id:4,lvl:31073},{id:3,lvl:31073}]}}]}

The command should now work, if you're giving the boots with something like:

/give @p leather_boots 1 0 {Unbreakable:1,display:{Name:"shadow sandals",Lore:[_____],color:0},ench:[{id:0,lvl:31073},{id:7,lvl:31073},{id:4,lvl:31073},{id:3,lvl:31073}]}

Keep in mind however that id and lvl are shorts by default, and Unbreakable is a byte by default. This means that, if you've added the tags by another means, you should specify these types in your testfor command:

/testfor @p {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{Unbreakable:1b,display:{Name:"shadow sandals",Lore:[_____],color:0},ench:[{id:0s,lvl:31073s},{id:7s,lvl:31073s},{id:4s,lvl:31073s},{id:3s,lvl:31073s}]}}]}