The item data type (byte, int, short, float, double, string, long, int array, byte array, long array) are not corrected within item data's tag
tag.
Using
/give @s minecraft:diamond_sword{Unbreakable:1}
should correct the Unbreakable tag to a byte (1b), but it instead just saves it as an integer (it will still function correctly though).
This affects every tag within item's tag
tag.
This should be solvable without breaking custom item tags.
Steps to reproduce:
Use
/give @s minecraft:diamond_sword{Unbreakable:1}
Use
/say @s[nbt={Inventory:[{tag:{Unbreakable:1b}}]}]
Notice failing command
Use
/say @s[nbt={Inventory:[{tag:{Unbreakable:1}}]}]
Notice successful command
Remove the diamond sword
Use
/give @s minecraft:diamond_sword{Unbreakable:1b}
Use
/say @s[nbt={Inventory:[{tag:{Unbreakable:1b}}]}]
Notice successful command
Use
/say @s[nbt={Inventory:[{tag:{Unbreakable:1}}]}]
Notice failing command
Even though it's the exact same tag, the commands fail/succeed depending on the give command, unlike testing for tags outside of the
tag
tag
Confirmed for 1.13.1-pre1