Skip to content

Commit 463a0b6

Browse files
PotatoCraft-Studio#248 Add piston protection as enhanced protection for shop
1 parent 37df16a commit 463a0b6

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

src/main/java/org/maxgamer/quickshop/listener/ShopProtectionListener.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@
2828
import org.bukkit.entity.Entity;
2929
import org.bukkit.event.EventHandler;
3030
import org.bukkit.event.EventPriority;
31-
import org.bukkit.event.block.*;
31+
import org.bukkit.event.block.BlockExplodeEvent;
32+
import org.bukkit.event.block.BlockFromToEvent;
33+
import org.bukkit.event.block.BlockPistonExtendEvent;
34+
import org.bukkit.event.block.BlockRedstoneEvent;
35+
import org.bukkit.event.block.BlockSpreadEvent;
36+
import org.bukkit.event.block.SpongeAbsorbEvent;
3237
import org.bukkit.event.entity.EntityChangeBlockEvent;
3338
import org.bukkit.event.entity.EntityExplodeEvent;
3439
import org.bukkit.event.inventory.InventoryMoveItemEvent;
@@ -188,6 +193,21 @@ private boolean checkAndEnableMoveEvent(ConfigurationSection section) {
188193
return false;
189194
}
190195

196+
//Prevent skulker box or shop sign being pushed, see https://github.com/PotatoCraft-Studio/QuickShop-Reremake/issues/248
197+
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
198+
public void onBlockBeingPushed(BlockPistonExtendEvent event) {
199+
if (!useEnhanceProtection) {
200+
return;
201+
}
202+
for (org.bukkit.block.Block block : event.getBlocks()) {
203+
Shop shop = getShopRedstone(block.getLocation(), true);
204+
if (shop != null) {
205+
event.setCancelled(true);
206+
return;
207+
}
208+
}
209+
}
210+
191211
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
192212
public void onBlockExplode(BlockExplodeEvent e) {
193213
for (int i = 0, a = e.blockList().size(); i < a; i++) {

0 commit comments

Comments
 (0)