Just for shits and giggles, I decided to open my eclipse workspace to look at minecraft's old code again and refresh my memory of what I changed before I stopped working on it.
I remembered I had changed wool to only use one grayscale texture and added opengl calls for applying color on render, which required modifying sheep to drop my own wool implementation and changing sheep's coloring code, which also required modifying village structures to use my wool for lamp posts.
Also added a single hashmap to determine what items any block drops, but it requires painstakingly weeding out the existing code of every block added to it.
Added a single ore block class so ores are all on one ID but use metadata to determine their type (gold, iron, diamond, coal, lapis), and fixed the naming of different types of leaves and wood because they used the same generic "wood" and "leaves" in this version.
Then I figured out where I stopped, furnace recipes.
My implementation of ore wouldn't smelt, "no problem" I thought, I'll just go into the craftingmanager class and... oh, furnace recipes aren't in the crafting manager, oh there's a class called furnacerecipes this should be it.
Sure enough there's a function to put item to be smelted and resulting itemstack into a hashmap, oh wait, none of these items have metadata, I'll try changing the function to include a 3rd parameter for metadata, oh wait now it's all broken, I would have to rewrite this and several other classes to be able to handle input items with metadata.