License validate function

You could try adding a function to for example init action, that either enables plugin features (i.e. includes plugin files) or displays the admin notice.

Something along these lines,

function licence_notice_or_enable_features() {  
  // Check if (valid) licence key (or validation token, etc.) is saved to the database
  // and add other plugin files
  // If the option does not exist or does not have a value, 
  // then the return value will be false and notice is shown
  if ( get_option( 'license_key' ) ) {
    require_plugin_parts();
  } else {
    add_action( 'admin_notices', 'show_license_notice' );
  }
}
add_action( 'init', 'licence_notice_or_enable_features' );

function require_plugin_parts() {
  $plugin_path = plugin_dir_path( __FILE__ );
  // require $plugin_path . 'file.php';
}

function show_license_notice() {
  // notice and licence form html
}

You could put this to your main plugin file.