mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2025-02-09 08:51:59 +01:00
Don't check spaces that won't get moved into by pistons.
Fixes WORLDGUARD-4064.
This commit is contained in:
parent
b2fe4c9c71
commit
d091cb578f
@ -61,6 +61,7 @@
|
|||||||
import org.bukkit.block.Chest;
|
import org.bukkit.block.Chest;
|
||||||
import org.bukkit.block.DoubleChest;
|
import org.bukkit.block.DoubleChest;
|
||||||
import org.bukkit.block.Hopper;
|
import org.bukkit.block.Hopper;
|
||||||
|
import org.bukkit.block.PistonMoveReaction;
|
||||||
import org.bukkit.entity.AreaEffectCloud;
|
import org.bukkit.entity.AreaEffectCloud;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
@ -363,7 +364,11 @@ public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
|||||||
int originalLength = blocks.size();
|
int originalLength = blocks.size();
|
||||||
BlockFace dir = event.getDirection();
|
BlockFace dir = event.getDirection();
|
||||||
for (int i = 0; i < blocks.size(); i++) {
|
for (int i = 0; i < blocks.size(); i++) {
|
||||||
blocks.set(i, blocks.get(i).getRelative(dir));
|
Block existing = blocks.get(i);
|
||||||
|
if (existing.getPistonMoveReaction() == PistonMoveReaction.MOVE
|
||||||
|
|| existing.getPistonMoveReaction() == PistonMoveReaction.PUSH_ONLY) {
|
||||||
|
blocks.set(i, existing.getRelative(dir));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Events.fireBulkEventToCancel(event, new PlaceBlockEvent(event, create(event.getBlock()), event.getBlock().getWorld(), blocks, Material.STONE));
|
Events.fireBulkEventToCancel(event, new PlaceBlockEvent(event, create(event.getBlock()), event.getBlock().getWorld(), blocks, Material.STONE));
|
||||||
if (blocks.size() != originalLength) {
|
if (blocks.size() != originalLength) {
|
||||||
|
Loading…
Reference in New Issue
Block a user