@EventHandler
    public void onBlockPlaceEvent(BlockPlaceEvent event) {
        Block clickedBlock = event.getBlockAgainst();

        if (clickedBlock.getType() == Material.WALL_SIGN
                && clickedBlock.getState() instanceof Sign) {
            Inventory inventory = getInventoryForSign(clickedBlock);
            if (inventory != null) {
                event.getPlayer().openInventory(inventory);
                event.setCancelled(true);
            }
        }
    }