Catch invalid enchantment names, throw nice error

I realize this is now being null checked twice. Yes, both checks are
needed. No, I haven't the slightest clue why.