Always specify Locale on toLowerCase and toUpperCase usages, fixes AuthMe not working correctly on machines with turkish locale. ('I'.toLowerCase() => 'ı')

This commit is contained in:
Gabriele C
2022-08-20 04:41:04 +02:00
parent c38e2aba28
commit 75b3a571e1
67 changed files with 217 additions and 143 deletions
@@ -15,6 +15,7 @@ import fr.xephi.authme.util.Utils;
import org.bukkit.entity.Player;
import javax.inject.Inject;
import java.util.Locale;
/**
* Async task to add an email to an account.
@@ -48,7 +49,7 @@ public class AsyncAddEmail implements AsynchronousProcess {
* @param email the email to add
*/
public void addEmail(Player player, String email) {
String playerName = player.getName().toLowerCase();
String playerName = player.getName().toLowerCase(Locale.ROOT);
if (playerCache.isAuthenticated(playerName)) {
PlayerAuth auth = playerCache.getAuth(playerName);
@@ -14,6 +14,7 @@ import fr.xephi.authme.service.ValidationService;
import org.bukkit.entity.Player;
import javax.inject.Inject;
import java.util.Locale;
/**
* Async task for changing the email.
@@ -48,7 +49,7 @@ public class AsyncChangeEmail implements AsynchronousProcess {
* @param newEmail provided new email
*/
public void changeEmail(Player player, String oldEmail, String newEmail) {
String playerName = player.getName().toLowerCase();
String playerName = player.getName().toLowerCase(Locale.ROOT);
if (playerCache.isAuthenticated(playerName)) {
PlayerAuth auth = playerCache.getAuth(playerName);
String currentEmail = auth.getEmail();