From 28a20a46fa6e3a286760a9766675b5d0d5fa18a3 Mon Sep 17 00:00:00 2001 From: games647 Date: Tue, 3 Oct 2017 14:19:02 +0200 Subject: [PATCH] Fix NPE parsing Mojang uuid --- .../com/github/games647/fastlogin/core/AuthStorage.java | 6 +++--- .../com/github/games647/fastlogin/core/CommonUtil.java | 8 ++++++++ .../games647/fastlogin/core/mojang/UUIDTypeAdapter.java | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java index 525019d9..c93c8f3b 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java @@ -116,7 +116,7 @@ public class AuthStorage { public PlayerProfile loadProfile(UUID uuid) { try (Connection con = dataSource.getConnection(); PreparedStatement loadStmt = con.prepareStatement(LOAD_BY_UUID)) { - loadStmt.setString(1, uuid.toString().replace("-", "")); + loadStmt.setString(1, CommonUtil.toMojangId(uuid)); try (ResultSet resultSet = loadStmt.executeQuery()) { if (resultSet.next()) { @@ -145,7 +145,7 @@ public class AuthStorage { if (uuid == null) { saveStmt.setString(1, null); } else { - saveStmt.setString(1, uuid.toString().replace("-", "")); + saveStmt.setString(1, CommonUtil.toMojangId(uuid)); } saveStmt.setString(2, playerProfile.getPlayerName()); @@ -165,7 +165,7 @@ public class AuthStorage { if (uuid == null) { saveStmt.setString(1, null); } else { - saveStmt.setString(1, uuid.toString().replace("-", "")); + saveStmt.setString(1, CommonUtil.toMojangId(uuid)); } saveStmt.setString(2, playerProfile.getPlayerName()); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java b/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java index adb03fd4..5e7f99bf 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/CommonUtil.java @@ -34,6 +34,10 @@ public class CommonUtil { } public static UUID parseId(String withoutDashes) { + if (withoutDashes == null) { + return null; + } + return UUID.fromString(withoutDashes.substring(0, 8) + '-' + withoutDashes.substring(8, 12) + '-' + withoutDashes.substring(12, 16) @@ -41,6 +45,10 @@ public class CommonUtil { + '-' + withoutDashes.substring(20, 32)); } + public static String toMojangId(UUID uuid) { + return uuid.toString().replace("-", ""); + } + public static String translateColorCodes(String rawMessage) { char[] chars = rawMessage.toCharArray(); for (int i = 0; i < chars.length - 1; i++) { diff --git a/core/src/main/java/com/github/games647/fastlogin/core/mojang/UUIDTypeAdapter.java b/core/src/main/java/com/github/games647/fastlogin/core/mojang/UUIDTypeAdapter.java index 8be2581a..4fa4f83e 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/mojang/UUIDTypeAdapter.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/mojang/UUIDTypeAdapter.java @@ -11,7 +11,7 @@ import java.util.UUID; public class UUIDTypeAdapter extends TypeAdapter { public void write(JsonWriter out, UUID value) throws IOException { - out.value(value.toString().replace("-", "")); + out.value(CommonUtil.toMojangId(value)); } public UUID read(JsonReader in) throws IOException {