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 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user