It turned out that ServerPlayerGameMode was accessible after all. All I had to do was to cast my player to a ServerPlayer and ask for the game mode. Calling destroyBlock on that class seems to do all the proper tests and fire the right events. It all works now! Now I can mine an entire vein of diamonds or fell an entire tree in one stroke. Whohooo!