added removal of forbidden items in containers
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user