Если кому-то надо, то вот, что мне ответили на другом форуме:
@BOT_MrLenya
Sponges ChangeBlock events don’t have a single location, they have multiple transactions, because one event can affect multiple Blocks, e.g. with an explosion.
So you will have to go through all transactions and check the block there.
With transaction.setValid(false); you can “cancel” a single block-change.
From a transaction you can also get the original Block directly: transaction.getOriginal()
So here is how i would do it:
Чтобы получить, например, координаты блока, нужно сделать так:
tr.getOriginal().getLocation() gets you an Optional<Location> that is present in most cases, so: