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); }
<?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");