Beta version

This commit is too large to list all changes.
This commit is contained in:
2020-06-27 00:32:33 +01:00
parent d15c0cb12f
commit 5a8c080a31
135 changed files with 8534 additions and 12774 deletions

53
app/UUID/UUID.php Normal file
View File

@@ -0,0 +1,53 @@
<?php
namespace App\UUID;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class UUID
{
// Caching would not be needed here since this method won't be used in pages that loop over a collection of usernames.
public function toUUID($username)
{
if (is_null($username))
{
throw new \LogicException('Argument username for ' . __METHOD__ . ' cannot be null!');
}
$response = json_decode(Http::post(config('general.urls.mojang.api') . '/profiles/minecraft', [
$username
])->body(), true);
return $response[0]['id'];
}
// Note: Caching could simply be assigning the username to it's UUID, however, to make this work, we'd need to loop over all cache items, which would be slighly ineffective
public function toUsername($uuid)
{
if (is_null($uuid))
{
throw new \LogicException('Argument uuid for ' . __METHOD__ . ' cannot be null!');
}
$shortUUID = substr($uuid, 0, 8);
$username = Cache::remember('uuid_' . $shortUUID, now()->addDays(30), function() use ($shortUUID, $uuid) {
$response = json_decode(Http::get(config('general.urls.mojang.session') . '/session/minecraft/profile/' . $uuid)->body(), true);
Log::debug('Caching ' . $shortUUID . 'for thirty days');
return $response['name'];
});
return $username;
}
}