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>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.8-R0.1-SNAPSHOT</version>
<version>1.8.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/Spigot.jar</systemPath>
</dependency>

View File

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

View File

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

View File

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

View File

@ -86,7 +86,7 @@ public class API {
public static Location getLastLocation(Player player) {
try {
PlayerAuth auth = PlayerCache.getInstance().getAuth(player.getName());
PlayerAuth auth = PlayerCache.getInstance().getAuth(player.getName().toLowerCase());
if (auth != null) {
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
*/
public static boolean isRegistered(String playerName) {
String player = playerName;
String player = playerName.toLowerCase();
return database.isAuthAvailable(player);
}
@ -128,7 +128,7 @@ public class API {
String passwordToCheck) {
if (!isRegistered(playerName))
return false;
String player = playerName;
String player = playerName.toLowerCase();
PlayerAuth auth = database.getAuth(player);
try {
return PasswordSecurity.comparePasswordWithHash(passwordToCheck, auth.getHash(), playerName);
@ -146,7 +146,7 @@ public class API {
*/
public static boolean registerPlayer(String playerName, String password) {
try {
String name = playerName;
String name = playerName.toLowerCase();
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, password, name);
if (isRegistered(name)) {
return false;

View File

@ -29,7 +29,7 @@ public class LimboCache {
}
public void addLimboPlayer(Player player) {
String name = player.getName();
String name = player.getName().toLowerCase();
Location loc = player.getLocation();
GameMode gameMode = player.getGameMode();
ItemStack[] arm;
@ -95,7 +95,7 @@ public class LimboCache {
}
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) {
@ -118,8 +118,8 @@ public class LimboCache {
}
public void updateLimboPlayer(Player player) {
if (this.hasLimboPlayer(player.getName())) {
this.deleteLimboPlayer(player.getName());
if (this.hasLimboPlayer(player.getName().toLowerCase())) {
this.deleteLimboPlayer(player.getName().toLowerCase());
}
this.addLimboPlayer(player);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -31,7 +31,7 @@ public class RoyalAuthConverter implements Converter {
if (!file.exists())
continue;
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);
} catch (Exception e) {
ConsoleLogger.showError("Error while trying to import " + o.getName() + " RoyalAuth datas");

View File

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

View File

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

View File

@ -47,9 +47,9 @@ public class vAuthFileReader {
}
if (pname == null)
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 {
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)
database.saveAuth(auth);

View File

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

View File

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

View File

@ -188,7 +188,8 @@ public class MySQLThread extends Thread implements DataSource {
}
}
@Override
@SuppressWarnings("resource")
@Override
public synchronized PlayerAuth getAuth(String user) {
Connection con = null;
PreparedStatement pst = null;
@ -203,14 +204,14 @@ public class MySQLThread extends Thread implements DataSource {
if (rs.next()) {
id = rs.getInt(columnID);
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 {
if (!columnSalt.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));
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));
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).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 {
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) {

View File

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

View File

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

View File

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

View File

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

View File

@ -86,7 +86,7 @@ public class AuthMePlayerListener implements Listener {
return;
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -121,7 +121,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -158,7 +158,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -195,7 +195,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -232,7 +232,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -269,7 +269,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -307,7 +307,7 @@ public class AuthMePlayerListener implements Listener {
return;
final Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player))
return;
@ -343,7 +343,7 @@ public class AuthMePlayerListener implements Listener {
}
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)) {
return;
@ -384,22 +384,7 @@ public class AuthMePlayerListener implements Listener {
public void onPlayerLogin(PlayerLoginEvent event) {
final Player player = event.getPlayer();
final String lowname = 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]);
}
}
}
final String name = player.getName().toLowerCase();
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return;
@ -436,7 +421,7 @@ public class AuthMePlayerListener implements Listener {
if (!Settings.isSessionsEnabled) {
} else if (PlayerCache.getInstance().isAuthenticated(name)) {
if (!Settings.sessionExpireOnIpChange)
if (LimboCache.getInstance().hasLimboPlayer(player.getName())) {
if (LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
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
// joined with same nick of online player
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]);
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
utils.addNormal(player, limbo.getGroup());
LimboCache.getInstance().deleteLimboPlayer(player.getName());
LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
}
return;
}
@ -507,7 +492,7 @@ public class AuthMePlayerListener implements Listener {
return;
}
if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
if (plugin.getServer().getOnlinePlayers().size() > plugin.getServer().getMaxPlayers()) {
event.allow();
return;
} else {
@ -547,12 +532,12 @@ public class AuthMePlayerListener implements Listener {
}, Settings.antiBotDuration * 1200);
return;
}
antibot.put(event.getPlayer().getName(), event);
antibot.put(event.getPlayer().getName().toLowerCase(), event);
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
antibot.remove(event.getPlayer().getName());
antibot.remove(event.getPlayer().getName().toLowerCase());
}
}, 300);
}
@ -563,7 +548,7 @@ public class AuthMePlayerListener implements Listener {
return;
}
Player player = event.getPlayer();
final String name = player.getName();
final String name = player.getName().toLowerCase();
Location spawnLoc = plugin.getSpawnLocation(player);
gm = player.getGameMode();
gameMode.put(name, gm);
@ -575,7 +560,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.ess != null && Settings.disableSocialSpy) {
try {
plugin.ess.getUser(player.getName()).setSocialSpyEnabled(false);
plugin.ess.getUser(player.getName().toLowerCase()).setSocialSpyEnabled(false);
} catch (Exception e) {
} catch (NoSuchMethodError e) {
}
@ -695,7 +680,7 @@ public class AuthMePlayerListener implements Listener {
}
if (Settings.protectInventoryBeforeLogInEnabled) {
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());
plugin.getServer().getPluginManager().callEvent(ev);
if (ev.isCancelled()) {
@ -777,7 +762,7 @@ public class AuthMePlayerListener implements Listener {
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
Location loc = player.getLocation();
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
@ -855,7 +840,7 @@ public class AuthMePlayerListener implements Listener {
return;
}
String name = player.getName();
String name = player.getName().toLowerCase();
String ip = plugin.getIP(player);
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead())) {
@ -929,7 +914,7 @@ public class AuthMePlayerListener implements Listener {
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
@ -938,7 +923,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -957,7 +942,7 @@ public class AuthMePlayerListener implements Listener {
return;
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
@ -966,7 +951,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -986,7 +971,7 @@ public class AuthMePlayerListener implements Listener {
if (event.isCancelled() || event.getPlayer() == null)
return;
Player player = (Player) event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
@ -995,7 +980,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -1015,7 +1000,7 @@ public class AuthMePlayerListener implements Listener {
if (!(event.getWhoClicked() instanceof Player))
return;
Player player = (Player) event.getWhoClicked();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
@ -1024,7 +1009,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -1044,13 +1029,13 @@ public class AuthMePlayerListener implements Listener {
}
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)) {
return;
}
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -1068,7 +1053,7 @@ public class AuthMePlayerListener implements Listener {
return;
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return;
@ -1077,7 +1062,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.getCitizensCommunicator().isNPC(player, plugin))
return;
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -1095,13 +1080,13 @@ public class AuthMePlayerListener implements Listener {
return;
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
}
if (PlayerCache.getInstance().isAuthenticated(player.getName())) {
if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
return;
}
@ -1119,7 +1104,7 @@ public class AuthMePlayerListener implements Listener {
return;
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player)) {
return;
}
@ -1141,7 +1126,7 @@ public class AuthMePlayerListener implements Listener {
}
Player player = event.getPlayer();
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return;
@ -1181,7 +1166,7 @@ public class AuthMePlayerListener implements Listener {
if (plugin.authmePermissible(player, "authme.bypassforcesurvival"))
return;
String name = player.getName();
String name = player.getName().toLowerCase();
if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
return;

View File

@ -20,7 +20,7 @@ public class AuthMeSpoutListener implements Listener {
@EventHandler
public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) {
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()));
}
}

View File

@ -28,7 +28,7 @@ public class BungeeCordMessage implements PluginMessageListener {
String subchannel = in.readUTF();
if (subchannel.equals("IP")) { // We need only the IP channel
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
}
} catch (IOException ex) {

View File

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

View File

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

View File

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

View File

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

View File

@ -31,7 +31,7 @@ public class ProcessSyncronousPasswordRegister implements Runnable {
public ProcessSyncronousPasswordRegister(Player player, AuthMe plugin) {
this.player = player;
this.name = player.getName();
this.name = player.getName().toLowerCase();
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");
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;
}

View File

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

View File

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

View File

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