From 3fde4fab900d9f1b47d5e605d4dc5392f05d18ef Mon Sep 17 00:00:00 2001 From: flashwave Date: Wed, 23 Aug 2023 18:06:47 +0000 Subject: [PATCH] Added more output types for the uuid endpoint. --- src/MojangInterop.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/MojangInterop.php b/src/MojangInterop.php index e8ba0fb..53ac87e 100644 --- a/src/MojangInterop.php +++ b/src/MojangInterop.php @@ -36,7 +36,7 @@ final class MojangInterop { } public static function registerRoutes(IRouter $router): void { - $router->get('/uuid', fn($response, $request) => self::uuidResolver($request)); + $router->get('/uuid', fn($response, $request) => self::uuidResolver($response, $request)); $router->get('/blockedservers', fn($response, $request) => self::proxyBlockServers($response, $request)); // figure out how to proxy these someday to keep online mode working transparently @@ -44,8 +44,17 @@ final class MojangInterop { $router->post('/session/minecraft/join', fn() => 501); } - public static function uuidResolver(HttpRequest $request): string { - return (string)self::createOfflinePlayerUUID((string)$request->getParam('name'))->getHex(); + public static function uuidResolver(HttpResponseBuilder $response, HttpRequest $request): string { + $response->setTypePlain(); + $uuid = self::createOfflinePlayerUUID((string)$request->getParam('name')); + + return (string)match((string)$request->getParam('mode')) { + 'str' => $uuid->toString(), + 'urn' => $uuid->getUrn(), + 'raw' => $uuid->getBytes(), + 'int' => $uuid->getInteger(), + default => $uuid->getHex(), + }; } public static function getRequest(string $url, string $userAgent): object {