Skip to content
This repository was archived by the owner on Dec 7, 2022. It is now read-only.

Commit 1118867

Browse files
committed
Fix cause filter & filter falling blocks in BlockPlaceRegion
1 parent be0f4c3 commit 1118867

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/main/java/in/twizmwaz/cardinal/module/modules/appliedRegion/type/BlockPlaceRegion.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.bukkit.event.block.BlockPistonExtendEvent;
1414
import org.bukkit.event.block.BlockPistonRetractEvent;
1515
import org.bukkit.event.block.BlockPlaceEvent;
16+
import org.bukkit.event.entity.EntityChangeBlockEvent;
1617
import org.bukkit.event.player.PlayerBucketEmptyEvent;
1718

1819
public class BlockPlaceRegion extends AppliedRegion {
@@ -74,4 +75,12 @@ public void onBlockPistonRetract(BlockPistonRetractEvent event) {
7475
}
7576
}
7677
}
78+
79+
@EventHandler
80+
public void onEntityChangeBlock(EntityChangeBlockEvent event) {
81+
if (!event.isCancelled() && region.contains(new BlockRegion(null, event.getBlock().getLocation().toVector())) && filter.evaluate(event, event.getBlock()).equals(FilterState.DENY)) {
82+
event.setCancelled(true);
83+
}
84+
}
85+
7786
}

src/main/java/in/twizmwaz/cardinal/module/modules/filter/type/CauseFilter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.bukkit.event.Event;
99
import org.bukkit.event.block.Action;
1010
import org.bukkit.event.block.BlockBreakEvent;
11+
import org.bukkit.event.block.BlockPlaceEvent;
1112
import org.bukkit.event.entity.EntityDamageEvent;
1213
import org.bukkit.event.entity.EntityEvent;
1314
import org.bukkit.event.entity.EntityExplodeEvent;
@@ -50,7 +51,7 @@ private Boolean evaluate(Event event) {
5051
case MOB:
5152
return event instanceof EntityEvent && ((EntityEvent) event).getEntity() instanceof Creature;
5253
case PLAYER:
53-
return event instanceof PlayerEvent;
54+
return event instanceof PlayerEvent || event instanceof BlockPlaceEvent || event instanceof BlockBreakEvent;
5455

5556
case PUNCH:
5657
return event instanceof PlayerInteractEvent

0 commit comments

Comments
 (0)