Ejemplo n.º 1
0
function registerLicenseUUID($LicenseUUID, $LicenseName)
{
    global $authserver;
    $uuid = $LicenseUUID;
    $name = $LicenseName;
    // Есть ли в БД запись с таким LicenseUUID?
    $query1 = "SELECT `uuid` FROM `authserver`.`account_mojang` WHERE `license` = '{$LicenseUUID}';";
    $result1 = $authserver->query($query1) or responseWithError("InternalDatabaseError");
    // Да, запись есть
    if ($result1->num_rows) {
        // Вернём её uuid и имя
        $row = $result1->fetch_assoc();
        $uuid = $row['uuid'];
        $name = getProfileName($uuid);
        // Если обновилось имя, мы можем попробовать обновить его у себя
        if ($LicenseName != $name && isNameFree($LicenseName)) {
            $name = $LicenseName;
            // Регистрируем обновлённое имя учётной записи
            changeProfileName($uuid, $name);
        }
    } else {
        // Попытаемся создать новую запись с указанными LicenseName и LicenseUUID
        // Проверим возможность использовать LicenseUUID как UUID
        $query2 = "SELECT `uuid` FROM `authserver`.`accounts` WHERE `uuid` = '{$LicenseUUID}';";
        $result2 = $authserver->query($query2) or responseWithError("InternalDatabaseError");
        if ($result2->num_rows) {
            // Генерируем новый уникальный UUID, который ещё никем не занят
            $uuid = generateUserUUID(true);
        }
        // Регистрируем UUID и прицепляем ему LicenseUUID
        createProfile($uuid);
        bindProfileLicense($uuid, $LicenseUUID);
        // Проверим возможность использовать LicenseName как Name
        if (!isNameFree($name)) {
            // Генерируем новый уникальный ник
            $name = "License_" . substr($LicenseUUID, 0, 8);
        }
        // Регистрируем имя учётной записи
        changeProfileName($uuid, $name);
    }
    return array("uuid" => $uuid, "name" => $name);
}
Ejemplo n.º 2
0
<?php

/*
 * https://auth.methuselah.ru/toolbox/isNameFree.php?name=<name to check>
 */
define('METHUSELAH_INCLUDE_CHECK', true);
require_once "toolbox_internal.php";
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) or responseWithError("Method Not Allowed", "Good bye.");
die(isNameFree($name) ? "FREE" : "BUSY");