It seems like it shouldn't be too hard to validate this, you can just get the current block type with `w.Block()`, see if the have it in their inventory, and only then proceed with the `w.ChangeBlock()`. Of course, their client might get a tiny bit out of sync in that case, so maybe it doesn't matter- better at this point to let people cheat than to make things crappy and buggy for them.