Allow pistons to break blocks at borders

Pistons are now able to break blocks when pushing against a plot border or plot area border
This commit is contained in:
Marcus Rokatis 2022-07-16 14:49:40 +02:00
parent 87f89541b5
commit e5ca8597da

View File

@ -69,6 +69,7 @@ import org.bukkit.Tag;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.block.PistonMoveReaction;
import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Fireball;
@ -828,6 +829,7 @@ public class BlockEventListener implements Listener {
}
for (Block block1 : event.getBlocks()) {
Location bloc = BukkitUtil.adapt(block1.getLocation());
if (block1.getPistonMoveReaction() == PistonMoveReaction.BREAK) return;
if (bloc.isPlotArea() || bloc
.add(relative.getBlockX(), relative.getBlockY(), relative.getBlockZ())
.isPlotArea()) {
@ -850,6 +852,7 @@ public class BlockEventListener implements Listener {
for (Block block1 : event.getBlocks()) {
Location bloc = BukkitUtil.adapt(block1.getLocation());
Location newLoc = bloc.add(relative.getBlockX(), relative.getBlockY(), relative.getBlockZ());
if (block1.getPistonMoveReaction() == PistonMoveReaction.BREAK) return;
if (!area.contains(bloc.getX(), bloc.getZ()) || !area.contains(newLoc)) {
event.setCancelled(true);
return;