So, I went through it. My first problem was that onCraftMatrixChanged wasn't being called properly, so I added it to slotClick and it's getting called. Now my problem is that in my recipe handler, getImbuementResult is only returning an empty itemstack, even when I have the correct inputs. I found that method from a tutorial and I don't know exactly how it works, so I'm not sure how to fix it. I still fell like I might be doing the recipes wrong by using a table for them.