From d21f009f7daf3e635511fc5cfba819129f1a2d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 31 Aug 2024 11:39:40 +0200 Subject: [PATCH] door knocking no longer triggers when destroying doors --- .../doubeDoor/OnDoorInteractListener.java | 2 ++ .../appliances/knockDoor/KnockDoorListener.java | 13 +++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/doubeDoor/OnDoorInteractListener.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/doubeDoor/OnDoorInteractListener.java index 546f458..1046636 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/doubeDoor/OnDoorInteractListener.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/doubeDoor/OnDoorInteractListener.java @@ -2,6 +2,7 @@ package eu.mhsl.craftattack.spawn.appliances.doubeDoor; import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.appliances.settings.Settings; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -18,6 +19,7 @@ public class OnDoorInteractListener extends ApplianceListener { if(!event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) return; Block clickedBlock = event.getClickedBlock(); if(clickedBlock == null) return; + if(clickedBlock.getType().equals(Material.IRON_DOOR)) return; if(!Settings.instance().getSetting(event.getPlayer(), Settings.Key.DoubleDoors, Boolean.class)) return; getAppliance().openNextDoor(clickedBlock); } diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/knockDoor/KnockDoorListener.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/knockDoor/KnockDoorListener.java index 701be50..2c37cbe 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/knockDoor/KnockDoorListener.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/knockDoor/KnockDoorListener.java @@ -5,20 +5,13 @@ import org.bukkit.GameMode; import org.bukkit.block.Block; import org.bukkit.block.data.type.Door; import org.bukkit.event.EventHandler; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.EquipmentSlot; - -import java.util.Objects; +import org.bukkit.event.block.BlockDamageAbortEvent; public class KnockDoorListener extends ApplianceListener { @EventHandler - public void onKnock(PlayerInteractEvent event) { - if(!event.getAction().equals(Action.LEFT_CLICK_BLOCK)) return; - if(!Objects.equals(event.getHand(), EquipmentSlot.HAND)) return; + public void onKnock(BlockDamageAbortEvent event) { if(event.getPlayer().getGameMode() != GameMode.SURVIVAL) return; - Block block = event.getClickedBlock(); - if(block == null) return; + Block block = event.getBlock(); if(!(block.getBlockData() instanceof Door)) return; getAppliance().knockAtDoor(event.getPlayer(), block); }