diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/YggdrasilServer.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/YggdrasilServer.java index b23b351c3..656c73a25 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/YggdrasilServer.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/YggdrasilServer.java @@ -94,9 +94,16 @@ public class YggdrasilServer extends HttpServer { if (!request.getQuery().containsKey("username")) { return badRequest(); } - return findCharacterByName(request.getQuery().get("username")) - .map(character -> ok(character.toCompleteResponse(getRootUrl()))) - .orElseGet(HttpServer::noContent); + + Optional<Character> character = findCharacterByName(request.getQuery().get("username")); + + //Workaround for JDK-8138667 + //noinspection OptionalIsPresent + if (character.isPresent()) { + return ok(character.get().toCompleteResponse(getRootUrl())); + } else { + return HttpServer.noContent(); + } } private Response joinServer(Request request) { @@ -106,9 +113,15 @@ public class YggdrasilServer extends HttpServer { private Response profile(Request request) { String uuid = request.getPathVariables().group("uuid"); - return findCharacterByUuid(UUIDTypeAdapter.fromString(uuid)) - .map(character -> ok(character.toCompleteResponse(getRootUrl()))) - .orElseGet(HttpServer::noContent); + Optional<Character> character = findCharacterByUuid(UUIDTypeAdapter.fromString(uuid)); + + //Workaround for JDK-8138667 + //noinspection OptionalIsPresent + if (character.isPresent()) { + return ok(character.get().toCompleteResponse(getRootUrl())); + } else { + return HttpServer.noContent(); + } } private Response texture(Request request) {