Only Show an Author Their Custom Post Types

As @s_ha_dum says in his comment, your description and your code seems to be different.

If I understand the description, the code to do what you want is:

function __set_all_posts_for_author( $query ) {
  if ( is_admin() && is_post_type_archive( array('listings', 'contacts', 'events') ) ) {
    $current_user = wp_get_current_user();
    $query->set( 'author', $current_user->ID );
  }
}
add_action( 'pre_get_posts', '__set_all_posts_for_author' );

Using the code above, every time an user that is logged in the backend require items list of CPT ‘Listings’, ‘Contacts’ and ‘Events’ he/she will see only the post created by himself/herself.