Ну смотри, я пока что вижу два варианта:
1. Сделать вайтлист на разрешенные блоки для ломания. Таким образом игрок может ломать только те блоки, которые все игроки могут поставить (шерсть, доски, эндерняк, обсидиан и т.д.). Но минус в этом, что нельзя будет использовать эти блоки при постройке карты.
2. Сделать переменную типа List<Block> placedBlocks = new ArrayList<>(); и туда записывать все блоки, которые поставили игроки. И когда кто-то пытается сломать блок, то проверять есть ли этот блок в этом списке. Или же вместо типа Block записывать координаты. Но, есть возможный минус - может пожираться много оперативной памяти.