added removal of forbidden items in containers

This commit is contained in:
Elias Müller 2025-04-13 20:52:03 +02:00
parent a52476650e
commit 50147a06e2

View File

@ -12,6 +12,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import java.util.List; import java.util.List;
import java.util.Objects;
class ForbiddenMaterialListener extends ApplianceListener<ForbiddenItems> { class ForbiddenMaterialListener extends ApplianceListener<ForbiddenItems> {
@EventHandler @EventHandler
@ -23,11 +24,12 @@ class ForbiddenMaterialListener extends ApplianceListener<ForbiddenItems> {
public void onInventoryInteraction(InventoryClickEvent event) { public void onInventoryInteraction(InventoryClickEvent event) {
if(event.getCurrentItem() == null) return; if(event.getCurrentItem() == null) return;
if(List.of(ClickType.DROP, ClickType.CONTROL_DROP).contains(event.getClick())) 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) { private boolean testAndCancel(Cancellable event, Material material, Entity entity) {
if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return; if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return false;
event.setCancelled(true); event.setCancelled(true);
if(entity instanceof Player p) { if(entity instanceof Player p) {
@ -41,5 +43,7 @@ class ForbiddenMaterialListener extends ApplianceListener<ForbiddenItems> {
.append(Component.text(" ist ein verbotener Gegenstand!")) .append(Component.text(" ist ein verbotener Gegenstand!"))
); );
} }
return true;
} }
} }