diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java index 8373a89..b6b6a6f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java @@ -12,6 +12,7 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import java.util.List; +import java.util.Objects; class ForbiddenMaterialListener extends ApplianceListener { @EventHandler @@ -23,11 +24,12 @@ class ForbiddenMaterialListener extends ApplianceListener { public void onInventoryInteraction(InventoryClickEvent event) { if(event.getCurrentItem() == null) return; if(List.of(ClickType.DROP, ClickType.CONTROL_DROP).contains(event.getClick())) return; - this.testAndCancel(event, event.getCurrentItem().getType(), event.getWhoClicked()); + boolean wasCancelled = this.testAndCancel(event, event.getCurrentItem().getType(), event.getWhoClicked()); + if(wasCancelled) Objects.requireNonNull(event.getClickedInventory()).remove(event.getCurrentItem()); } - private void testAndCancel(Cancellable event, Material material, Entity entity) { - if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return; + private boolean testAndCancel(Cancellable event, Material material, Entity entity) { + if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return false; event.setCancelled(true); if(entity instanceof Player p) { @@ -41,5 +43,7 @@ class ForbiddenMaterialListener extends ApplianceListener { .append(Component.text(" ist ein verbotener Gegenstand!")) ); } + + return true; } }