I cannot invert an explosion. This is what I tried, but it broke the obsidian right after it placed it.
public class InvertExplosion {
public void Explode(Detonate event) {
for(int i=0; i<event.getAffectedBlocks().size(); i++) {
BlockPos pos = event.getAffectedBlocks().get(i);
IBlockState ibs = event.getWorld().getBlockState(pos);
Block block = ibs.getBlock();
Block air = Blocks.AIR.getBlockState().getBlock();
if (!(block==air)) {
event.getWorld().setBlockState(pos, Blocks.OBSIDIAN.getDefaultState());
}
}
}
}