lock meta box position on post edit screen for contributors

Found this while trolling the internets… Works Perfectly

add_action('admin_init', 'set_user_metaboxes'); //I want it to fire every time edit post screen comes up
//add_action('user_register', 'set_user_metaboxes');  //You can also have it only set when a new user is created

function set_user_metaboxes($user_id=NULL) {

  //These are the metakeys we will need to update  
  $meta_key['order'] = 'meta-box-order_events';
  $meta_key['hidden'] = 'metaboxhidden_events';

  //So this can be used without hooking into user_register
  if ( ! $user_id)
    $user_id = get_current_user_id(); 

  //Set the default order if it has not been set yet by the user. These are WP handles
  if ( ! get_user_meta( $user_id, $meta_key['order'], true) ) {
    $meta_value = array(
        'side' => '',
        'normal' => 'events_metabox,submitdiv, commentsdiv',
        'advanced' => '',
    );
    update_user_meta( $user_id, $meta_key['order'], $meta_value );
  }

  // Set the default hidden boxes if it has not been set yet by the user
  if ( ! get_user_meta( $user_id, $meta_key['hidden'], true) ) {
    $meta_value = array('postcustom','trackbacksdiv','commentstatusdiv','commentsdiv','slugdiv','authordiv','revisionsdiv','postexcerpt','postimagediv','tagsdiv-post_tag');
    update_user_meta( $user_id, $meta_key['hidden'], $meta_value );
  }

 }//#end