SteamWar/FightSystem
Archiviert
13
1

Fix WaterRemover for Water based armor #409

Zusammengeführt
Lixfel hat 1 Commits von waterremover nach master 2024-01-05 16:42:53 +01:00 zusammengeführt

Datei anzeigen

@ -71,23 +71,25 @@ public class WaterRemover implements Listener {
event.setYield(0); //No drops (additionally to world config)
FightTeam spawn = tnt.remove(event.getEntity().getEntityId());
if(spawn != null && event.blockList().isEmpty() && Fight.getOpposite(spawn).getExtendRegion().inRegion(event.getLocation())) {
checkBlock(event.getLocation().getBlock());
if(spawn != null && event.blockList().isEmpty() && !spawn.getExtendRegion().inRegion(event.getLocation())) {
Block b = event.getLocation().getBlock();
checkBlock(b);
checkNeighbours(b);
}
for(Block b : event.blockList()){
//b cannot be water or air due to current explosion
event.blockList().forEach(this::checkNeighbours);
}
checkBlock(b.getRelative(BlockFace.UP));
checkBlock(b.getRelative(BlockFace.EAST));
checkBlock(b.getRelative(BlockFace.WEST));
checkBlock(b.getRelative(BlockFace.NORTH));
checkBlock(b.getRelative(BlockFace.SOUTH));
}
private void checkNeighbours(Block b) {
checkBlock(b.getRelative(BlockFace.UP));
checkBlock(b.getRelative(BlockFace.EAST));
checkBlock(b.getRelative(BlockFace.WEST));
checkBlock(b.getRelative(BlockFace.NORTH));
checkBlock(b.getRelative(BlockFace.SOUTH));
}
private void checkBlock(Block b) {
//do not remove outside teamareas
//do not remove outside teamareasevent.getLocation().getBlock()
if(!Config.BlueExtendRegion.inRegion(b) && !Config.RedExtendRegion.inRegion(b))
return;
@ -98,10 +100,6 @@ public class WaterRemover implements Listener {
if(b.getY() < MIN_Y)
return;
checkBlock(b.getRelative(BlockFace.UP));
checkBlock(b.getRelative(BlockFace.EAST));
checkBlock(b.getRelative(BlockFace.WEST));
checkBlock(b.getRelative(BlockFace.NORTH));
checkBlock(b.getRelative(BlockFace.SOUTH));
checkNeighbours(b);
}
}