Re-ignore case for name, Security issues T.T

This commit is contained in:
Xephi 2015-04-21 16:21:26 +02:00
parent 605a6d88c1
commit 84cf1a6627
37 changed files with 144 additions and 169 deletions

Binary file not shown.

View File

@ -25,7 +25,7 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId> <artifactId>spigot</artifactId>
<version>1.8-R0.1-SNAPSHOT</version> <version>1.8.3</version>
<scope>system</scope> <scope>system</scope>
<systemPath>${project.basedir}/lib/Spigot.jar</systemPath> <systemPath>${project.basedir}/lib/Spigot.jar</systemPath>
</dependency> </dependency>

View File

@ -9,6 +9,7 @@ import java.io.OutputStream;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -30,6 +31,7 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import com.earth2me.essentials.Essentials; import com.earth2me.essentials.Essentials;
import com.maxmind.geoip.LookupService; import com.maxmind.geoip.LookupService;
@ -200,7 +202,6 @@ public class AuthMe extends JavaPlugin {
switch (Settings.getDataSource) { switch (Settings.getDataSource) {
case FILE: case FILE:
FlatFileThread fileThread = new FlatFileThread(); FlatFileThread fileThread = new FlatFileThread();
fileThread.start();
database = fileThread; database = fileThread;
databaseThread = fileThread; databaseThread = fileThread;
final int a = database.getAccountsRegistered(); final int a = database.getAccountsRegistered();
@ -276,7 +277,7 @@ public class AuthMe extends JavaPlugin {
if (Settings.reloadSupport) if (Settings.reloadSupport)
try { try {
onReload(); onReload();
if (server.getOnlinePlayers().length < 1) { if (server.getOnlinePlayers().size() < 1) {
try { try {
database.purgeLogged(); database.purgeLogged();
} catch (NullPointerException npe) { } catch (NullPointerException npe) {
@ -446,7 +447,7 @@ public class AuthMe extends JavaPlugin {
@Override @Override
public void onDisable() { public void onDisable() {
if (Bukkit.getOnlinePlayers().length != 0) if (Bukkit.getOnlinePlayers().size() != 0)
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
this.savePlayer(player); this.savePlayer(player);
} }
@ -478,8 +479,8 @@ public class AuthMe extends JavaPlugin {
try { try {
if (Bukkit.getServer().getOnlinePlayers() != null) { if (Bukkit.getServer().getOnlinePlayers() != null) {
for (Player player : Bukkit.getServer().getOnlinePlayers()) { for (Player player : Bukkit.getServer().getOnlinePlayers()) {
if (database.isLogged(player.getName())) { if (database.isLogged(player.getName().toLowerCase())) {
String name = player.getName(); String name = player.getName().toLowerCase();
PlayerAuth pAuth = database.getAuth(name); PlayerAuth pAuth = database.getAuth(name);
if (pAuth == null) if (pAuth == null)
break; break;
@ -508,9 +509,9 @@ public class AuthMe extends JavaPlugin {
} catch (Exception e) { } catch (Exception e) {
} }
try { try {
String name = player.getName(); String name = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead() && Settings.isSaveQuitLocationEnabled) { if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead() && Settings.isSaveQuitLocationEnabled) {
final PlayerAuth auth = new PlayerAuth(player.getName(), player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ(), player.getWorld().getName()); final PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ(), player.getWorld().getName());
database.updateQuitLoc(auth); database.updateQuitLoc(auth);
} }
if (LimboCache.getInstance().hasLimboPlayer(name)) { if (LimboCache.getInstance().hasLimboPlayer(name)) {
@ -548,19 +549,19 @@ public class AuthMe extends JavaPlugin {
return m; return m;
} }
public Player generateKickPlayer(Player[] players) { public Player generateKickPlayer(Collection<? extends Player> collection) {
Player player = null; Player player = null;
int i; int i;
for (i = 0; i <= players.length; i++) { for (Player p : collection) {
Random rdm = new Random(); Random rdm = new Random();
int a = rdm.nextInt(players.length); int a = rdm.nextInt(collection.size());
if (!(authmePermissible(players[a], "authme.vip"))) { if (!(authmePermissible(p, "authme.vip"))) {
player = players[a]; player = p;
break; break;
} }
} }
if (player == null) { if (player == null) {
for (Player p : players) { for (Player p : collection) {
if (!(authmePermissible(p, "authme.vip"))) { if (!(authmePermissible(p, "authme.vip"))) {
player = p; player = p;
break; break;
@ -654,7 +655,7 @@ public class AuthMe extends JavaPlugin {
} }
private Location getAuthMeSpawn(Player player) { private Location getAuthMeSpawn(Player player) {
if ((!database.isAuthAvailable(player.getName()) || !player.hasPlayedBefore()) && (Spawn.getInstance().getFirstSpawn() != null)) if ((!database.isAuthAvailable(player.getName().toLowerCase()) || !player.hasPlayedBefore()) && (Spawn.getInstance().getFirstSpawn() != null))
return Spawn.getInstance().getFirstSpawn(); return Spawn.getInstance().getFirstSpawn();
if (Spawn.getInstance().getSpawn() != null) if (Spawn.getInstance().getSpawn() != null)
return Spawn.getInstance().getSpawn(); return Spawn.getInstance().getSpawn();
@ -726,7 +727,7 @@ public class AuthMe extends JavaPlugin {
public void run() { public void run() {
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
if (player.isOnline()) { if (player.isOnline()) {
String name = player.getName(); String name = player.getName().toLowerCase();
if (database.isAuthAvailable(name)) if (database.isAuthAvailable(name))
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
String email = database.getAuth(name).getEmail(); String email = database.getAuth(name).getEmail();
@ -743,7 +744,7 @@ public class AuthMe extends JavaPlugin {
try { try {
message = message.replace("&", "\u00a7"); message = message.replace("&", "\u00a7");
message = message.replace("{PLAYER}", player.getName()); message = message.replace("{PLAYER}", player.getName());
message = message.replace("{ONLINE}", "" + this.getServer().getOnlinePlayers().length); message = message.replace("{ONLINE}", "" + this.getServer().getOnlinePlayers().size());
message = message.replace("{MAXPLAYERS}", "" + this.getServer().getMaxPlayers()); message = message.replace("{MAXPLAYERS}", "" + this.getServer().getMaxPlayers());
message = message.replace("{IP}", getIP(player)); message = message.replace("{IP}", getIP(player));
message = message.replace("{LOGINS}", "" + PlayerCache.getInstance().getLogged()); message = message.replace("{LOGINS}", "" + PlayerCache.getInstance().getLogged());
@ -757,7 +758,7 @@ public class AuthMe extends JavaPlugin {
} }
public String getIP(Player player) { public String getIP(Player player) {
String name = player.getName(); String name = player.getName().toLowerCase();
String ip = player.getAddress().getAddress().getHostAddress(); String ip = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) { if (Settings.bungee) {
if (realIp.containsKey(name)) if (realIp.containsKey(name))
@ -772,7 +773,7 @@ public class AuthMe extends JavaPlugin {
public boolean isLoggedIp(String name, String ip) { public boolean isLoggedIp(String name, String ip) {
int count = 0; int count = 0;
for (Player player : this.getServer().getOnlinePlayers()) { for (Player player : this.getServer().getOnlinePlayers()) {
if (ip.equalsIgnoreCase(getIP(player)) && database.isLogged(player.getName()) && !player.getName().equalsIgnoreCase(name)) if (ip.equalsIgnoreCase(getIP(player)) && database.isLogged(player.getName().toLowerCase()) && !player.getName().equalsIgnoreCase(name))
count++; count++;
} }
if (count >= Settings.getMaxLoginPerIp) if (count >= Settings.getMaxLoginPerIp)

View File

@ -25,17 +25,12 @@ public class DataManager extends Thread {
public OfflinePlayer getOfflinePlayer(String name) { public OfflinePlayer getOfflinePlayer(String name) {
OfflinePlayer result = null; OfflinePlayer result = null;
try { try {
if (org.bukkit.Bukkit.class.getMethod("getOfflinePlayer", new Class[] { String.class }).isAnnotationPresent(Deprecated.class)) { for (OfflinePlayer op : Bukkit.getOfflinePlayers())
for (OfflinePlayer op : Bukkit.getOfflinePlayers()) if (op.getName().equalsIgnoreCase(name)) {
if (op.getName().equalsIgnoreCase(name)) { result = op;
result = op; break;
break; }
}
} else {
result = Bukkit.getOfflinePlayer(name);
}
} catch (Exception e) { } catch (Exception e) {
result = Bukkit.getOfflinePlayer(name);
} }
return result; return result;
} }

View File

@ -69,7 +69,7 @@ public class Utils {
case LOGGEDIN: { case LOGGEDIN: {
if (!useGroupSystem()) if (!useGroupSystem())
break; break;
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name); LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name.toLowerCase());
if (limbo == null) if (limbo == null)
break; break;
String realGroup = limbo.getGroup(); String realGroup = limbo.getGroup();

View File

@ -86,7 +86,7 @@ public class API {
public static Location getLastLocation(Player player) { public static Location getLastLocation(Player player) {
try { try {
PlayerAuth auth = PlayerCache.getInstance().getAuth(player.getName()); PlayerAuth auth = PlayerCache.getInstance().getAuth(player.getName().toLowerCase());
if (auth != null) { if (auth != null) {
Location loc = new Location(Bukkit.getWorld(auth.getWorld()), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ()); Location loc = new Location(Bukkit.getWorld(auth.getWorld()), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ());
@ -115,7 +115,7 @@ public class API {
* @return true if player is registered * @return true if player is registered
*/ */
public static boolean isRegistered(String playerName) { public static boolean isRegistered(String playerName) {
String player = playerName; String player = playerName.toLowerCase();
return database.isAuthAvailable(player); return database.isAuthAvailable(player);
} }
@ -128,7 +128,7 @@ public class API {
String passwordToCheck) { String passwordToCheck) {
if (!isRegistered(playerName)) if (!isRegistered(playerName))
return false; return false;
String player = playerName; String player = playerName.toLowerCase();
PlayerAuth auth = database.getAuth(player); PlayerAuth auth = database.getAuth(player);
try { try {
return PasswordSecurity.comparePasswordWithHash(passwordToCheck, auth.getHash(), playerName); return PasswordSecurity.comparePasswordWithHash(passwordToCheck, auth.getHash(), playerName);
@ -146,7 +146,7 @@ public class API {
*/ */
public static boolean registerPlayer(String playerName, String password) { public static boolean registerPlayer(String playerName, String password) {
try { try {
String name = playerName; String name = playerName.toLowerCase();
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, password, name); String hash = PasswordSecurity.getHash(Settings.getPasswordHash, password, name);
if (isRegistered(name)) { if (isRegistered(name)) {
return false; return false;

View File

@ -29,7 +29,7 @@ public class LimboCache {
} }
public void addLimboPlayer(Player player) { public void addLimboPlayer(Player player) {
String name = player.getName(); String name = player.getName().toLowerCase();
Location loc = player.getLocation(); Location loc = player.getLocation();
GameMode gameMode = player.getGameMode(); GameMode gameMode = player.getGameMode();
ItemStack[] arm; ItemStack[] arm;
@ -95,7 +95,7 @@ public class LimboCache {
} }
public void addLimboPlayer(Player player, String group) { public void addLimboPlayer(Player player, String group) {
cache.put(player.getName(), new LimboPlayer(player.getName(), group)); cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group));
} }
public void deleteLimboPlayer(String name) { public void deleteLimboPlayer(String name) {
@ -118,8 +118,8 @@ public class LimboCache {
} }
public void updateLimboPlayer(Player player) { public void updateLimboPlayer(Player player) {
if (this.hasLimboPlayer(player.getName())) { if (this.hasLimboPlayer(player.getName().toLowerCase())) {
this.deleteLimboPlayer(player.getName()); this.deleteLimboPlayer(player.getName().toLowerCase());
} }
this.addLimboPlayer(player); this.addLimboPlayer(player);
} }

View File

@ -161,8 +161,8 @@ public class AdminCommand implements CommandExecutor {
return true; return true;
} }
try { try {
if (database.getAuth(args[1]) != null) { if (database.getAuth(args[1].toLowerCase()) != null) {
PlayerAuth player = database.getAuth(args[1]); PlayerAuth player = database.getAuth(args[1].toLowerCase());
long lastLogin = player.getLastLogin(); long lastLogin = player.getLastLogin();
Date d = new Date(lastLogin); Date d = new Date(lastLogin);
final long diff = System.currentTimeMillis() - lastLogin; final long diff = System.currentTimeMillis() - lastLogin;
@ -195,7 +195,7 @@ public class AdminCommand implements CommandExecutor {
PlayerAuth pAuth = null; PlayerAuth pAuth = null;
String message = "[AuthMe] "; String message = "[AuthMe] ";
try { try {
pAuth = database.getAuth(arguments[1]); pAuth = database.getAuth(arguments[1].toLowerCase());
} catch (NullPointerException npe) { } catch (NullPointerException npe) {
fSender.sendMessage("[AuthMe] This player is unknown"); fSender.sendMessage("[AuthMe] This player is unknown");
return; return;
@ -273,7 +273,7 @@ public class AdminCommand implements CommandExecutor {
return true; return true;
} }
try { try {
String name = args[1]; String name = args[1].toLowerCase();
if (database.isAuthAvailable(name)) { if (database.isAuthAvailable(name)) {
m._(sender, "user_regged"); m._(sender, "user_regged");
return true; return true;
@ -299,7 +299,7 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme getemail playername"); sender.sendMessage("Usage: /authme getemail playername");
return true; return true;
} }
String playername = args[1]; String playername = args[1].toLowerCase();
PlayerAuth getAuth = database.getAuth(playername); PlayerAuth getAuth = database.getAuth(playername);
if (getAuth == null) { if (getAuth == null) {
m._(sender, "unknown_user"); m._(sender, "unknown_user");
@ -312,7 +312,7 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme chgemail playername email"); sender.sendMessage("Usage: /authme chgemail playername email");
return true; return true;
} }
String playername = args[1]; String playername = args[1].toLowerCase();
PlayerAuth getAuth = database.getAuth(playername); PlayerAuth getAuth = database.getAuth(playername);
if (getAuth == null) { if (getAuth == null) {
m._(sender, "unknown_user"); m._(sender, "unknown_user");
@ -355,7 +355,7 @@ public class AdminCommand implements CommandExecutor {
} else if (args[0].equalsIgnoreCase("purgebannedplayers")) { } else if (args[0].equalsIgnoreCase("purgebannedplayers")) {
List<String> bannedPlayers = new ArrayList<String>(); List<String> bannedPlayers = new ArrayList<String>();
for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) { for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
bannedPlayers.add(off.getName()); bannedPlayers.add(off.getName().toLowerCase());
} }
database.purgeBanned(bannedPlayers); database.purgeBanned(bannedPlayers);
if (Settings.purgeEssentialsFile && plugin.ess != null) if (Settings.purgeEssentialsFile && plugin.ess != null)
@ -399,7 +399,7 @@ public class AdminCommand implements CommandExecutor {
return true; return true;
} }
try { try {
String name = args[1]; String name = args[1].toLowerCase();
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name); String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
PlayerAuth auth = null; PlayerAuth auth = null;
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
@ -432,7 +432,7 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme unregister playername"); sender.sendMessage("Usage: /authme unregister playername");
return true; return true;
} }
String name = args[1]; String name = args[1].toLowerCase();
if (!database.isAuthAvailable(name)) { if (!database.isAuthAvailable(name)) {
m._(sender, "user_unknown"); m._(sender, "user_unknown");
return true; return true;
@ -481,7 +481,7 @@ public class AdminCommand implements CommandExecutor {
return true; return true;
} }
try { try {
String name = args[1]; String name = args[1].toLowerCase();
PlayerAuth auth = database.getAuth(name); PlayerAuth auth = database.getAuth(name);
if (auth == null) { if (auth == null) {
sender.sendMessage("The player " + name + " is not registered "); sender.sendMessage("The player " + name + " is not registered ");

View File

@ -30,7 +30,7 @@ public class CaptchaCommand implements CommandExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
String name = player.getName(); String name = player.getName().toLowerCase();
if (args.length == 0) { if (args.length == 0) {
m._(player, "usage_captcha"); m._(player, "usage_captcha");

View File

@ -42,7 +42,7 @@ public class ChangePasswordCommand implements CommandExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
String name = player.getName(); String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) { if (!PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "not_logged_in"); m._(player, "not_logged_in");
return true; return true;

View File

@ -56,7 +56,7 @@ public class LogoutCommand implements CommandExecutor {
} }
final Player player = (Player) sender; final Player player = (Player) sender;
String name = player.getName(); String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) { if (!PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "not_logged_in"); m._(player, "not_logged_in");

View File

@ -33,7 +33,7 @@ public class PasspartuCommand implements CommandExecutor {
return true; return true;
} }
if (PlayerCache.getInstance().isAuthenticated(sender.getName())) { if (PlayerCache.getInstance().isAuthenticated(sender.getName().toLowerCase())) {
return true; return true;
} }

View File

@ -55,7 +55,7 @@ public class UnregisterCommand implements CommandExecutor {
} }
Player player = (Player) sender; Player player = (Player) sender;
String name = player.getName(); String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) { if (!PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "not_logged_in"); m._(player, "not_logged_in");
@ -84,7 +84,7 @@ public class UnregisterCommand implements CommandExecutor {
player.getInventory().setContents(new ItemStack[36]); player.getInventory().setContents(new ItemStack[36]);
player.getInventory().setArmorContents(new ItemStack[4]); player.getInventory().setArmorContents(new ItemStack[4]);
player.saveData(); player.saveData();
PlayerCache.getInstance().removePlayer(player.getName()); PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
if (!Settings.getRegisteredGroup.isEmpty()) if (!Settings.getRegisteredGroup.isEmpty())
Utils.getInstance().setGroup(player, groupType.UNREGISTERED); Utils.getInstance().setGroup(player, groupType.UNREGISTERED);
LimboCache.getInstance().addLimboPlayer(player); LimboCache.getInstance().addLimboPlayer(player);
@ -106,7 +106,7 @@ public class UnregisterCommand implements CommandExecutor {
if (!Settings.unRegisteredGroup.isEmpty()) { if (!Settings.unRegisteredGroup.isEmpty()) {
Utils.getInstance().setGroup(player, Utils.groupType.UNREGISTERED); Utils.getInstance().setGroup(player, Utils.groupType.UNREGISTERED);
} }
PlayerCache.getInstance().removePlayer(player.getName()); PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
// check if Player cache File Exist and delete it, preventing // check if Player cache File Exist and delete it, preventing
// duplication of items // duplication of items
if (playerCache.doesCacheExist(player)) { if (playerCache.doesCacheExist(player)) {

View File

@ -57,7 +57,7 @@ public class CrazyLoginConverter implements Converter {
continue; continue;
if (args[0].equalsIgnoreCase("name")) if (args[0].equalsIgnoreCase("name"))
continue; continue;
String player = args[0]; String player = args[0].toLowerCase();
String psw = args[1]; String psw = args[1];
try { try {
if (player != null && psw != null) { if (player != null && psw != null) {

View File

@ -31,7 +31,7 @@ public class RoyalAuthConverter implements Converter {
if (!file.exists()) if (!file.exists())
continue; continue;
RoyalAuthYamlReader ra = new RoyalAuthYamlReader(file); RoyalAuthYamlReader ra = new RoyalAuthYamlReader(file);
PlayerAuth auth = new PlayerAuth(o.getName(), ra.getHash(), "127.0.0.1", ra.getLastLogin(), "your@email.com"); PlayerAuth auth = new PlayerAuth(name, ra.getHash(), "127.0.0.1", ra.getLastLogin(), "your@email.com");
data.saveAuth(auth); data.saveAuth(auth);
} catch (Exception e) { } catch (Exception e) {
ConsoleLogger.showError("Error while trying to import " + o.getName() + " RoyalAuth datas"); ConsoleLogger.showError("Error while trying to import " + o.getName() + " RoyalAuth datas");

View File

@ -72,7 +72,7 @@ public class newxAuthToFlat {
rs = ps.executeQuery(); rs = ps.executeQuery();
if (!rs.next()) if (!rs.next())
return null; return null;
realPass = rs.getString("playername"); realPass = rs.getString("playername").toLowerCase();
} catch (SQLException e) { } catch (SQLException e) {
xAuthLog.severe("Failed to retrieve name for account: " + id, e); xAuthLog.severe("Failed to retrieve name for account: " + id, e);
return null; return null;

View File

@ -77,7 +77,7 @@ public class oldxAuthToFlat {
rs = ps.executeQuery(); rs = ps.executeQuery();
if (!rs.next()) if (!rs.next())
return null; return null;
realPass = rs.getString("playername"); realPass = rs.getString("playername").toLowerCase();
} catch (SQLException e) { } catch (SQLException e) {
xAuthLog.severe("Failed to retrieve name for account: " + id, e); xAuthLog.severe("Failed to retrieve name for account: " + id, e);
return null; return null;

View File

@ -47,9 +47,9 @@ public class vAuthFileReader {
} }
if (pname == null) if (pname == null)
continue; continue;
auth = new PlayerAuth(pname, password, "127.0.0.1", System.currentTimeMillis(), "your@email.com"); auth = new PlayerAuth(pname.toLowerCase(), password, "127.0.0.1", System.currentTimeMillis(), "your@email.com");
} else { } else {
auth = new PlayerAuth(name, password, "127.0.0.1", System.currentTimeMillis(), "your@email.com"); auth = new PlayerAuth(name.toLowerCase(), password, "127.0.0.1", System.currentTimeMillis(), "your@email.com");
} }
if (auth != null) if (auth != null)
database.saveAuth(auth); database.saveAuth(auth);

View File

@ -22,13 +22,14 @@ public class CacheDataSource implements DataSource {
@Override @Override
public synchronized boolean isAuthAvailable(String user) { public synchronized boolean isAuthAvailable(String user) {
if (cache.containsKey(user)) if (cache.containsKey(user.toLowerCase()))
return true; return true;
return source.isAuthAvailable(user); return source.isAuthAvailable(user.toLowerCase());
} }
@Override @Override
public synchronized PlayerAuth getAuth(String user) { public synchronized PlayerAuth getAuth(String user) {
user = user.toLowerCase();
if (cache.containsKey(user)) { if (cache.containsKey(user)) {
return cache.get(user); return cache.get(user);
} else { } else {
@ -134,7 +135,7 @@ public class CacheDataSource implements DataSource {
cache.clear(); cache.clear();
source.reload(); source.reload();
for (Player player : plugin.getServer().getOnlinePlayers()) { for (Player player : plugin.getServer().getOnlinePlayers()) {
String user = player.getName(); String user = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(user)) { if (PlayerCache.getInstance().isAuthenticated(user)) {
try { try {
PlayerAuth auth = source.getAuth(user); PlayerAuth auth = source.getAuth(user);
@ -198,17 +199,17 @@ public class CacheDataSource implements DataSource {
@Override @Override
public boolean isLogged(String user) { public boolean isLogged(String user) {
return source.isLogged(user); return source.isLogged(user.toLowerCase());
} }
@Override @Override
public void setLogged(String user) { public void setLogged(String user) {
source.setLogged(user); source.setLogged(user.toLowerCase());
} }
@Override @Override
public void setUnlogged(String user) { public void setUnlogged(String user) {
source.setUnlogged(user); source.setUnlogged(user.toLowerCase());
} }
@Override @Override

View File

@ -651,17 +651,17 @@ public class FlatFileThread extends Thread implements DataSource {
@Override @Override
public boolean isLogged(String user) { public boolean isLogged(String user) {
return PlayersLogs.getInstance().players.contains(user); return PlayersLogs.getInstance().players.contains(user.toLowerCase());
} }
@Override @Override
public void setLogged(String user) { public void setLogged(String user) {
PlayersLogs.getInstance().addPlayer(user); PlayersLogs.getInstance().addPlayer(user.toLowerCase());
} }
@Override @Override
public void setUnlogged(String user) { public void setUnlogged(String user) {
PlayersLogs.getInstance().removePlayer(user); PlayersLogs.getInstance().removePlayer(user.toLowerCase());
} }
@Override @Override

View File

@ -188,7 +188,8 @@ public class MySQLThread extends Thread implements DataSource {
} }
} }
@Override @SuppressWarnings("resource")
@Override
public synchronized PlayerAuth getAuth(String user) { public synchronized PlayerAuth getAuth(String user) {
Connection con = null; Connection con = null;
PreparedStatement pst = null; PreparedStatement pst = null;
@ -203,14 +204,14 @@ public class MySQLThread extends Thread implements DataSource {
if (rs.next()) { if (rs.next()) {
id = rs.getInt(columnID); id = rs.getInt(columnID);
if (rs.getString(columnIp).isEmpty() && rs.getString(columnIp) != null) { if (rs.getString(columnIp).isEmpty() && rs.getString(columnIp) != null) {
pAuth = new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), "198.18.0.1", rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail)); pAuth = new PlayerAuth(rs.getString(columnName).toLowerCase(), rs.getString(columnPassword), "198.18.0.1", rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail));
} else { } else {
if (!columnSalt.isEmpty()) { if (!columnSalt.isEmpty()) {
if (!columnGroup.isEmpty()) if (!columnGroup.isEmpty())
pAuth = new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnSalt), rs.getInt(columnGroup), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail)); pAuth = new PlayerAuth(rs.getString(columnName).toLowerCase(), rs.getString(columnPassword), rs.getString(columnSalt), rs.getInt(columnGroup), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail));
else pAuth = new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnSalt), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail)); else pAuth = new PlayerAuth(rs.getString(columnName).toLowerCase(), rs.getString(columnPassword), rs.getString(columnSalt), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail));
} else { } else {
pAuth = new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail)); pAuth = new PlayerAuth(rs.getString(columnName).toLowerCase(), rs.getString(columnPassword), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getDouble(lastlocX), rs.getDouble(lastlocY), rs.getDouble(lastlocZ), rs.getString(lastlocWorld), rs.getString(columnEmail));
} }
} }
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) { if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {

View File

@ -508,17 +508,17 @@ public class SQLiteThread extends Thread implements DataSource {
@Override @Override
public boolean isLogged(String user) { public boolean isLogged(String user) {
return PlayersLogs.getInstance().players.contains(user); return PlayersLogs.getInstance().players.contains(user.toLowerCase());
} }
@Override @Override
public void setLogged(String user) { public void setLogged(String user) {
PlayersLogs.getInstance().addPlayer(user); PlayersLogs.getInstance().addPlayer(user.toLowerCase());
} }
@Override @Override
public void setUnlogged(String user) { public void setUnlogged(String user) {
PlayersLogs.getInstance().removePlayer(user); PlayersLogs.getInstance().removePlayer(user.toLowerCase());
} }
@Override @Override

View File

@ -29,7 +29,7 @@ public class AuthMeBlockListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
@ -54,13 +54,13 @@ public class AuthMeBlockListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
} }
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(name)) {
return; return;
} }

View File

@ -31,7 +31,7 @@ public class AuthMeChestShopListener implements Listener {
} }
Player player = event.getClient(); Player player = event.getClient();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;

View File

@ -48,7 +48,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
Player player = (Player) entity; Player player = (Player) entity;
String name = player.getName(); String name = player.getName().toLowerCase();
if (CombatTagComunicator.isNPC(player)) if (CombatTagComunicator.isNPC(player))
return; return;
@ -83,7 +83,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
Player player = (Player) entity; Player player = (Player) entity;
String name = player.getName(); String name = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
return; return;
@ -111,7 +111,7 @@ public class AuthMeEntityListener implements Listener {
} }
Player player = (Player) entity; Player player = (Player) entity;
String name = player.getName(); String name = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
return; return;
@ -135,7 +135,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
Player player = (Player) entity; Player player = (Player) entity;
String name = player.getName(); String name = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
return; return;
@ -166,7 +166,7 @@ public class AuthMeEntityListener implements Listener {
return; return;
Player player = (Player) entity; Player player = (Player) entity;
String name = player.getName(); String name = player.getName().toLowerCase();
if (PlayerCache.getInstance().isAuthenticated(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) {
return; return;
@ -193,7 +193,7 @@ public class AuthMeEntityListener implements Listener {
} }
Player player = (Player) event.getEntity(); Player player = (Player) event.getEntity();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
@ -225,7 +225,7 @@ public class AuthMeEntityListener implements Listener {
} }
Player player = (Player) event.getEntity(); Player player = (Player) event.getEntity();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;

View File

@ -86,7 +86,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -121,7 +121,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -158,7 +158,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -195,7 +195,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -232,7 +232,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -269,7 +269,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -307,7 +307,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) if (Utils.getInstance().isUnrestricted(player))
return; return;
@ -343,7 +343,7 @@ public class AuthMePlayerListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
@ -384,22 +384,7 @@ public class AuthMePlayerListener implements Listener {
public void onPlayerLogin(PlayerLoginEvent event) { public void onPlayerLogin(PlayerLoginEvent event) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String lowname = player.getName().toLowerCase(); final String name = player.getName().toLowerCase();
final String name = player.getName();
if (!lowname.equals(name)) {
// Little workaround to be sure registered player is the same as this
if (player.hasPlayedBefore() && !player.isOnline())
// Make sure it's the correct player
if (data.isAuthAvailable(lowname)) {
if (data.getAuth(lowname).getIp().equalsIgnoreCase(player.getAddress().getAddress().getHostAddress())) {
data.updateName(lowname, name);
} else {
event.setResult(PlayerLoginEvent.Result.KICK_OTHER);
event.setKickMessage(m._("same_nick")[0]);
}
}
}
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
@ -436,7 +421,7 @@ public class AuthMePlayerListener implements Listener {
if (!Settings.isSessionsEnabled) { if (!Settings.isSessionsEnabled) {
} else if (PlayerCache.getInstance().isAuthenticated(name)) { } else if (PlayerCache.getInstance().isAuthenticated(name)) {
if (!Settings.sessionExpireOnIpChange) if (!Settings.sessionExpireOnIpChange)
if (LimboCache.getInstance().hasLimboPlayer(player.getName())) { if (LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
LimboCache.getInstance().deleteLimboPlayer(name); LimboCache.getInstance().deleteLimboPlayer(name);
} }
} }
@ -444,11 +429,11 @@ public class AuthMePlayerListener implements Listener {
// Check if forceSingleSession is set to true, so kick player that has // Check if forceSingleSession is set to true, so kick player that has
// joined with same nick of online player // joined with same nick of online player
if (player.isOnline() && Settings.isForceSingleSessionEnabled) { if (player.isOnline() && Settings.isForceSingleSessionEnabled) {
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName()); LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick")[0]); event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick")[0]);
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
utils.addNormal(player, limbo.getGroup()); utils.addNormal(player, limbo.getGroup());
LimboCache.getInstance().deleteLimboPlayer(player.getName()); LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
} }
return; return;
} }
@ -507,7 +492,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) { if (plugin.getServer().getOnlinePlayers().size() > plugin.getServer().getMaxPlayers()) {
event.allow(); event.allow();
return; return;
} else { } else {
@ -547,12 +532,12 @@ public class AuthMePlayerListener implements Listener {
}, Settings.antiBotDuration * 1200); }, Settings.antiBotDuration * 1200);
return; return;
} }
antibot.put(event.getPlayer().getName(), event); antibot.put(event.getPlayer().getName().toLowerCase(), event);
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override @Override
public void run() { public void run() {
antibot.remove(event.getPlayer().getName()); antibot.remove(event.getPlayer().getName().toLowerCase());
} }
}, 300); }, 300);
} }
@ -563,7 +548,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
final String name = player.getName(); final String name = player.getName().toLowerCase();
Location spawnLoc = plugin.getSpawnLocation(player); Location spawnLoc = plugin.getSpawnLocation(player);
gm = player.getGameMode(); gm = player.getGameMode();
gameMode.put(name, gm); gameMode.put(name, gm);
@ -575,7 +560,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.ess != null && Settings.disableSocialSpy) { if (plugin.ess != null && Settings.disableSocialSpy) {
try { try {
plugin.ess.getUser(player.getName()).setSocialSpyEnabled(false); plugin.ess.getUser(player.getName().toLowerCase()).setSocialSpyEnabled(false);
} catch (Exception e) { } catch (Exception e) {
} catch (NoSuchMethodError e) { } catch (NoSuchMethodError e) {
} }
@ -695,7 +680,7 @@ public class AuthMePlayerListener implements Listener {
} }
if (Settings.protectInventoryBeforeLogInEnabled) { if (Settings.protectInventoryBeforeLogInEnabled) {
try { try {
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName()); LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
ProtectInventoryEvent ev = new ProtectInventoryEvent(player, limbo.getInventory(), limbo.getArmour()); ProtectInventoryEvent ev = new ProtectInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
plugin.getServer().getPluginManager().callEvent(ev); plugin.getServer().getPluginManager().callEvent(ev);
if (ev.isCancelled()) { if (ev.isCancelled()) {
@ -777,7 +762,7 @@ public class AuthMePlayerListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
Location loc = player.getLocation(); Location loc = player.getLocation();
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
@ -855,7 +840,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
String name = player.getName(); String name = player.getName().toLowerCase();
String ip = plugin.getIP(player); String ip = plugin.getIP(player);
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead())) { if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead())) {
@ -929,7 +914,7 @@ public class AuthMePlayerListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
@ -938,7 +923,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -957,7 +942,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
@ -966,7 +951,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -986,7 +971,7 @@ public class AuthMePlayerListener implements Listener {
if (event.isCancelled() || event.getPlayer() == null) if (event.isCancelled() || event.getPlayer() == null)
return; return;
Player player = (Player) event.getPlayer(); Player player = (Player) event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
@ -995,7 +980,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -1015,7 +1000,7 @@ public class AuthMePlayerListener implements Listener {
if (!(event.getWhoClicked() instanceof Player)) if (!(event.getWhoClicked() instanceof Player))
return; return;
Player player = (Player) event.getWhoClicked(); Player player = (Player) event.getWhoClicked();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
@ -1024,7 +1009,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -1044,13 +1029,13 @@ public class AuthMePlayerListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
} }
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -1068,7 +1053,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return; return;
@ -1077,7 +1062,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return; return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -1095,13 +1080,13 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
} }
if (PlayerCache.getInstance().isAuthenticated(player.getName())) { if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return; return;
} }
@ -1119,7 +1104,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) { if (Utils.getInstance().isUnrestricted(player)) {
return; return;
} }
@ -1141,7 +1126,7 @@ public class AuthMePlayerListener implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return; return;
@ -1181,7 +1166,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.authmePermissible(player, "authme.bypassforcesurvival")) if (plugin.authmePermissible(player, "authme.bypassforcesurvival"))
return; return;
String name = player.getName(); String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return; return;

View File

@ -20,7 +20,7 @@ public class AuthMeSpoutListener implements Listener {
@EventHandler @EventHandler
public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) { public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) {
if (SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) { if (SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) {
if (data.isAuthAvailable(event.getPlayer().getName()) && !PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName())) { if (data.isAuthAvailable(event.getPlayer().getName().toLowerCase()) && !PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase())) {
event.getPlayer().getMainScreen().attachPopupScreen(new LoginScreen(event.getPlayer())); event.getPlayer().getMainScreen().attachPopupScreen(new LoginScreen(event.getPlayer()));
} }
} }

View File

@ -28,7 +28,7 @@ public class BungeeCordMessage implements PluginMessageListener {
String subchannel = in.readUTF(); String subchannel = in.readUTF();
if (subchannel.equals("IP")) { // We need only the IP channel if (subchannel.equals("IP")) { // We need only the IP channel
String ip = in.readUTF(); String ip = in.readUTF();
plugin.realIp.put(player.getName(), ip); plugin.realIp.put(player.getName().toLowerCase(), ip);
// Put the IP (only the ip not the port) in the hashmap // Put the IP (only the ip not the port) in the hashmap
} }
} catch (IOException ex) { } catch (IOException ex) {

View File

@ -25,6 +25,7 @@ public class AsyncronousLogin {
protected Player player; protected Player player;
protected String name; protected String name;
protected String realName;
protected String password; protected String password;
protected boolean forceLogin; protected boolean forceLogin;
private AuthMe plugin; private AuthMe plugin;
@ -36,7 +37,8 @@ public class AsyncronousLogin {
AuthMe plugin, DataSource data) { AuthMe plugin, DataSource data) {
this.player = player; this.player = player;
this.password = password; this.password = password;
name = player.getName(); name = player.getName().toLowerCase();
realName = player.getName();
this.forceLogin = forceLogin; this.forceLogin = forceLogin;
this.plugin = plugin; this.plugin = plugin;
this.database = data; this.database = data;
@ -124,7 +126,7 @@ public class AsyncronousLogin {
boolean passwordVerified = true; boolean passwordVerified = true;
if (!forceLogin) if (!forceLogin)
try { try {
passwordVerified = PasswordSecurity.comparePasswordWithHash(password, hash, name); passwordVerified = PasswordSecurity.comparePasswordWithHash(password, hash, realName);
} catch (Exception ex) { } catch (Exception ex) {
ConsoleLogger.showError(ex.getMessage()); ConsoleLogger.showError(ex.getMessage());
m._(player, "error"); m._(player, "error");

View File

@ -40,7 +40,7 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
this.database = data; this.database = data;
this.pm = plugin.getServer().getPluginManager(); this.pm = plugin.getServer().getPluginManager();
this.player = player; this.player = player;
this.name = player.getName(); this.name = player.getName().toLowerCase();
this.limbo = LimboCache.getInstance().getLimboPlayer(name); this.limbo = LimboCache.getInstance().getLimboPlayer(name);
this.auth = database.getAuth(name); this.auth = database.getAuth(name);
this.playerCache = new FileCache(plugin); this.playerCache = new FileCache(plugin);

View File

@ -29,7 +29,7 @@ public class AsyncronousRegister {
AuthMe plugin, DataSource data) { AuthMe plugin, DataSource data) {
this.player = player; this.player = player;
this.password = password; this.password = password;
name = player.getName(); name = player.getName().toLowerCase();
this.email = email; this.email = email;
this.plugin = plugin; this.plugin = plugin;
this.database = data; this.database = data;
@ -57,10 +57,10 @@ public class AsyncronousRegister {
allowRegister = false; allowRegister = false;
} }
if (database.isAuthAvailable(player.getName())) { if (database.isAuthAvailable(name)) {
m._(player, "user_regged"); m._(player, "user_regged");
if (plugin.pllog.getStringList("players").contains(player.getName())) { if (plugin.pllog.getStringList("players").contains(name)) {
plugin.pllog.getStringList("players").remove(player.getName()); plugin.pllog.getStringList("players").remove(name);
} }
allowRegister = false; allowRegister = false;
} }

View File

@ -22,7 +22,7 @@ public class ProcessSyncronousEmailRegister implements Runnable {
public ProcessSyncronousEmailRegister(Player player, AuthMe plugin) { public ProcessSyncronousEmailRegister(Player player, AuthMe plugin) {
this.player = player; this.player = player;
this.name = player.getName(); this.name = player.getName().toLowerCase();
this.plugin = plugin; this.plugin = plugin;
} }

View File

@ -31,7 +31,7 @@ public class ProcessSyncronousPasswordRegister implements Runnable {
public ProcessSyncronousPasswordRegister(Player player, AuthMe plugin) { public ProcessSyncronousPasswordRegister(Player player, AuthMe plugin) {
this.player = player; this.player = player;
this.name = player.getName(); this.name = player.getName().toLowerCase();
this.plugin = plugin; this.plugin = plugin;
} }

View File

@ -78,16 +78,6 @@ public class CustomConfiguration extends YamlConfiguration {
Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Failed to load config from JAR"); Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Failed to load config from JAR");
out = false; out = false;
} }
/*
* FileOutputStream fos = null; try { fos = new
* FileOutputStream(file); byte[] buf = new byte[1024]; int i = 0;
* while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } }
* catch (Exception e) {
* Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE,
* "Failed to load config from JAR"); out = false; } finally { try {
* if (fis != null) { fis.close(); } if (fos != null) { fos.close();
* } } catch (Exception e) { } } }
*/
} }
return out; return out;
} }

View File

@ -35,8 +35,8 @@ public class PlayersLogs extends CustomConfiguration {
public void addPlayer(String user) { public void addPlayer(String user) {
players = this.getStringList("players"); players = this.getStringList("players");
if (!players.contains(user)) { if (!players.contains(user.toLowerCase())) {
players.add(user); players.add(user.toLowerCase());
set("players", players); set("players", players);
save(); save();
} }
@ -44,8 +44,8 @@ public class PlayersLogs extends CustomConfiguration {
public void removePlayer(String user) { public void removePlayer(String user) {
players = this.getStringList("players"); players = this.getStringList("players");
if (players.contains(user)) { if (players.contains(user.toLowerCase())) {
players.remove(user); players.remove(user.toLowerCase());
set("players", players); set("players", players);
save(); save();
} }

View File

@ -28,7 +28,7 @@ public class MessageTask implements Runnable {
return; return;
for (Player player : plugin.getServer().getOnlinePlayers()) { for (Player player : plugin.getServer().getOnlinePlayers()) {
if (player.getName().equals(name)) { if (player.getName().toLowerCase().equals(name)) {
for (String ms : msg) { for (String ms : msg) {
player.sendMessage(ms); player.sendMessage(ms);
} }

View File

@ -35,7 +35,7 @@ public class TimeoutTask implements Runnable {
return; return;
for (Player player : plugin.getServer().getOnlinePlayers()) { for (Player player : plugin.getServer().getOnlinePlayers()) {
if (player.getName().equals(name)) { if (player.getName().toLowerCase().equals(name)) {
if (LimboCache.getInstance().hasLimboPlayer(name)) { if (LimboCache.getInstance().hasLimboPlayer(name)) {
LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(name); LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(name);
player.getServer().getScheduler().cancelTask(inv.getMessageTaskId()); player.getServer().getScheduler().cancelTask(inv.getMessageTaskId());