I have a class for an Item (in this case it extends ArmorItem) with some boolean values. I want to have a recipe that will switch these boolean values, and it depends on the actual Items in the recipe. The main Item is something like a piece of armor, the other is some item that will change the properties of the armor (through the use of the booleans) but keep everything else: durability, enchantments, ect.
I am realizing the class will only be instantiated once for all ItemStacks of this Item, so I suppose I would need to store the information in the ItemStack NBT data or something, but I still need to do something when the crafting takes place.
I'm fairly certain the json recipes won't do anything like this, so I need to have it in code. How can this be done?
In the future, for Minecraft 1.16+, I would like to use the smithing table in sort of the same way where the item is upgraded but I don't want another Item, the Item will be the same because there will be many variations and they won't be that much different.