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

@ -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<ForbiddenItems> {
@EventHandler
@ -23,11 +24,12 @@ class ForbiddenMaterialListener extends ApplianceListener<ForbiddenItems> {
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<ForbiddenItems> {
.append(Component.text(" ist ein verbotener Gegenstand!"))
);
}
return true;
}
}