package wtf.beatrice.limbomanager.listeners; import org.bukkit.Material; import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.inventory.*; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; public class RiskyBlocksHandler implements Listener { List riskyMaterials = new ArrayList<>() {{ add(Material.TNT); add(Material.ANVIL); add(Material.CHIPPED_ANVIL); add(Material.DAMAGED_ANVIL); add(Material.MINECART); add(Material.CHEST_MINECART); add(Material.COMMAND_BLOCK_MINECART); add(Material.HOPPER_MINECART); add(Material.FURNACE_MINECART); add(Material.TNT_MINECART); add(Material.COMMAND_BLOCK); add(Material.CHAIN_COMMAND_BLOCK); add(Material.CHAIN_COMMAND_BLOCK); }}; @EventHandler public void onBlockPlace(BlockPlaceEvent event) { checkAndCancel(event, event.getBlockPlaced().getType()); } @EventHandler public void onBlockPlace(BlockMultiPlaceEvent event) { checkAndCancel(event, event.getBlockPlaced().getType()); } @EventHandler public void onInventoryClick(InventoryClickEvent event) { if(event.getCurrentItem() != null) { checkAndCancel(event, event.getCurrentItem().getType()); } if(event.getCursor() != null) { checkAndCancel(event, event.getCursor().getType()); } } @EventHandler public void onInventoryDrag(InventoryDragEvent event) { if(event.getCursor() != null) { checkAndCancel(event, event.getCursor().getType()); } checkAndCancel(event, event.getOldCursor().getType()); } @EventHandler public void onInvMoveItem(InventoryMoveItemEvent event) { checkAndCancel(event, event.getItem().getType()); } @EventHandler public void onInvPickup(InventoryPickupItemEvent event) { checkAndCancel(event, event.getItem().getItemStack().getType()); } private void checkAndCancel(Cancellable event, @NotNull Material material) { if(riskyMaterials.contains(material)) { event.setCancelled(true); } } }