if ($mybb->user['username']) {
    redirect('index.php', $lang->mcc_already_loggedin);
    exit;
}
$content = $lang->mcc_login_header;
// Currently only function of this page is to authenticate a user
// and log them into MyBB with their Minecraft credentials.
// Possible registration with Minecraft in the future...
if ($mybb->get_input('act') === 'login') {
    $content = $lang->mcc_login_header;
    if ($mybb->request_method == 'post') {
        verify_post_check($mybb->get_input('my_post_key'));
        require_once 'inc/plugins/MinecraftConnect/MCAuth.class.php';
        $username = $db->escape_string(trim($mybb->get_input('mccusername')));
        $pass = $db->escape_string($mybb->get_input('mccpassword'));
        $mc = new MCAuth($username);
        if ($mc->validateInput()) {
            // Authenticate the user with Mojang's API
            $auth = $mc->authenticate($username, $pass);
            if ($auth == true) {
                $mcuser = $mc->getUsername();
                // if user authenticated, log them in to MyBB
                if ($mc->login($mcuser)) {
                    $myuser = $db->fetch_array($db->simple_select('users', 'username', "mcc_username='******'"));
                    redirect('index.php', $lang->sprintf($lang->mcc_login_success, $myuser['username'], $mcuser));
                } else {
                    redirect('minecraftconnect.php?act=login', $lang->mcc_login_fail);
                }
            } else {
                $content = $mc->getErr();
            }
<?php

/**
 * Created by PhpStorm.
 * User: shane
 * Date: 15/07/26
 * Time: 21:14
 */
include "MCAuth.php";
include "config.php";
$Auth = new MCAuth();
if (isset($_POST)) {
    //get user and password from form
    $user = $_POST['user'] ?: null;
    $pass = $_POST['pass'] ?: null;
    //if we don't have anything to read, STOP!
    if ($pass == null || $user == null) {
        echo "Client did not post username or password, please try again!";
        exit;
    }
    if ($Auth->authenticate($user, $pass)) {
        echo "<h1>Succession authenticating!</h1>><br>";
        $profile = $Auth->account;
        $profileIDRaw = $profile['id'];
        $profileName = $profile['username'];
        //Thanks to https://github.com/Shadowwolf97/Minecraft-UUID-Utils/blob/master/MinecraftUUID.php#L145
        $profileID = "";
        $profileID .= substr($profileIDRaw, 0, 8) . "-";
        $profileID .= substr($profileIDRaw, 8, 4) . "-";
        $profileID .= substr($profileIDRaw, 12, 4) . "-";
        $profileID .= substr($profileIDRaw, 16, 4) . "-";
function minecraftconnect_usercp()
{
    global $mybb, $lang, $db, $theme, $templates, $headerinclude, $header, $footer, $plugins, $usercpnav;
    if (!$lang->mcc) {
        $lang->load('minecraftconnect');
    }
    if ($mybb->get_input('action') === 'minecraftconnect' && !isset($mybb->input['do'])) {
        add_breadcrumb($lang->nav_usercp, 'usercp.php');
        add_breadcrumb($lang->mcc_usercp_title, 'usercp.php?action=minecraftconnect');
        $content = '';
        $settingsArr = array('mcc_username', 'mcc_id');
        $q = $db->simple_select('users', implode(',', $settingsArr), "uid = '{$mybb->user['uid']}'");
        $r = $db->fetch_array($q);
        foreach ($settingsArr as $s) {
            $content .= "<tr><td><strong>{$lang->{$s}}:</strong> {$r[$s]}</td></tr>";
        }
        if (!is_null($mybb->user['mcc_username'])) {
            $linksubmit = '<input type="submit" class="button" value="' . $lang->mcc_unlink . '" name="mcc_unlink" />';
        } else {
            $linksubmit = '<input type="submit" class="button" value="' . $lang->mcc_link . '" name="mcc_link" />';
        }
        // They're linking/unlinking their MC account
        if ($mybb->request_method == 'post') {
            verify_post_check($mybb->get_input('my_post_key'));
            if ($mybb->get_input('mcc_link') xor $mybb->get_input('mcc_unlink')) {
                if ($mybb->input['mcc_link']) {
                    redirect('usercp.php?action=minecraftconnect&amp;do=link');
                } else {
                    redirect('usercp.php?action=minecraftconnect&amp;do=unlink');
                }
            } else {
                redirect('usercp.php?action=minecraftconnect', $lang->mcc_usercp_err);
            }
        }
        eval("\$page = \"" . $templates->get('mcc_usercp') . "\";");
        output_page($page);
    }
    // Display link page content
    if ($mybb->get_input('action') === 'minecraftconnect' && $mybb->get_input('do') === 'link') {
        // If user already has MC acc linked, redirect them to main MCC usercp page
        if (!empty($mybb->user['mcc_username']) or isset($mybb->user['mcc_username'])) {
            redirect('usercp.php?action=minecraftconnect', $lang->mcc_already_linked);
        }
        add_breadcrumb($lang->nav_usercp, 'usercp.php');
        add_breadcrumb($lang->mcc_usercp_title, 'usercp.php?action=minecraftconnect');
        add_breadcrumb($lang->mcc_usercp_link_title, 'usercp.php?action=minecraftconnect&amp;do=link');
        // If POSTed then they're trying to submit linking form
        if ($mybb->request_method == 'post') {
            verify_post_check($mybb->get_input('my_post_key'));
            // do linking/unlinking shit
            require_once '/MinecraftConnect/MCAuth.class.php';
            $username = $db->escape_string(trim($mybb->get_input('mcusername')));
            $password = $db->escape_string($mybb->get_input('mcpassword'));
            $mc = new MCAuth($username);
            if ($mc->validateInput()) {
                $auth = $mc->authenticate($username, $password);
                if ($auth == true) {
                    $mcusername = $mc->getUsername();
                    $check = $db->num_rows($db->simple_select('users', 'uid', "mcc_username='******'"));
                    // Check if username is taken in database already
                    if ($check > 0) {
                        redirect('usercp.php?action=minecraftconnect&amp;do=link', $lang->mcc_name_taken);
                    }
                    // Link user's account
                    $db->update_query('users', array('mcc_username' => $mcusername, 'mcc_accesstoken' => $mc->getAccessToken(), 'mcc_id' => $mc->getClientToken()), "uid='{$mybb->user['uid']}'");
                    redirect('usercp.php?action=minecraftconnect', $lang->sprintf($lang->mcc_link_success, $mcusername));
                } else {
                    redirect('usercp.php?action=minecraftconnect&amp;do=link', $mc->getErr());
                }
            } else {
                redirect('usercp.php?action=minecraftconnect&amp;do=link', $mc->getErr());
            }
        } else {
            $content = $lang->mcc_link_heading;
            $mcusername = '';
            $readonly = '';
            $passwordfield = '<tr><td class="trow1">' . $lang->mcc_password . ' <input type="password" name="mcpassword"></td></tr>';
        }
        eval("\$linkpage = \"" . $templates->get('mcc_usercp_link') . "\";");
        output_page($linkpage);
    } elseif ($mybb->get_input('action') === 'minecraftconnect' && $mybb->get_input('do') === 'unlink') {
        if (empty($mybb->user['mcc_username']) or !isset($mybb->user['mcc_username'])) {
            redirect('usercp.php?action=minecraftconnect', $lang->mcc_no_link);
        }
        add_breadcrumb($lang->nav_usercp, 'usercp.php');
        add_breadcrumb($lang->mcc_usercp_title, 'usercp.php?action=minecraftconnect');
        add_breadcrumb($lang->mcc_usercp_unlink_title, 'usercp.php?action=minecraftconnect&amp;do=unlink');
        $mcuser = $mybb->user['mcc_username'];
        // Delete account if POST request
        if ($mybb->request_method == 'post') {
            verify_post_check($mybb->get_input('my_post_key'));
            $q = "UPDATE `" . TABLE_PREFIX . "users` SET `mcc_username`=NULL, `mcc_accesstoken`=NULL, `mcc_id`=NULL WHERE uid='{$mybb->user['uid']}'";
            if ($db->write_query($q)) {
                redirect('usercp.php?action=minecraftconnect', $lang->sprintf($lang->mcc_unlink_success, $mcuser));
            } else {
                $content = $lang->mcc_unlink_fail;
            }
        } else {
            $content = $lang->mcc_unlink_heading;
            $mcusername = $mcuser;
        }
        eval("\$unlinkpage = \"" . $templates->get('mcc_usercp_unlink') . "\";");
        output_page($unlinkpage);
    }
}