diff --git a/src/main/java/org/samo_lego/simpleauth/commands/AccountCommand.java b/src/main/java/org/samo_lego/simpleauth/commands/AccountCommand.java index a84e2c0..ae21638 100644 --- a/src/main/java/org/samo_lego/simpleauth/commands/AccountCommand.java +++ b/src/main/java/org/samo_lego/simpleauth/commands/AccountCommand.java @@ -72,7 +72,7 @@ public class AccountCommand { // Different thread to avoid lag spikes THREADPOOL.submit(() -> { - if (AuthHelper.checkPass(convertUuid(player), pass.toCharArray()) == 1) { + if (AuthHelper.checkPassword(convertUuid(player), pass.toCharArray()) == 1) { DB.deleteUserData(convertUuid(player)); player.sendMessage( new LiteralText(config.lang.accountDeleted), @@ -103,7 +103,7 @@ public class AccountCommand { } // Different thread to avoid lag spikes THREADPOOL.submit(() -> { - if (AuthHelper.checkPass(convertUuid(player), oldPass.toCharArray()) == 1) { + if (AuthHelper.checkPassword(convertUuid(player), oldPass.toCharArray()) == 1) { if (newPass.length() < config.main.minPasswordChars) { player.sendMessage(new LiteralText( String.format(config.lang.minPasswordChars, config.main.minPasswordChars) diff --git a/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java b/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java index 2c6278f..b28c570 100644 --- a/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java +++ b/src/main/java/org/samo_lego/simpleauth/commands/LoginCommand.java @@ -40,7 +40,7 @@ public class LoginCommand { // Putting rest of the command in different thread to avoid lag spikes THREADPOOL.submit(() -> { int maxLoginTries = config.main.maxLoginTries; - int passwordResult = AuthHelper.checkPass(uuid, pass.toCharArray()); + int passwordResult = AuthHelper.checkPassword(uuid, pass.toCharArray()); if(playerCacheMap.get(uuid).loginTries >= maxLoginTries && maxLoginTries != -1) { player.networkHandler.disconnect(new LiteralText(config.lang.loginTriesExceeded)); diff --git a/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java b/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java index f5b888e..b16d31d 100644 --- a/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java +++ b/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java @@ -79,9 +79,8 @@ public class PlayerCache { this.lastAir = 300; } - if(DB.isUserRegistered(uuid)) { - String data = DB.getData(uuid); - + String data = DB.getData(uuid); + if(!data.isEmpty()) { // Getting (hashed) password JsonObject json = gson.fromJson(data, JsonObject.class); JsonElement passwordElement = json.get("password"); diff --git a/src/main/java/org/samo_lego/simpleauth/utils/AuthHelper.java b/src/main/java/org/samo_lego/simpleauth/utils/AuthHelper.java index 36b991f..cd39534 100644 --- a/src/main/java/org/samo_lego/simpleauth/utils/AuthHelper.java +++ b/src/main/java/org/samo_lego/simpleauth/utils/AuthHelper.java @@ -22,7 +22,7 @@ public class AuthHelper { * @param password password that needs to be checked * @return 1 for pass, 0 if password is false, -1 if user is not yet registered */ - public static int checkPass(String uuid, char[] password) { + public static int checkPassword(String uuid, char[] password) { if(config.main.enableGlobalPassword) { // We have global password enabled return verifyPassword(password, config.main.globalPassword) ? 1 : 0; @@ -30,23 +30,12 @@ public class AuthHelper { else { String hashed; // Password from cache - if(playerCacheMap.containsKey(uuid)) + if(playerCacheMap.get(uuid).isRegistered) hashed = playerCacheMap.get(uuid).password; + else + return -1; - // Hashed password from DB - else { - JsonObject json = parser.parse(SimpleAuth.DB.getData(uuid)).getAsJsonObject(); - JsonElement passwordElement = json.get("password"); - if(passwordElement instanceof JsonNull) { - // This shouldn't have happened, data seems to be corrupted - return -1; - } - else { - hashed = passwordElement.getAsString(); - } - } - - if(hashed == null) + if(hashed.isEmpty()) return -1; // User is not yet registered // Verify password