Plank Dyer works! \o/
I tried to use markDirty() to do less console spam when trying to use invalid recipes, but it caused some weird stuff with good recipes. I'll look at it later. For now, it works. Now, onto some textures.