diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java
index 14a30c5e..c1ba5cdf 100644
--- a/src/main/java/fr/xephi/authme/AuthMe.java
+++ b/src/main/java/fr/xephi/authme/AuthMe.java
@@ -77,7 +77,7 @@ public class AuthMe extends JavaPlugin {
public DataSource database = null;
private Settings settings;
- private Messages m;
+ private Messages m;
public PlayersLogs pllog;
public OtherAccounts otherAccounts;
public static Server server;
@@ -87,108 +87,111 @@ public class AuthMe extends JavaPlugin {
private Utils utils = Utils.getInstance();
private JavaPlugin plugin;
private FileCache playerBackup = new FileCache();
- public CitizensCommunicator citizens;
- public SendMailSSL mail = null;
- public int CitizensVersion = 0;
- public int CombatTag = 0;
- public double ChestShop = 0;
- public boolean BungeeCord = false;
- public Essentials ess;
- public Notifications notifications;
- public API api;
- public Management management;
+ public CitizensCommunicator citizens;
+ public SendMailSSL mail = null;
+ public int CitizensVersion = 0;
+ public int CombatTag = 0;
+ public double ChestShop = 0;
+ public boolean BungeeCord = false;
+ public Essentials ess;
+ public Notifications notifications;
+ public API api;
+ public Management management;
public HashMap captcha = new HashMap();
public HashMap cap = new HashMap();
public HashMap realIp = new HashMap();
- public MultiverseCore multiverse = null;
- public Location essentialsSpawn;
- public Thread databaseThread = null;
- public LookupService ls = null;
- public boolean antibotMod = false;
- public boolean delayedAntiBot = true;
- protected static String vgUrl = "http://monitor-1.verygames.net/api/?action=ipclean-real-ip&out=raw&ip=%IP%&port=%PORT%";
- public DataManager dataManager;
+ public MultiverseCore multiverse = null;
+ public Location essentialsSpawn;
+ public Thread databaseThread = null;
+ public LookupService ls = null;
+ public boolean antibotMod = false;
+ public boolean delayedAntiBot = true;
+ protected static String vgUrl = "http://monitor-1.verygames.net/api/?action=ipclean-real-ip&out=raw&ip=%IP%&port=%PORT%";
+ public DataManager dataManager;
- public Settings getSettings() {
- return settings;
- }
+ public Settings getSettings() {
+ return settings;
+ }
- @Override
+ @Override
public void onEnable() {
- authme = this;
+ authme = this;
- authmeLogger.setParent(this.getLogger());
+ authmeLogger.setParent(this.getLogger());
- settings = new Settings(this);
- settings.loadConfigOptions();
+ settings = new Settings(this);
+ settings.loadConfigOptions();
- citizens = new CitizensCommunicator(this);
+ citizens = new CitizensCommunicator(this);
if (Settings.enableAntiBot) {
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
- @Override
- public void run() {
- delayedAntiBot = false;
- }
- }, 2400);
+ Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
+ @Override
+ public void run() {
+ delayedAntiBot = false;
+ }
+ }, 2400);
}
- m = Messages.getInstance();
+ m = Messages.getInstance();
pllog = PlayersLogs.getInstance();
-
+
otherAccounts = OtherAccounts.getInstance();
server = getServer();
- //Find Permissions
+ // Find Permissions
checkVault();
- //Set Console Filter
+ // Set Console Filter
if (Settings.removePassword) {
- this.getLogger().setFilter(new ConsoleFilter());
- Bukkit.getLogger().setFilter(new ConsoleFilter());
- Logger.getLogger("Minecraft").setFilter(new ConsoleFilter());
- authmeLogger.setFilter(new ConsoleFilter());
- // Set Log4J Filter
- try {
- Class.forName("org.apache.logging.log4j.core.Filter");
- setLog4JFilter();
- } catch (ClassNotFoundException e) {
- ConsoleLogger.info("You're using Minecraft 1.6.x or older, Log4J support is disabled");
- } catch (NoClassDefFoundError e) {
- ConsoleLogger.info("You're using Minecraft 1.6.x or older, Log4J support is disabled");
- }
+ this.getLogger().setFilter(new ConsoleFilter());
+ Bukkit.getLogger().setFilter(new ConsoleFilter());
+ Logger.getLogger("Minecraft").setFilter(new ConsoleFilter());
+ authmeLogger.setFilter(new ConsoleFilter());
+ // Set Log4J Filter
+ try {
+ Class.forName("org.apache.logging.log4j.core.Filter");
+ setLog4JFilter();
+ } catch (ClassNotFoundException e) {
+ ConsoleLogger
+ .info("You're using Minecraft 1.6.x or older, Log4J support is disabled");
+ } catch (NoClassDefFoundError e) {
+ ConsoleLogger
+ .info("You're using Minecraft 1.6.x or older, Log4J support is disabled");
+ }
}
- //Load MailApi
- if(!Settings.getmailAccount.isEmpty() && !Settings.getmailPassword.isEmpty())
- mail = new SendMailSSL(this);
+ // Load MailApi
+ if (!Settings.getmailAccount.isEmpty()
+ && !Settings.getmailPassword.isEmpty()) mail = new SendMailSSL(
+ this);
- //Check Citizens Version
- citizensVersion();
+ // Check Citizens Version
+ citizensVersion();
- //Check Combat Tag Version
- combatTag();
+ // Check Combat Tag Version
+ combatTag();
- //Check Notifications
- checkNotifications();
+ // Check Notifications
+ checkNotifications();
- //Check Multiverse
- checkMultiverse();
+ // Check Multiverse
+ checkMultiverse();
- //Check ChestShop
- checkChestShop();
+ // Check ChestShop
+ checkChestShop();
- //Check Essentials
- checkEssentials();
+ // Check Essentials
+ checkEssentials();
/*
- * Back style on start if avalaible
+ * Back style on start if avalaible
*/
- if(Settings.isBackupActivated && Settings.isBackupOnStart) {
- Boolean Backup = new PerformBackup(this).DoBackup();
- if(Backup) ConsoleLogger.info("Backup Complete");
+ if (Settings.isBackupActivated && Settings.isBackupOnStart) {
+ Boolean Backup = new PerformBackup(this).DoBackup();
+ if (Backup) ConsoleLogger.info("Backup Complete");
else ConsoleLogger.showError("Error while making Backup");
}
@@ -221,59 +224,64 @@ public class AuthMe extends JavaPlugin {
}
// Setup API
- api = new API(this, database);
+ api = new API(this, database);
- // Setup Management
- management = new Management(database, this);
- management.start();
+ // Setup Management
+ management = new Management(database, this);
+ management.start();
PluginManager pm = getServer().getPluginManager();
if (Settings.bungee) {
- Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
- Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeCordMessage(this));
+ Bukkit.getMessenger().registerOutgoingPluginChannel(this,
+ "BungeeCord");
+ Bukkit.getMessenger().registerIncomingPluginChannel(this,
+ "BungeeCord", new BungeeCordMessage(this));
}
if (pm.isPluginEnabled("Spout")) {
- pm.registerEvents(new AuthMeSpoutListener(database), this);
- ConsoleLogger.info("Successfully hook with Spout!");
+ pm.registerEvents(new AuthMeSpoutListener(database), this);
+ ConsoleLogger.info("Successfully hook with Spout!");
}
- pm.registerEvents(new AuthMePlayerListener(this,database),this);
- pm.registerEvents(new AuthMeBlockListener(database, this),this);
- pm.registerEvents(new AuthMeEntityListener(database, this),this);
+ pm.registerEvents(new AuthMePlayerListener(this, database), this);
+ pm.registerEvents(new AuthMeBlockListener(database, this), this);
+ pm.registerEvents(new AuthMeEntityListener(database, this), this);
pm.registerEvents(new AuthMeServerListener(this), this);
if (ChestShop != 0) {
- pm.registerEvents(new AuthMeChestShopListener(database, this), this);
- ConsoleLogger.info("Successfully hook with ChestShop!");
+ pm.registerEvents(new AuthMeChestShopListener(database, this), this);
+ ConsoleLogger.info("Successfully hook with ChestShop!");
}
this.getCommand("authme").setExecutor(new AdminCommand(this, database));
this.getCommand("register").setExecutor(new RegisterCommand(this));
this.getCommand("login").setExecutor(new LoginCommand(this));
- this.getCommand("changepassword").setExecutor(new ChangePasswordCommand(database, this));
- this.getCommand("logout").setExecutor(new LogoutCommand(this,database));
- this.getCommand("unregister").setExecutor(new UnregisterCommand(this, database));
+ this.getCommand("changepassword").setExecutor(
+ new ChangePasswordCommand(database, this));
+ this.getCommand("logout")
+ .setExecutor(new LogoutCommand(this, database));
+ this.getCommand("unregister").setExecutor(
+ new UnregisterCommand(this, database));
this.getCommand("passpartu").setExecutor(new PasspartuCommand(this));
this.getCommand("email").setExecutor(new EmailCommand(this, database));
this.getCommand("captcha").setExecutor(new CaptchaCommand(this));
- this.getCommand("converter").setExecutor(new ConverterCommand(this, database));
+ this.getCommand("converter").setExecutor(
+ new ConverterCommand(this, database));
- if(!Settings.isForceSingleSessionEnabled) {
- ConsoleLogger.showError("ATTENTION by disabling ForceSingleSession, your server protection is set to low");
+ if (!Settings.isForceSingleSessionEnabled) {
+ ConsoleLogger
+ .showError("ATTENTION by disabling ForceSingleSession, your server protection is set to low");
}
- if (Settings.reloadSupport)
- try {
- onReload();
- if (server.getOnlinePlayers().length < 1) {
- try {
- database.purgeLogged();
- } catch (NullPointerException npe) {
- }
+ if (Settings.reloadSupport) try {
+ onReload();
+ if (server.getOnlinePlayers().length < 1) {
+ try {
+ database.purgeLogged();
+ } catch (NullPointerException npe) {
}
- } catch (NullPointerException ex) {
- }
+ }
+ } catch (NullPointerException ex) {
+ }
- if (Settings.usePurge)
- autoPurge();
+ if (Settings.usePurge) autoPurge();
// Download GeoIp.dat file
downloadGeoIp();
@@ -284,347 +292,381 @@ public class AuthMe extends JavaPlugin {
dataManager = new DataManager(this, database);
dataManager.start();
- ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " enabled");
+ ConsoleLogger.info("Authme " + this.getDescription().getVersion()
+ + " enabled");
}
- private void setLog4JFilter() {
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
- @Override
- public void run() {
- org.apache.logging.log4j.core.Logger coreLogger = (org.apache.logging.log4j.core.Logger) LogManager.getRootLogger();
- coreLogger.addFilter(new Log4JFilter());
- }
- });
- }
+ private void setLog4JFilter() {
+ Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
+ @Override
+ public void run() {
+ org.apache.logging.log4j.core.Logger coreLogger = (org.apache.logging.log4j.core.Logger) LogManager
+ .getRootLogger();
+ coreLogger.addFilter(new Log4JFilter());
+ }
+ });
+ }
- public void checkVault() {
- if (this.getServer().getPluginManager().getPlugin("Vault") != null && this.getServer().getPluginManager().getPlugin("Vault").isEnabled()) {
- RegisteredServiceProvider permissionProvider =
- getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
+ public void checkVault() {
+ if (this.getServer().getPluginManager().getPlugin("Vault") != null
+ && this.getServer().getPluginManager().getPlugin("Vault")
+ .isEnabled()) {
+ RegisteredServiceProvider permissionProvider = getServer()
+ .getServicesManager().getRegistration(
+ net.milkbowl.vault.permission.Permission.class);
if (permissionProvider != null) {
- permission = permissionProvider.getProvider();
- ConsoleLogger.info("Vault plugin detected, hook with " + permission.getName() + " system");
+ permission = permissionProvider.getProvider();
+ ConsoleLogger.info("Vault plugin detected, hook with "
+ + permission.getName() + " system");
} else {
- ConsoleLogger.showError("Vault plugin is detected but not the permissions plugin!");
+ ConsoleLogger
+ .showError("Vault plugin is detected but not the permissions plugin!");
}
} else {
- permission = null;
+ permission = null;
}
- }
+ }
- public void checkChestShop() {
- if (!Settings.chestshop) {
- this.ChestShop = 0;
- return;
- }
- if (this.getServer().getPluginManager().getPlugin("ChestShop") != null && this.getServer().getPluginManager().getPlugin("ChestShop").isEnabled()) {
- try {
- String ver = com.Acrobot.ChestShop.ChestShop.getVersion();
- try {
- double version = Double.valueOf(ver.split(" ")[0]);
- if (version >= 3.50) {
- this.ChestShop = version;
- } else {
- ConsoleLogger.showError("Please Update your ChestShop version!");
- }
- } catch (NumberFormatException nfe) {
- try {
- double version = Double.valueOf(ver.split("t")[0]);
- if (version >= 3.50) {
- this.ChestShop = version;
- } else {
- ConsoleLogger.showError("Please Update your ChestShop version!");
- }
- } catch (NumberFormatException nfee) {
- }
- }
- } catch (Exception e) {}
- } else {
- this.ChestShop = 0;
- }
- }
+ public void checkChestShop() {
+ if (!Settings.chestshop) {
+ this.ChestShop = 0;
+ return;
+ }
+ if (this.getServer().getPluginManager().getPlugin("ChestShop") != null
+ && this.getServer().getPluginManager().getPlugin("ChestShop")
+ .isEnabled()) {
+ try {
+ String ver = com.Acrobot.ChestShop.ChestShop.getVersion();
+ try {
+ double version = Double.valueOf(ver.split(" ")[0]);
+ if (version >= 3.50) {
+ this.ChestShop = version;
+ } else {
+ ConsoleLogger
+ .showError("Please Update your ChestShop version!");
+ }
+ } catch (NumberFormatException nfe) {
+ try {
+ double version = Double.valueOf(ver.split("t")[0]);
+ if (version >= 3.50) {
+ this.ChestShop = version;
+ } else {
+ ConsoleLogger
+ .showError("Please Update your ChestShop version!");
+ }
+ } catch (NumberFormatException nfee) {
+ }
+ }
+ } catch (Exception e) {
+ }
+ } else {
+ this.ChestShop = 0;
+ }
+ }
- public void checkMultiverse() {
- if(!Settings.multiverse) {
- multiverse = null;
- return;
- }
- if (this.getServer().getPluginManager().getPlugin("Multiverse-Core") != null && this.getServer().getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
- try {
- multiverse = (MultiverseCore) this.getServer().getPluginManager().getPlugin("Multiverse-Core");
- ConsoleLogger.info("Hook with Multiverse-Core for SpawnLocations");
- } catch (NullPointerException npe) {
- multiverse = null;
- } catch (ClassCastException cce) {
- multiverse = null;
- } catch (NoClassDefFoundError ncdfe) {
- multiverse = null;
- }
- } else {
- multiverse = null;
- }
- }
+ public void checkMultiverse() {
+ if (!Settings.multiverse) {
+ multiverse = null;
+ return;
+ }
+ if (this.getServer().getPluginManager().getPlugin("Multiverse-Core") != null
+ && this.getServer().getPluginManager()
+ .getPlugin("Multiverse-Core").isEnabled()) {
+ try {
+ multiverse = (MultiverseCore) this.getServer()
+ .getPluginManager().getPlugin("Multiverse-Core");
+ ConsoleLogger
+ .info("Hook with Multiverse-Core for SpawnLocations");
+ } catch (NullPointerException npe) {
+ multiverse = null;
+ } catch (ClassCastException cce) {
+ multiverse = null;
+ } catch (NoClassDefFoundError ncdfe) {
+ multiverse = null;
+ }
+ } else {
+ multiverse = null;
+ }
+ }
- public void checkEssentials() {
- if (this.getServer().getPluginManager().getPlugin("Essentials") != null && this.getServer().getPluginManager().getPlugin("Essentials").isEnabled()) {
- try {
- ess = (Essentials) this.getServer().getPluginManager().getPlugin("Essentials");
- ConsoleLogger.info("Hook with Essentials plugin");
- } catch (NullPointerException npe) {
- ess = null;
- } catch (ClassCastException cce) {
- ess = null;
- } catch (NoClassDefFoundError ncdfe) {
- ess = null;
- }
- } else {
- ess = null;
- }
- if (this.getServer().getPluginManager().getPlugin("EssentialsSpawn") != null && this.getServer().getPluginManager().getPlugin("EssentialsSpawn").isEnabled()) {
- try {
- essentialsSpawn = new EssSpawn().getLocation();
- ConsoleLogger.info("Hook with EssentialsSpawn plugin");
- } catch (Exception e) {
- essentialsSpawn = null;
- ConsoleLogger.showError("Error while reading /plugins/Essentials/spawn.yml file ");
- }
- } else {
- ess = null;
- }
- }
+ public void checkEssentials() {
+ if (this.getServer().getPluginManager().getPlugin("Essentials") != null
+ && this.getServer().getPluginManager().getPlugin("Essentials")
+ .isEnabled()) {
+ try {
+ ess = (Essentials) this.getServer().getPluginManager()
+ .getPlugin("Essentials");
+ ConsoleLogger.info("Hook with Essentials plugin");
+ } catch (NullPointerException npe) {
+ ess = null;
+ } catch (ClassCastException cce) {
+ ess = null;
+ } catch (NoClassDefFoundError ncdfe) {
+ ess = null;
+ }
+ } else {
+ ess = null;
+ }
+ if (this.getServer().getPluginManager().getPlugin("EssentialsSpawn") != null
+ && this.getServer().getPluginManager()
+ .getPlugin("EssentialsSpawn").isEnabled()) {
+ try {
+ essentialsSpawn = new EssSpawn().getLocation();
+ ConsoleLogger.info("Hook with EssentialsSpawn plugin");
+ } catch (Exception e) {
+ essentialsSpawn = null;
+ ConsoleLogger
+ .showError("Error while reading /plugins/Essentials/spawn.yml file ");
+ }
+ } else {
+ ess = null;
+ }
+ }
- public void checkNotifications() {
- if (!Settings.notifications) {
- this.notifications = null;
- return;
- }
- if (this.getServer().getPluginManager().getPlugin("Notifications") != null && this.getServer().getPluginManager().getPlugin("Notifications").isEnabled()) {
- this.notifications = (Notifications) this.getServer().getPluginManager().getPlugin("Notifications");
- ConsoleLogger.info("Successfully hook with Notifications");
- } else {
- this.notifications = null;
- }
- }
+ public void checkNotifications() {
+ if (!Settings.notifications) {
+ this.notifications = null;
+ return;
+ }
+ if (this.getServer().getPluginManager().getPlugin("Notifications") != null
+ && this.getServer().getPluginManager()
+ .getPlugin("Notifications").isEnabled()) {
+ this.notifications = (Notifications) this.getServer()
+ .getPluginManager().getPlugin("Notifications");
+ ConsoleLogger.info("Successfully hook with Notifications");
+ } else {
+ this.notifications = null;
+ }
+ }
- public void combatTag() {
- if (this.getServer().getPluginManager().getPlugin("CombatTag") != null && this.getServer().getPluginManager().getPlugin("CombatTag").isEnabled()) {
- this.CombatTag = 1;
- } else {
- this.CombatTag = 0;
- }
- }
+ public void combatTag() {
+ if (this.getServer().getPluginManager().getPlugin("CombatTag") != null
+ && this.getServer().getPluginManager().getPlugin("CombatTag")
+ .isEnabled()) {
+ this.CombatTag = 1;
+ } else {
+ this.CombatTag = 0;
+ }
+ }
- public void citizensVersion() {
- if (this.getServer().getPluginManager().getPlugin("Citizens") != null && this.getServer().getPluginManager().getPlugin("Citizens").isEnabled()) {
- Citizens cit = (Citizens) this.getServer().getPluginManager().getPlugin("Citizens");
+ public void citizensVersion() {
+ if (this.getServer().getPluginManager().getPlugin("Citizens") != null
+ && this.getServer().getPluginManager().getPlugin("Citizens")
+ .isEnabled()) {
+ Citizens cit = (Citizens) this.getServer().getPluginManager()
+ .getPlugin("Citizens");
String ver = cit.getDescription().getVersion();
String[] args = ver.split("\\.");
if (args[0].contains("1")) {
- this.CitizensVersion = 1;
+ this.CitizensVersion = 1;
} else {
- this.CitizensVersion = 2;
+ this.CitizensVersion = 2;
}
- } else {
- this.CitizensVersion = 0;
- }
- }
+ } else {
+ this.CitizensVersion = 0;
+ }
+ }
- @Override
+ @Override
public void onDisable() {
- if (Bukkit.getOnlinePlayers().length != 0)
- for(Player player : Bukkit.getOnlinePlayers()) {
- this.savePlayer(player);
- }
+ if (Bukkit.getOnlinePlayers().length != 0) for (Player player : Bukkit
+ .getOnlinePlayers()) {
+ this.savePlayer(player);
+ }
if (database != null) {
database.close();
}
if (databaseThread != null) {
- if (databaseThread.isAlive())
- databaseThread.interrupt();
+ if (databaseThread.isAlive()) databaseThread.interrupt();
}
if (dataManager != null) {
- if (dataManager.isAlive())
- dataManager.interrupt();
+ if (dataManager.isAlive()) dataManager.interrupt();
}
- if(Settings.isBackupActivated && Settings.isBackupOnStop) {
- Boolean Backup = new PerformBackup(this).DoBackup();
- if(Backup) ConsoleLogger.info("Backup Complete");
- else ConsoleLogger.showError("Error while making Backup");
+ if (Settings.isBackupActivated && Settings.isBackupOnStop) {
+ Boolean Backup = new PerformBackup(this).DoBackup();
+ if (Backup) ConsoleLogger.info("Backup Complete");
+ else ConsoleLogger.showError("Error while making Backup");
}
- ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " disabled");
+ ConsoleLogger.info("Authme " + this.getDescription().getVersion()
+ + " disabled");
}
- private void onReload() {
- try {
- if (Bukkit.getServer().getOnlinePlayers() != null) {
- for (Player player : Bukkit.getServer().getOnlinePlayers()) {
- if (database.isLogged(player.getName().toLowerCase())) {
- String name = player.getName().toLowerCase();
- PlayerAuth pAuth = database.getAuth(name);
- if(pAuth == null)
- break;
- PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(), pAuth.getIp(), new Date().getTime(), pAuth.getEmail(), player.getName());
- database.updateSession(auth);
- PlayerCache.getInstance().addPlayer(auth);
- }
- }
- }
- return;
- } catch (NullPointerException ex) {
- return;
- }
+ private void onReload() {
+ try {
+ if (Bukkit.getServer().getOnlinePlayers() != null) {
+ for (Player player : Bukkit.getServer().getOnlinePlayers()) {
+ if (database.isLogged(player.getName().toLowerCase())) {
+ String name = player.getName().toLowerCase();
+ PlayerAuth pAuth = database.getAuth(name);
+ if (pAuth == null) break;
+ PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(),
+ pAuth.getIp(), new Date().getTime(),
+ pAuth.getEmail(), player.getName());
+ database.updateSession(auth);
+ PlayerCache.getInstance().addPlayer(auth);
+ }
+ }
+ }
+ return;
+ } catch (NullPointerException ex) {
+ return;
+ }
}
- public static AuthMe getInstance() {
- return authme;
- }
+ public static AuthMe getInstance() {
+ return authme;
+ }
- public void savePlayer(Player player) throws IllegalStateException, NullPointerException {
- try {
- if ((citizens.isNPC(player, this)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) {
- return;
- }
- } catch (Exception e) { }
- try {
- String name = player.getName().toLowerCase();
- if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead() && Settings.isSaveQuitLocationEnabled) {
- 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))
- {
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if (Settings.protectInventoryBeforeLogInEnabled.booleanValue()) {
- player.getInventory().setArmorContents(limbo.getArmour());
- player.getInventory().setContents(limbo.getInventory());
- }
- if (!Settings.noTeleport)
- player.teleport(limbo.getLoc());
- this.utils.addNormal(player, limbo.getGroup());
- player.setOp(limbo.getOperator());
- this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- LimboCache.getInstance().deleteLimboPlayer(name);
- if (this.playerBackup.doesCacheExist(name)) {
- this.playerBackup.removeCache(name);
- }
- }
- PlayerCache.getInstance().removePlayer(name);
- database.setUnlogged(name);
- player.saveData();
- } catch (Exception ex) {
- }
- }
+ public void savePlayer(Player player) throws IllegalStateException,
+ NullPointerException {
+ try {
+ if ((citizens.isNPC(player, this))
+ || (Utils.getInstance().isUnrestricted(player))
+ || (CombatTagComunicator.isNPC(player))) {
+ return;
+ }
+ } catch (Exception e) {
+ }
+ try {
+ String name = player.getName().toLowerCase();
+ if (PlayerCache.getInstance().isAuthenticated(name)
+ && !player.isDead() && Settings.isSaveQuitLocationEnabled) {
+ 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)) {
+ LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(
+ name);
+ if (Settings.protectInventoryBeforeLogInEnabled.booleanValue()) {
+ player.getInventory().setArmorContents(limbo.getArmour());
+ player.getInventory().setContents(limbo.getInventory());
+ }
+ if (!Settings.noTeleport) player.teleport(limbo.getLoc());
+ this.utils.addNormal(player, limbo.getGroup());
+ player.setOp(limbo.getOperator());
+ this.plugin.getServer().getScheduler()
+ .cancelTask(limbo.getTimeoutTaskId());
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ if (this.playerBackup.doesCacheExist(name)) {
+ this.playerBackup.removeCache(name);
+ }
+ }
+ PlayerCache.getInstance().removePlayer(name);
+ database.setUnlogged(name);
+ player.saveData();
+ } catch (Exception ex) {
+ }
+ }
- public CitizensCommunicator getCitizensCommunicator() {
- return citizens;
- }
+ public CitizensCommunicator getCitizensCommunicator() {
+ return citizens;
+ }
- public void setMessages(Messages m) {
- this.m = m;
- }
+ public void setMessages(Messages m) {
+ this.m = m;
+ }
- public Messages getMessages() {
- return m;
- }
+ public Messages getMessages() {
+ return m;
+ }
- public Player generateKickPlayer(Player[] players) {
- Player player = null;
- int i;
- for (i = 0 ; i <= players.length ; i++) {
- Random rdm = new Random();
- int a = rdm.nextInt(players.length);
- if (!(authmePermissible(players[a], "authme.vip"))) {
- player = players[a];
- break;
- }
- }
- if (player == null) {
- for (Player p : players) {
- if (!(authmePermissible(p, "authme.vip"))) {
- player = p;
- break;
- }
- }
- }
- return player;
- }
+ public Player generateKickPlayer(Player[] players) {
+ Player player = null;
+ int i;
+ for (i = 0; i <= players.length; i++) {
+ Random rdm = new Random();
+ int a = rdm.nextInt(players.length);
+ if (!(authmePermissible(players[a], "authme.vip"))) {
+ player = players[a];
+ break;
+ }
+ }
+ if (player == null) {
+ for (Player p : players) {
+ if (!(authmePermissible(p, "authme.vip"))) {
+ player = p;
+ break;
+ }
+ }
+ }
+ return player;
+ }
- public boolean authmePermissible(Player player, String perm) {
- if (player.hasPermission(perm))
- return true;
- else if (permission != null) {
- return permission.playerHas(player, perm);
- }
- return false;
- }
+ public boolean authmePermissible(Player player, String perm) {
+ if (player.hasPermission(perm)) return true;
+ else if (permission != null) {
+ return permission.playerHas(player, perm);
+ }
+ return false;
+ }
- public boolean authmePermissible(CommandSender sender, String perm) {
- if (sender.hasPermission(perm)) return true;
- else if (permission != null) {
- return permission.has(sender, perm);
- }
- return false;
- }
+ public boolean authmePermissible(CommandSender sender, String perm) {
+ if (sender.hasPermission(perm)) return true;
+ else if (permission != null) {
+ return permission.has(sender, perm);
+ }
+ return false;
+ }
- private void autoPurge() {
- if (!Settings.usePurge) {
- return;
- }
+ private void autoPurge() {
+ if (!Settings.usePurge) {
+ return;
+ }
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -(Settings.purgeDelay));
long until = calendar.getTimeInMillis();
- List cleared = this.database.autoPurgeDatabase(until);
- ConsoleLogger.info("AutoPurgeDatabase : " + cleared.size() + " accounts removed.");
- if (cleared.isEmpty())
- return;
- if (Settings.purgeEssentialsFile && this.ess != null)
- dataManager.purgeEssentials(cleared);
- if (Settings.purgePlayerDat)
- dataManager.purgeDat(cleared);
- if (Settings.purgeLimitedCreative)
- dataManager.purgeLimitedCreative(cleared);
- if (Settings.purgeAntiXray)
- dataManager.purgeAntiXray(cleared);
- }
+ List cleared = this.database.autoPurgeDatabase(until);
+ ConsoleLogger.info("AutoPurgeDatabase : " + cleared.size()
+ + " accounts removed.");
+ if (cleared.isEmpty()) return;
+ if (Settings.purgeEssentialsFile && this.ess != null) dataManager
+ .purgeEssentials(cleared);
+ if (Settings.purgePlayerDat) dataManager.purgeDat(cleared);
+ if (Settings.purgeLimitedCreative) dataManager
+ .purgeLimitedCreative(cleared);
+ if (Settings.purgeAntiXray) dataManager.purgeAntiXray(cleared);
+ }
public Location getSpawnLocation(Player player) {
- World world = player.getWorld();
- String[] spawnPriority = Settings.spawnPriority.split(",");
- if (spawnPriority.length < 4) {
- ConsoleLogger.showError("Check your config for spawnPriority, you need to put all of 4 spawn priorities");
- ConsoleLogger.showError("Defaulting Spawn to world's one");
- return world.getSpawnLocation();
- }
+ World world = player.getWorld();
+ String[] spawnPriority = Settings.spawnPriority.split(",");
+ if (spawnPriority.length < 4) {
+ ConsoleLogger
+ .showError("Check your config for spawnPriority, you need to put all of 4 spawn priorities");
+ ConsoleLogger.showError("Defaulting Spawn to world's one");
+ return world.getSpawnLocation();
+ }
Location spawnLoc = world.getSpawnLocation();
int i = 3;
- for (i = 3 ; i >= 0 ; i--) {
- String s = spawnPriority[i];
- if (s.equalsIgnoreCase("default") && getDefaultSpawn(world) != null)
- spawnLoc = getDefaultSpawn(world);
- if (s.equalsIgnoreCase("multiverse") && getMultiverseSpawn(world) != null)
- spawnLoc = getMultiverseSpawn(world);
- if (s.equalsIgnoreCase("essentials") && getEssentialsSpawn() != null)
- spawnLoc = getEssentialsSpawn();
- if (s.equalsIgnoreCase("authme") && getAuthMeSpawn(player) != null)
- spawnLoc = getAuthMeSpawn(player);
+ for (i = 3; i >= 0; i--) {
+ String s = spawnPriority[i];
+ if (s.equalsIgnoreCase("default") && getDefaultSpawn(world) != null) spawnLoc = getDefaultSpawn(world);
+ if (s.equalsIgnoreCase("multiverse")
+ && getMultiverseSpawn(world) != null) spawnLoc = getMultiverseSpawn(world);
+ if (s.equalsIgnoreCase("essentials")
+ && getEssentialsSpawn() != null) spawnLoc = getEssentialsSpawn();
+ if (s.equalsIgnoreCase("authme") && getAuthMeSpawn(player) != null) spawnLoc = getAuthMeSpawn(player);
}
- if (spawnLoc == null)
- spawnLoc = world.getSpawnLocation();
+ if (spawnLoc == null) spawnLoc = world.getSpawnLocation();
return spawnLoc;
}
private Location getDefaultSpawn(World world) {
- return world.getSpawnLocation();
+ return world.getSpawnLocation();
}
private Location getMultiverseSpawn(World world) {
if (multiverse != null && Settings.multiverse) {
try {
- return multiverse.getMVWorldManager().getMVWorld(world).getSpawnLocation();
+ return multiverse.getMVWorldManager().getMVWorld(world)
+ .getSpawnLocation();
} catch (NullPointerException npe) {
} catch (ClassCastException cce) {
} catch (NoClassDefFoundError ncdfe) {
@@ -634,162 +676,173 @@ public class AuthMe extends JavaPlugin {
}
private Location getEssentialsSpawn() {
- if (essentialsSpawn != null)
- return essentialsSpawn;
+ if (essentialsSpawn != null) return essentialsSpawn;
return null;
}
-
+
private Location getAuthMeSpawn(Player player) {
- 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();
+ 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();
return null;
}
public void downloadGeoIp() {
- ConsoleLogger.info("LICENSE : This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com");
- File file = new File(getDataFolder(), "GeoIP.dat");
- if (!file.exists()) {
- try {
- String url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz";
+ ConsoleLogger
+ .info("LICENSE : This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com");
+ File file = new File(getDataFolder(), "GeoIP.dat");
+ if (!file.exists()) {
+ try {
+ String url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz";
URL downloadUrl = new URL(url);
URLConnection conn = downloadUrl.openConnection();
conn.setConnectTimeout(10000);
conn.connect();
InputStream input = conn.getInputStream();
- if (url.endsWith(".gz"))
- input = new GZIPInputStream(input);
+ if (url.endsWith(".gz")) input = new GZIPInputStream(input);
OutputStream output = new FileOutputStream(file);
byte[] buffer = new byte[2048];
int length = input.read(buffer);
while (length >= 0) {
- output.write(buffer, 0, length);
- length = input.read(buffer);
+ output.write(buffer, 0, length);
+ length = input.read(buffer);
}
output.close();
input.close();
- } catch (Exception e) {}
- }
+ } catch (Exception e) {
+ }
+ }
}
-
+
public String getCountryCode(String ip) {
- try {
- if (ls == null)
- ls = new LookupService(new File(getDataFolder(), "GeoIP.dat"));
- String code = ls.getCountry(ip).getCode();
- if (code != null && !code.isEmpty())
- return code;
- } catch (Exception e) {}
- return null;
+ try {
+ if (ls == null) ls = new LookupService(new File(getDataFolder(),
+ "GeoIP.dat"));
+ String code = ls.getCountry(ip).getCode();
+ if (code != null && !code.isEmpty()) return code;
+ } catch (Exception e) {
+ }
+ return null;
}
public String getCountryName(String ip) {
- try {
- if (ls == null)
- ls = new LookupService(new File(getDataFolder(), "GeoIP.dat"));
- String code = ls.getCountry(ip).getName();
- if (code != null && !code.isEmpty())
- return code;
- } catch (Exception e) {}
- return null;
+ try {
+ if (ls == null) ls = new LookupService(new File(getDataFolder(),
+ "GeoIP.dat"));
+ String code = ls.getCountry(ip).getName();
+ if (code != null && !code.isEmpty()) return code;
+ } catch (Exception e) {
+ }
+ return null;
}
public void switchAntiBotMod(boolean mode) {
- this.antibotMod = mode;
- Settings.switchAntiBotMod(mode);
+ this.antibotMod = mode;
+ Settings.switchAntiBotMod(mode);
}
private void recallEmail() {
- if (!Settings.recallEmail)
- return;
- Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
- @Override
- public void run() {
- for (Player player : Bukkit.getOnlinePlayers()) {
- if (player.isOnline()) {
- String name = player.getName().toLowerCase();
- if (database.isAuthAvailable(name))
- if (PlayerCache.getInstance().isAuthenticated(name)) {
- String email = database.getAuth(name).getEmail();
- if (email == null || email.isEmpty() || email.equalsIgnoreCase("your@email.com"))
- m._(player, "add_email");
- }
- }
- }
- }
- }, 1, 1200 * Settings.delayRecall);
+ if (!Settings.recallEmail) return;
+ Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
+ @Override
+ public void run() {
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ if (player.isOnline()) {
+ String name = player.getName().toLowerCase();
+ if (database.isAuthAvailable(name)) if (PlayerCache
+ .getInstance().isAuthenticated(name)) {
+ String email = database.getAuth(name).getEmail();
+ if (email == null || email.isEmpty()
+ || email.equalsIgnoreCase("your@email.com")) m
+ ._(player, "add_email");
+ }
+ }
+ }
+ }
+ }, 1, 1200 * Settings.delayRecall);
}
public String replaceAllInfos(String message, Player player) {
- try {
- message = message.replace("&", "\u00a7");
- message = message.replace("{PLAYER}", player.getName());
- message = message.replace("{ONLINE}", ""+this.getServer().getOnlinePlayers().length);
- message = message.replace("{MAXPLAYERS}", ""+this.getServer().getMaxPlayers());
- message = message.replace("{IP}", getIP(player));
- message = message.replace("{LOGINS}", ""+PlayerCache.getInstance().getLogged());
- message = message.replace("{WORLD}", player.getWorld().getName());
- message = message.replace("{SERVER}", this.getServer().getServerName());
- message = message.replace("{VERSION}", this.getServer().getBukkitVersion());
- message = message.replace("{COUNTRY}", this.getCountryName(getIP(player)));
- } catch (Exception e) {}
- return message;
+ try {
+ message = message.replace("&", "\u00a7");
+ message = message.replace("{PLAYER}", player.getName());
+ message = message.replace("{ONLINE}", ""
+ + this.getServer().getOnlinePlayers().length);
+ message = message.replace("{MAXPLAYERS}", ""
+ + this.getServer().getMaxPlayers());
+ message = message.replace("{IP}", getIP(player));
+ message = message.replace("{LOGINS}", ""
+ + PlayerCache.getInstance().getLogged());
+ message = message.replace("{WORLD}", player.getWorld().getName());
+ message = message.replace("{SERVER}", this.getServer()
+ .getServerName());
+ message = message.replace("{VERSION}", this.getServer()
+ .getBukkitVersion());
+ message = message.replace("{COUNTRY}",
+ this.getCountryName(getIP(player)));
+ } catch (Exception e) {
+ }
+ return message;
}
-
+
public String getIP(Player player) {
- String name = player.getName().toLowerCase();
+ String name = player.getName().toLowerCase();
String ip = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) {
- if (realIp.containsKey(name))
- ip = realIp.get(name);
+ if (realIp.containsKey(name)) ip = realIp.get(name);
}
- if (Settings.checkVeryGames)
- if (getVeryGamesIP(player) != null)
- ip = getVeryGamesIP(player);
+ if (Settings.checkVeryGames) if (getVeryGamesIP(player) != null) ip = getVeryGamesIP(player);
return ip;
}
- 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().toLowerCase()) && !player.getName().equalsIgnoreCase(name))
- count++;
- }
- if (count >= Settings.getMaxLoginPerIp)
- return true;
- return false;
- }
+ 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().toLowerCase())
+ && !player.getName().equalsIgnoreCase(name)) count++;
+ }
+ if (count >= Settings.getMaxLoginPerIp) return true;
+ return false;
+ }
+
+ public boolean hasJoinedIp(String name, String ip) {
+ int count = 0;
+ for (Player player : this.getServer().getOnlinePlayers()) {
+ if (ip.equalsIgnoreCase(getIP(player))
+ && !player.getName().equalsIgnoreCase(name)) count++;
+ }
+ if (count >= Settings.getMaxJoinPerIp) return true;
+ return false;
+ }
- public boolean hasJoinedIp(String name, String ip) {
- int count = 0;
- for (Player player : this.getServer().getOnlinePlayers()) {
- if(ip.equalsIgnoreCase(getIP(player)) && !player.getName().equalsIgnoreCase(name))
- count++;
- }
- if (count >= Settings.getMaxJoinPerIp)
- return true;
- return false;
- }
-
/**
* Get Player real IP through VeryGames method
- * @param Player player
+ *
+ * @param Player
+ * player
*/
- public String getVeryGamesIP(Player player) {
- String realIP = null;
- String sUrl = vgUrl;
- sUrl = sUrl.replace("%IP%", player.getAddress().getAddress().getHostAddress()).replace("%PORT%", ""+player.getAddress().getPort());
- try {
- URL url = new URL(sUrl);
- URLConnection urlc = url.openConnection();
- BufferedReader in = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
- String inputLine = in.readLine();
- if (inputLine != null && !inputLine.isEmpty() && !inputLine.equalsIgnoreCase("error")) {
- realIP = inputLine;
- }
- } catch (Exception e) {
- }
- return realIP;
- }
+ public String getVeryGamesIP(Player player) {
+ String realIP = null;
+ String sUrl = vgUrl;
+ sUrl = sUrl.replace("%IP%",
+ player.getAddress().getAddress().getHostAddress()).replace(
+ "%PORT%", "" + player.getAddress().getPort());
+ try {
+ URL url = new URL(sUrl);
+ URLConnection urlc = url.openConnection();
+ BufferedReader in = new BufferedReader(new InputStreamReader(
+ urlc.getInputStream()));
+ String inputLine = in.readLine();
+ if (inputLine != null && !inputLine.isEmpty()
+ && !inputLine.equalsIgnoreCase("error")) {
+ realIP = inputLine;
+ }
+ } catch (Exception e) {
+ }
+ return realIP;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/ConsoleFilter.java b/src/main/java/fr/xephi/authme/ConsoleFilter.java
index 689bc5f6..dccad577 100644
--- a/src/main/java/fr/xephi/authme/ConsoleFilter.java
+++ b/src/main/java/fr/xephi/authme/ConsoleFilter.java
@@ -4,27 +4,35 @@ import java.util.logging.Filter;
import java.util.logging.LogRecord;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class ConsoleFilter implements Filter {
- public ConsoleFilter() {}
+ public ConsoleFilter() {
+ }
@Override
public boolean isLoggable(LogRecord record) {
- try {
- if (record == null || record.getMessage() == null) return true;
+ try {
+ if (record == null || record.getMessage() == null) return true;
String logM = record.getMessage().toLowerCase();
if (!logM.contains("issued server command:")) return true;
- if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ")
- && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ")&& !logM.contains("/authme reg ")&& !logM.contains("/authme cp ") && !logM.contains("/register ")) return true;
+ if (!logM.contains("/login ") && !logM.contains("/l ")
+ && !logM.contains("/reg ")
+ && !logM.contains("/changepassword ")
+ && !logM.contains("/unregister ")
+ && !logM.contains("/authme register ")
+ && !logM.contains("/authme changepassword ")
+ && !logM.contains("/authme reg ")
+ && !logM.contains("/authme cp ")
+ && !logM.contains("/register ")) return true;
String playername = record.getMessage().split(" ")[0];
record.setMessage(playername + " issued an AuthMe command!");
return true;
- } catch (NullPointerException npe) {
- return true;
- }
+ } catch (NullPointerException npe) {
+ return true;
+ }
}
}
diff --git a/src/main/java/fr/xephi/authme/ConsoleLogger.java b/src/main/java/fr/xephi/authme/ConsoleLogger.java
index 89b866fa..80d48a8d 100644
--- a/src/main/java/fr/xephi/authme/ConsoleLogger.java
+++ b/src/main/java/fr/xephi/authme/ConsoleLogger.java
@@ -12,53 +12,63 @@ import org.bukkit.Bukkit;
import fr.xephi.authme.settings.Settings;
-
public class ConsoleLogger {
private static final Logger log = Logger.getLogger("AuthMe");
public static void info(String message) {
- if (AuthMe.getInstance().isEnabled()) {
- log.info("[AuthMe] " + message);
- if (Settings.useLogging) {
- Calendar date = Calendar.getInstance();
- final String actually = "[" + DateFormat.getDateInstance().format(date.getTime()) + ", " + date.get(Calendar.HOUR_OF_DAY) + ":" + date.get(Calendar.MINUTE) + ":" + date.get(Calendar.SECOND) + "] " + message;
- Bukkit.getScheduler().runTaskAsynchronously(AuthMe.getInstance(), new Runnable() {
- @Override
- public void run() {
- writeLog(actually);
- }
- });
- }
- }
+ if (AuthMe.getInstance().isEnabled()) {
+ log.info("[AuthMe] " + message);
+ if (Settings.useLogging) {
+ Calendar date = Calendar.getInstance();
+ final String actually = "["
+ + DateFormat.getDateInstance().format(date.getTime())
+ + ", " + date.get(Calendar.HOUR_OF_DAY) + ":"
+ + date.get(Calendar.MINUTE) + ":"
+ + date.get(Calendar.SECOND) + "] " + message;
+ Bukkit.getScheduler().runTaskAsynchronously(
+ AuthMe.getInstance(), new Runnable() {
+ @Override
+ public void run() {
+ writeLog(actually);
+ }
+ });
+ }
+ }
}
public static void showError(String message) {
- if (AuthMe.getInstance().isEnabled()) {
+ if (AuthMe.getInstance().isEnabled()) {
log.warning("[AuthMe] ERROR: " + message);
if (Settings.useLogging) {
Calendar date = Calendar.getInstance();
- final String actually = "[" + DateFormat.getDateInstance().format(date.getTime()) + ", " + date.get(Calendar.HOUR_OF_DAY) + ":" + date.get(Calendar.MINUTE) + ":" + date.get(Calendar.SECOND) + "] ERROR : " + message;
- Bukkit.getScheduler().runTaskAsynchronously(AuthMe.getInstance(), new Runnable() {
- @Override
- public void run() {
- writeLog(actually);
- }
- });
+ final String actually = "["
+ + DateFormat.getDateInstance().format(date.getTime())
+ + ", " + date.get(Calendar.HOUR_OF_DAY) + ":"
+ + date.get(Calendar.MINUTE) + ":"
+ + date.get(Calendar.SECOND) + "] ERROR : " + message;
+ Bukkit.getScheduler().runTaskAsynchronously(
+ AuthMe.getInstance(), new Runnable() {
+ @Override
+ public void run() {
+ writeLog(actually);
+ }
+ });
}
- }
+ }
}
- public static void writeLog(String string) {
+ public static void writeLog(String string) {
try {
- FileWriter fw = new FileWriter(AuthMe.getInstance().getDataFolder() + File.separator + "authme.log", true);
- BufferedWriter w = new BufferedWriter(fw);
- w.write(string);
- w.newLine();
- w.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+ FileWriter fw = new FileWriter(AuthMe.getInstance().getDataFolder()
+ + File.separator + "authme.log", true);
+ BufferedWriter w = new BufferedWriter(fw);
+ w.write(string);
+ w.newLine();
+ w.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/DataManager.java b/src/main/java/fr/xephi/authme/DataManager.java
index 535f36a0..b595812e 100644
--- a/src/main/java/fr/xephi/authme/DataManager.java
+++ b/src/main/java/fr/xephi/authme/DataManager.java
@@ -19,12 +19,15 @@ public class DataManager extends Thread {
this.database = database;
}
- public void run() {}
+ public void run() {
+ }
public OfflinePlayer getOfflinePlayer(String name) {
OfflinePlayer result = null;
try {
- if (org.bukkit.Bukkit.class.getMethod("getOfflinePlayer", new Class[]{String.class}).isAnnotationPresent(Deprecated.class)) {
+ 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;
@@ -38,20 +41,23 @@ public class DataManager extends Thread {
}
return result;
}
-
+
public void purgeAntiXray(List cleared) {
int i = 0;
for (String name : cleared) {
org.bukkit.OfflinePlayer player = getOfflinePlayer(name);
if (player == null) continue;
String playerName = player.getName();
- File playerFile = new File("." + File.separator + "plugins" + File.separator + "AntiXRayData" + File.separator + "PlayerData" + File.separator + playerName);
+ File playerFile = new File("." + File.separator + "plugins"
+ + File.separator + "AntiXRayData" + File.separator
+ + "PlayerData" + File.separator + playerName);
if (playerFile.exists()) {
playerFile.delete();
i++;
}
}
- ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " AntiXRayData Files");
+ ConsoleLogger.info("AutoPurgeDatabase : Remove " + i
+ + " AntiXRayData Files");
}
public void purgeLimitedCreative(List cleared) {
@@ -60,23 +66,32 @@ public class DataManager extends Thread {
org.bukkit.OfflinePlayer player = getOfflinePlayer(name);
if (player == null) continue;
String playerName = player.getName();
- File playerFile = new File("." + File.separator + "plugins" + File.separator + "LimitedCreative" + File.separator + "inventories" + File.separator + playerName + ".yml");
+ File playerFile = new File("." + File.separator + "plugins"
+ + File.separator + "LimitedCreative" + File.separator
+ + "inventories" + File.separator + playerName + ".yml");
if (playerFile.exists()) {
playerFile.delete();
i++;
}
- playerFile = new File("." + File.separator + "plugins" + File.separator + "LimitedCreative" + File.separator + "inventories" + File.separator + playerName + "_creative.yml");
+ playerFile = new File("." + File.separator + "plugins"
+ + File.separator + "LimitedCreative" + File.separator
+ + "inventories" + File.separator + playerName
+ + "_creative.yml");
if (playerFile.exists()) {
playerFile.delete();
i++;
}
- playerFile = new File("." + File.separator + "plugins" + File.separator + "LimitedCreative" + File.separator + "inventories" + File.separator + playerName + "_adventure.yml");
+ playerFile = new File("." + File.separator + "plugins"
+ + File.separator + "LimitedCreative" + File.separator
+ + "inventories" + File.separator + playerName
+ + "_adventure.yml");
if (playerFile.exists()) {
playerFile.delete();
i++;
}
}
- ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " LimitedCreative Survival, Creative and Adventure files");
+ ConsoleLogger.info("AutoPurgeDatabase : Remove " + i
+ + " LimitedCreative Survival, Creative and Adventure files");
}
public void purgeDat(List cleared) {
@@ -85,7 +100,9 @@ public class DataManager extends Thread {
org.bukkit.OfflinePlayer player = getOfflinePlayer(name);
if (player == null) continue;
String playerName = player.getName();
- File playerFile = new File (plugin.getServer().getWorldContainer() + File.separator + Settings.defaultWorld + File.separator + "players" + File.separator + playerName + ".dat");
+ File playerFile = new File(plugin.getServer().getWorldContainer()
+ + File.separator + Settings.defaultWorld + File.separator
+ + "players" + File.separator + playerName + ".dat");
if (playerFile.exists()) {
playerFile.delete();
i++;
@@ -97,12 +114,15 @@ public class DataManager extends Thread {
public void purgeEssentials(List cleared) {
int i = 0;
for (String name : cleared) {
- File playerFile = new File(plugin.ess.getDataFolder() + File.separator + "userdata" + File.separator + name + ".yml");
+ File playerFile = new File(plugin.ess.getDataFolder()
+ + File.separator + "userdata" + File.separator + name
+ + ".yml");
if (playerFile.exists()) {
playerFile.delete();
i++;
}
}
- ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " EssentialsFiles");
+ ConsoleLogger.info("AutoPurgeDatabase : Remove " + i
+ + " EssentialsFiles");
}
}
diff --git a/src/main/java/fr/xephi/authme/Log4JFilter.java b/src/main/java/fr/xephi/authme/Log4JFilter.java
index 53a7f173..58587521 100644
--- a/src/main/java/fr/xephi/authme/Log4JFilter.java
+++ b/src/main/java/fr/xephi/authme/Log4JFilter.java
@@ -7,80 +7,110 @@ import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.message.Message;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class Log4JFilter implements org.apache.logging.log4j.core.Filter {
- public Log4JFilter() {}
+ public Log4JFilter() {
+ }
- @Override
- public Result filter(LogEvent record) {
- try {
- if (record == null || record.getMessage() == null) return Result.NEUTRAL;
- String logM = record.getMessage().getFormattedMessage().toLowerCase();
+ @Override
+ public Result filter(LogEvent record) {
+ try {
+ if (record == null || record.getMessage() == null) return Result.NEUTRAL;
+ String logM = record.getMessage().getFormattedMessage()
+ .toLowerCase();
if (!logM.contains("issued server command:")) return Result.NEUTRAL;
- if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ")
- && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ")&& !logM.contains("/authme reg ")&& !logM.contains("/authme cp ") && !logM.contains("/register ")) return Result.NEUTRAL;
+ if (!logM.contains("/login ") && !logM.contains("/l ")
+ && !logM.contains("/reg ")
+ && !logM.contains("/changepassword ")
+ && !logM.contains("/unregister ")
+ && !logM.contains("/authme register ")
+ && !logM.contains("/authme changepassword ")
+ && !logM.contains("/authme reg ")
+ && !logM.contains("/authme cp ")
+ && !logM.contains("/register ")) return Result.NEUTRAL;
return Result.DENY;
- } catch (NullPointerException npe) {
- return Result.NEUTRAL;
- }
- }
+ } catch (NullPointerException npe) {
+ return Result.NEUTRAL;
+ }
+ }
- @Override
- public Result filter(Logger arg0, Level arg1, Marker arg2, String message,
- Object... arg4) {
- try {
- if (message == null) return Result.NEUTRAL;
+ @Override
+ public Result filter(Logger arg0, Level arg1, Marker arg2, String message,
+ Object... arg4) {
+ try {
+ if (message == null) return Result.NEUTRAL;
String logM = message.toLowerCase();
if (!logM.contains("issued server command:")) return Result.NEUTRAL;
- if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ")
- && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ")&& !logM.contains("/authme reg ")&& !logM.contains("/authme cp ") && !logM.contains("/register ")) return Result.NEUTRAL;
+ if (!logM.contains("/login ") && !logM.contains("/l ")
+ && !logM.contains("/reg ")
+ && !logM.contains("/changepassword ")
+ && !logM.contains("/unregister ")
+ && !logM.contains("/authme register ")
+ && !logM.contains("/authme changepassword ")
+ && !logM.contains("/authme reg ")
+ && !logM.contains("/authme cp ")
+ && !logM.contains("/register ")) return Result.NEUTRAL;
return Result.DENY;
- } catch (NullPointerException npe) {
- return Result.NEUTRAL;
- }
- }
+ } catch (NullPointerException npe) {
+ return Result.NEUTRAL;
+ }
+ }
- @Override
- public Result filter(Logger arg0, Level arg1, Marker arg2, Object message,
- Throwable arg4) {
- try {
- if (message == null) return Result.NEUTRAL;
+ @Override
+ public Result filter(Logger arg0, Level arg1, Marker arg2, Object message,
+ Throwable arg4) {
+ try {
+ if (message == null) return Result.NEUTRAL;
String logM = message.toString().toLowerCase();
if (!logM.contains("issued server command:")) return Result.NEUTRAL;
- if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ")
- && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ")&& !logM.contains("/authme reg ")&& !logM.contains("/authme cp ") && !logM.contains("/register ")) return Result.NEUTRAL;
+ if (!logM.contains("/login ") && !logM.contains("/l ")
+ && !logM.contains("/reg ")
+ && !logM.contains("/changepassword ")
+ && !logM.contains("/unregister ")
+ && !logM.contains("/authme register ")
+ && !logM.contains("/authme changepassword ")
+ && !logM.contains("/authme reg ")
+ && !logM.contains("/authme cp ")
+ && !logM.contains("/register ")) return Result.NEUTRAL;
return Result.DENY;
- } catch (NullPointerException npe) {
- return Result.NEUTRAL;
- }
- }
+ } catch (NullPointerException npe) {
+ return Result.NEUTRAL;
+ }
+ }
- @Override
- public Result filter(Logger arg0, Level arg1, Marker arg2, Message message,
- Throwable arg4) {
- try {
- if (message == null) return Result.NEUTRAL;
+ @Override
+ public Result filter(Logger arg0, Level arg1, Marker arg2, Message message,
+ Throwable arg4) {
+ try {
+ if (message == null) return Result.NEUTRAL;
String logM = message.getFormattedMessage().toLowerCase();
if (!logM.contains("issued server command:")) return Result.NEUTRAL;
- if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ")
- && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ")&& !logM.contains("/authme reg ")&& !logM.contains("/authme cp ") && !logM.contains("/register ")) return Result.NEUTRAL;
+ if (!logM.contains("/login ") && !logM.contains("/l ")
+ && !logM.contains("/reg ")
+ && !logM.contains("/changepassword ")
+ && !logM.contains("/unregister ")
+ && !logM.contains("/authme register ")
+ && !logM.contains("/authme changepassword ")
+ && !logM.contains("/authme reg ")
+ && !logM.contains("/authme cp ")
+ && !logM.contains("/register ")) return Result.NEUTRAL;
return Result.DENY;
- } catch (NullPointerException npe) {
- return Result.NEUTRAL;
- }
- }
+ } catch (NullPointerException npe) {
+ return Result.NEUTRAL;
+ }
+ }
- @Override
- public Result getOnMatch() {
- return Result.NEUTRAL;
- }
+ @Override
+ public Result getOnMatch() {
+ return Result.NEUTRAL;
+ }
- @Override
- public Result getOnMismatch() {
- return Result.NEUTRAL;
- }
+ @Override
+ public Result getOnMismatch() {
+ return Result.NEUTRAL;
+ }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/fr/xephi/authme/PerformBackup.java b/src/main/java/fr/xephi/authme/PerformBackup.java
index 8f3ecfc0..c5840075 100644
--- a/src/main/java/fr/xephi/authme/PerformBackup.java
+++ b/src/main/java/fr/xephi/authme/PerformBackup.java
@@ -17,127 +17,137 @@ import fr.xephi.authme.settings.Settings;
*/
public class PerformBackup {
- private String dbName = Settings.getMySQLDatabase;
- private String dbUserName = Settings.getMySQLUsername;
- private String dbPassword = Settings.getMySQLPassword;
- private String tblname = Settings.getMySQLTablename;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd_HH-mm");
- String dateString = format.format( new Date() );
- private String path = AuthMe.getInstance().getDataFolder()+"/backups/backup"+dateString;
- private AuthMe instance;
+ private String dbName = Settings.getMySQLDatabase;
+ private String dbUserName = Settings.getMySQLUsername;
+ private String dbPassword = Settings.getMySQLPassword;
+ private String tblname = Settings.getMySQLTablename;
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd_HH-mm");
+ String dateString = format.format(new Date());
+ private String path = AuthMe.getInstance().getDataFolder()
+ + "/backups/backup" + dateString;
+ private AuthMe instance;
- public PerformBackup(AuthMe instance) {
- this.setInstance(instance);
- }
+ public PerformBackup(AuthMe instance) {
+ this.setInstance(instance);
+ }
- public boolean DoBackup() {
+ public boolean DoBackup() {
- switch(Settings.getDataSource) {
- case FILE: return FileBackup("auths.db");
+ switch (Settings.getDataSource) {
+ case FILE:
+ return FileBackup("auths.db");
- case MYSQL: return MySqlBackup();
+ case MYSQL:
+ return MySqlBackup();
- case SQLITE: return FileBackup(Settings.getMySQLDatabase+".db");
+ case SQLITE:
+ return FileBackup(Settings.getMySQLDatabase + ".db");
- }
-
- return false;
- }
-
- private boolean MySqlBackup() {
- File dirBackup = new File(AuthMe.getInstance().getDataFolder()+"/backups");
-
- if(!dirBackup.exists())
- dirBackup.mkdir();
- if(checkWindows(Settings.backupWindowsPath)) {
- String executeCmd = Settings.backupWindowsPath+"\\bin\\mysqldump.exe -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
- Process runtimeProcess;
- try {
- runtimeProcess = Runtime.getRuntime().exec(executeCmd);
- int processComplete = runtimeProcess.waitFor();
- if (processComplete == 0) {
- ConsoleLogger.info("Backup created successfully");
- return true;
- } else {
- ConsoleLogger.info("Could not create the backup");
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- } else {
- String executeCmd = "mysqldump -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
- Process runtimeProcess;
- try {
- runtimeProcess = Runtime.getRuntime().exec(executeCmd);
- int processComplete = runtimeProcess.waitFor();
- if (processComplete == 0) {
- ConsoleLogger.info("Backup created successfully");
- return true;
- } else {
- ConsoleLogger.info("Could not create the backup");
- }
- } catch (Exception ex) {
- ex.printStackTrace();
}
- }
+
return false;
}
- private boolean FileBackup(String backend) {
- File dirBackup = new File(AuthMe.getInstance().getDataFolder()+"/backups");
+ private boolean MySqlBackup() {
+ File dirBackup = new File(AuthMe.getInstance().getDataFolder()
+ + "/backups");
- if(!dirBackup.exists())
- dirBackup.mkdir();
-
- try {
- copy(new File("plugins/AuthMe/"+backend),new File(path+".db"));
- return true;
-
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return false;
- }
-
- /*
- * Check if we are under Windows and correct location
- * of mysqldump.exe otherwise return error.
- */
- private boolean checkWindows(String windowsPath) {
- String isWin = System.getProperty("os.name").toLowerCase();
- if(isWin.indexOf("win") >= 0) {
- if(new File(windowsPath+"\\bin\\mysqldump.exe").exists()) {
- return true;
- } else {
- ConsoleLogger.showError("Mysql Windows Path is incorrect please check it");
- return true;
- }
- } else return false;
- }
-
- /*
- * Copyr src bytefile into dst file
- */
- void copy(File src, File dst) throws IOException {
- InputStream in = new FileInputStream(src);
- OutputStream out = new FileOutputStream(dst);
-
- // Transfer bytes from in to out
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- in.close();
- out.close();
+ if (!dirBackup.exists()) dirBackup.mkdir();
+ if (checkWindows(Settings.backupWindowsPath)) {
+ String executeCmd = Settings.backupWindowsPath
+ + "\\bin\\mysqldump.exe -u " + dbUserName + " -p"
+ + dbPassword + " " + dbName + " --tables " + tblname
+ + " -r " + path + ".sql";
+ Process runtimeProcess;
+ try {
+ runtimeProcess = Runtime.getRuntime().exec(executeCmd);
+ int processComplete = runtimeProcess.waitFor();
+ if (processComplete == 0) {
+ ConsoleLogger.info("Backup created successfully");
+ return true;
+ } else {
+ ConsoleLogger.info("Could not create the backup");
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ } else {
+ String executeCmd = "mysqldump -u " + dbUserName + " -p"
+ + dbPassword + " " + dbName + " --tables " + tblname
+ + " -r " + path + ".sql";
+ Process runtimeProcess;
+ try {
+ runtimeProcess = Runtime.getRuntime().exec(executeCmd);
+ int processComplete = runtimeProcess.waitFor();
+ if (processComplete == 0) {
+ ConsoleLogger.info("Backup created successfully");
+ return true;
+ } else {
+ ConsoleLogger.info("Could not create the backup");
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ return false;
}
-public void setInstance(AuthMe instance) {
- this.instance = instance;
-}
+ private boolean FileBackup(String backend) {
+ File dirBackup = new File(AuthMe.getInstance().getDataFolder()
+ + "/backups");
-public AuthMe getInstance() {
- return instance;
-}
+ if (!dirBackup.exists()) dirBackup.mkdir();
+
+ try {
+ copy(new File("plugins/AuthMe/" + backend), new File(path + ".db"));
+ return true;
+
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return false;
+ }
+
+ /*
+ * Check if we are under Windows and correct location of mysqldump.exe
+ * otherwise return error.
+ */
+ private boolean checkWindows(String windowsPath) {
+ String isWin = System.getProperty("os.name").toLowerCase();
+ if (isWin.indexOf("win") >= 0) {
+ if (new File(windowsPath + "\\bin\\mysqldump.exe").exists()) {
+ return true;
+ } else {
+ ConsoleLogger
+ .showError("Mysql Windows Path is incorrect please check it");
+ return true;
+ }
+ } else return false;
+ }
+
+ /*
+ * Copyr src bytefile into dst file
+ */
+ void copy(File src, File dst) throws IOException {
+ InputStream in = new FileInputStream(src);
+ OutputStream out = new FileOutputStream(dst);
+
+ // Transfer bytes from in to out
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ in.close();
+ out.close();
+ }
+
+ public void setInstance(AuthMe instance) {
+ this.instance = instance;
+ }
+
+ public AuthMe getInstance() {
+ return instance;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java
index 20dfd8e8..28d005bd 100644
--- a/src/main/java/fr/xephi/authme/SendMailSSL.java
+++ b/src/main/java/fr/xephi/authme/SendMailSSL.java
@@ -17,73 +17,79 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.settings.Settings;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class SendMailSSL {
- public AuthMe plugin;
+ public AuthMe plugin;
- public SendMailSSL(AuthMe plugin) {
- this.plugin = plugin;
- }
+ public SendMailSSL(AuthMe plugin) {
+ this.plugin = plugin;
+ }
- public void main(final PlayerAuth auth, final String newPass) {
- String sendername;
+ public void main(final PlayerAuth auth, final String newPass) {
+ String sendername;
- if (Settings.getmailSenderName.isEmpty() || Settings.getmailSenderName == null) {
- sendername = Settings.getmailAccount;
- } else {
- sendername = Settings.getmailSenderName;
- }
+ if (Settings.getmailSenderName.isEmpty()
+ || Settings.getmailSenderName == null) {
+ sendername = Settings.getmailAccount;
+ } else {
+ sendername = Settings.getmailSenderName;
+ }
- Properties props = new Properties();
- props.put("mail.smtp.host", Settings.getmailSMTP);
- props.put("mail.smtp.socketFactory.port", String.valueOf(Settings.getMailPort));
- props.put("mail.smtp.socketFactory.class",
- "javax.net.ssl.SSLSocketFactory");
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.port", String.valueOf(Settings.getMailPort));
+ Properties props = new Properties();
+ props.put("mail.smtp.host", Settings.getmailSMTP);
+ props.put("mail.smtp.socketFactory.port",
+ String.valueOf(Settings.getMailPort));
+ props.put("mail.smtp.socketFactory.class",
+ "javax.net.ssl.SSLSocketFactory");
+ props.put("mail.smtp.auth", "true");
+ props.put("mail.smtp.port", String.valueOf(Settings.getMailPort));
- Session session = Session.getInstance(props,
- new javax.mail.Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(Settings.getmailAccount,Settings.getmailPassword);
- }
- });
+ Session session = Session.getInstance(props,
+ new javax.mail.Authenticator() {
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(
+ Settings.getmailAccount,
+ Settings.getmailPassword);
+ }
+ });
- try {
+ try {
- final Message message = new MimeMessage(session);
- try {
- message.setFrom(new InternetAddress(Settings.getmailAccount, sendername));
- } catch (UnsupportedEncodingException uee) {
- message.setFrom(new InternetAddress(Settings.getmailAccount));
- }
- message.setRecipients(Message.RecipientType.TO,
- InternetAddress.parse(auth.getEmail()));
- message.setSubject(Settings.getMailSubject);
- message.setSentDate(new Date());
- String text = Settings.getMailText;
- text = text.replace("", auth.getNickname());
- text = text.replace("", plugin.getServer().getServerName());
- text = text.replace("", newPass);
- message.setContent(text, "text/html");
- Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
- @Override
- public void run() {
- try {
- Transport.send(message);
- } catch (MessagingException e) {
- e.printStackTrace();
- }
- }
- });
- if(!Settings.noConsoleSpam)
- ConsoleLogger.info("Email sent to : " + auth.getNickname());
- } catch (MessagingException e) {
- throw new RuntimeException(e);
- }
- }
+ final Message message = new MimeMessage(session);
+ try {
+ message.setFrom(new InternetAddress(Settings.getmailAccount,
+ sendername));
+ } catch (UnsupportedEncodingException uee) {
+ message.setFrom(new InternetAddress(Settings.getmailAccount));
+ }
+ message.setRecipients(Message.RecipientType.TO,
+ InternetAddress.parse(auth.getEmail()));
+ message.setSubject(Settings.getMailSubject);
+ message.setSentDate(new Date());
+ String text = Settings.getMailText;
+ text = text.replace("", auth.getNickname());
+ text = text.replace("", plugin.getServer()
+ .getServerName());
+ text = text.replace("", newPass);
+ message.setContent(text, "text/html");
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Transport.send(message);
+ } catch (MessagingException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ if (!Settings.noConsoleSpam) ConsoleLogger.info("Email sent to : "
+ + auth.getNickname());
+ } catch (MessagingException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/Utils.java b/src/main/java/fr/xephi/authme/Utils.java
index 10fb612e..9b6fb97c 100644
--- a/src/main/java/fr/xephi/authme/Utils.java
+++ b/src/main/java/fr/xephi/authme/Utils.java
@@ -25,157 +25,164 @@ public class Utils {
public AuthMe plugin;
public Utils(AuthMe plugin) {
- this.plugin = plugin;
+ this.plugin = plugin;
}
public void setGroup(Player player, groupType group) {
- setGroup(player.getName(), group);
- }
-
- public void setGroup(String player, groupType group) {
- if(!Settings.isPermissionCheckEnabled)
- return;
- if(plugin.permission == null)
- return;
- try {
- World world = null;
- currentGroup = plugin.permission.getPrimaryGroup(world, player);
- } catch (UnsupportedOperationException e) {
- ConsoleLogger.showError("Your permission system (" + plugin.permission.getName() + ") do not support Group system with that config... unhook!");
- plugin.permission = null;
- return;
- }
- World world = null;
- String name = player;
- switch(group) {
- case UNREGISTERED: {
- plugin.permission.playerRemoveGroup(world, name, currentGroup);
- plugin.permission.playerAddGroup(world, name, Settings.unRegisteredGroup);
- break;
- }
- case REGISTERED: {
- plugin.permission.playerRemoveGroup(world, name, currentGroup);
- plugin.permission.playerAddGroup(world, name, Settings.getRegisteredGroup);
- break;
- }
- case NOTLOGGEDIN: {
- if(!useGroupSystem()) break;
- plugin.permission.playerRemoveGroup(world, name, currentGroup);
- plugin.permission.playerAddGroup(world, name, Settings.getUnloggedinGroup);
- break;
- }
- case LOGGEDIN: {
- if(!useGroupSystem()) break;
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name.toLowerCase());
- if (limbo == null) break;
- String realGroup = limbo.getGroup();
- plugin.permission.playerRemoveGroup(world, name, currentGroup);
- plugin.permission.playerAddGroup(world, name, realGroup);
- break;
- }
- }
- return;
- }
-
- public boolean addNormal(Player player, String group) {
- if(!useGroupSystem()){
- return false;
- }
- if(plugin.permission == null) return false;
- World world = null;
- try {
- if(plugin.permission.playerRemoveGroup(world,player.getName().toString(),Settings.getUnloggedinGroup) && plugin.permission.playerAddGroup(world,player.getName().toString(),group)) {
- return true;
- }
- } catch (UnsupportedOperationException e) {
- ConsoleLogger.showError("Your permission system (" + plugin.permission.getName() + ") do not support Group system with that config... unhook!");
- plugin.permission = null;
- return false;
- }
- return false;
- }
-
- public void hasPermOnJoin(Player player) {
- if (plugin.permission == null) return;
- Iterator iter = Settings.getJoinPermissions.iterator();
- while (iter.hasNext()) {
- String permission = iter.next();
- if(plugin.permission.playerHas(player, permission)){
- plugin.permission.playerAddTransient(player, permission);
- }
- }
- }
-
- public boolean isUnrestricted(Player player) {
- if(!Settings.isAllowRestrictedIp)
- return false;
- if(Settings.getUnrestrictedName.isEmpty() || Settings.getUnrestrictedName == null)
- return false;
- if(Settings.getUnrestrictedName.contains(player.getName()))
- return true;
- return false;
+ setGroup(player.getName(), group);
}
- public static Utils getInstance() {
- singleton = new Utils(AuthMe.getInstance());
- return singleton;
+ public void setGroup(String player, groupType group) {
+ if (!Settings.isPermissionCheckEnabled) return;
+ if (plugin.permission == null) return;
+ try {
+ World world = null;
+ currentGroup = plugin.permission.getPrimaryGroup(world, player);
+ } catch (UnsupportedOperationException e) {
+ ConsoleLogger
+ .showError("Your permission system ("
+ + plugin.permission.getName()
+ + ") do not support Group system with that config... unhook!");
+ plugin.permission = null;
+ return;
+ }
+ World world = null;
+ String name = player;
+ switch (group) {
+ case UNREGISTERED: {
+ plugin.permission.playerRemoveGroup(world, name, currentGroup);
+ plugin.permission.playerAddGroup(world, name,
+ Settings.unRegisteredGroup);
+ break;
+ }
+ case REGISTERED: {
+ plugin.permission.playerRemoveGroup(world, name, currentGroup);
+ plugin.permission.playerAddGroup(world, name,
+ Settings.getRegisteredGroup);
+ break;
+ }
+ case NOTLOGGEDIN: {
+ if (!useGroupSystem()) break;
+ plugin.permission.playerRemoveGroup(world, name, currentGroup);
+ plugin.permission.playerAddGroup(world, name,
+ Settings.getUnloggedinGroup);
+ break;
+ }
+ case LOGGEDIN: {
+ if (!useGroupSystem()) break;
+ LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(
+ name.toLowerCase());
+ if (limbo == null) break;
+ String realGroup = limbo.getGroup();
+ plugin.permission.playerRemoveGroup(world, name, currentGroup);
+ plugin.permission.playerAddGroup(world, name, realGroup);
+ break;
+ }
+ }
+ return;
}
- private boolean useGroupSystem() {
- if(Settings.isPermissionCheckEnabled && !Settings.getUnloggedinGroup.isEmpty())
- return true;
+ public boolean addNormal(Player player, String group) {
+ if (!useGroupSystem()) {
+ return false;
+ }
+ if (plugin.permission == null) return false;
+ World world = null;
+ try {
+ if (plugin.permission.playerRemoveGroup(world, player.getName()
+ .toString(), Settings.getUnloggedinGroup)
+ && plugin.permission.playerAddGroup(world, player.getName()
+ .toString(), group)) {
+ return true;
+ }
+ } catch (UnsupportedOperationException e) {
+ ConsoleLogger
+ .showError("Your permission system ("
+ + plugin.permission.getName()
+ + ") do not support Group system with that config... unhook!");
+ plugin.permission = null;
+ return false;
+ }
return false;
}
- public void packCoords(double x, double y, double z, String w, final Player pl)
- {
- World theWorld;
- if (w.equals("unavailableworld")) {
- theWorld = pl.getWorld();
- } else {
- theWorld = Bukkit.getWorld(w);
- }
- if (theWorld == null)
- theWorld = pl.getWorld();
- final World world = theWorld;
- final Location locat = new Location(world, x, y, z);
+ public void hasPermOnJoin(Player player) {
+ if (plugin.permission == null) return;
+ Iterator iter = Settings.getJoinPermissions.iterator();
+ while (iter.hasNext()) {
+ String permission = iter.next();
+ if (plugin.permission.playerHas(player, permission)) {
+ plugin.permission.playerAddTransient(player, permission);
+ }
+ }
+ }
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(pl, locat);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getChunk().isLoaded())
- tpEvent.getTo().getChunk().load();
- pl.teleport(tpEvent.getTo());
- }
- }
- });
- }
+ public boolean isUnrestricted(Player player) {
+ if (!Settings.isAllowRestrictedIp) return false;
+ if (Settings.getUnrestrictedName.isEmpty()
+ || Settings.getUnrestrictedName == null) return false;
+ if (Settings.getUnrestrictedName.contains(player.getName())) return true;
+ return false;
+ }
- /*
+ public static Utils getInstance() {
+ singleton = new Utils(AuthMe.getInstance());
+ return singleton;
+ }
+
+ private boolean useGroupSystem() {
+ if (Settings.isPermissionCheckEnabled
+ && !Settings.getUnloggedinGroup.isEmpty()) return true;
+ return false;
+ }
+
+ public void packCoords(double x, double y, double z, String w,
+ final Player pl) {
+ World theWorld;
+ if (w.equals("unavailableworld")) {
+ theWorld = pl.getWorld();
+ } else {
+ theWorld = Bukkit.getWorld(w);
+ }
+ if (theWorld == null) theWorld = pl.getWorld();
+ final World world = theWorld;
+ final Location locat = new Location(world, x, y, z);
+
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(pl, locat);
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getChunk().isLoaded()) tpEvent.getTo()
+ .getChunk().load();
+ pl.teleport(tpEvent.getTo());
+ }
+ }
+ });
+ }
+
+ /*
* Random Token for passpartu
- *
*/
public boolean obtainToken() {
- File file = new File("plugins/AuthMe/passpartu.token");
- if (file.exists())
- file.delete();
+ File file = new File("plugins/AuthMe/passpartu.token");
+ if (file.exists()) file.delete();
- FileWriter writer = null;
- try {
- file.createNewFile();
- writer = new FileWriter(file);
- String token = generateToken();
- writer.write(token + ":" + System.currentTimeMillis() / 1000 + API.newline);
- writer.flush();
- ConsoleLogger.info("[AuthMe] Security passpartu token: "+ token);
- writer.close();
- return true;
- } catch(Exception e) {
- e.printStackTrace();
- }
+ FileWriter writer = null;
+ try {
+ file.createNewFile();
+ writer = new FileWriter(file);
+ String token = generateToken();
+ writer.write(token + ":" + System.currentTimeMillis() / 1000
+ + API.newline);
+ writer.flush();
+ ConsoleLogger.info("[AuthMe] Security passpartu token: " + token);
+ writer.close();
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
return false;
}
@@ -185,52 +192,53 @@ public class Utils {
public boolean readToken(String inputToken) {
File file = new File("plugins/AuthMe/passpartu.token");
- if (!file.exists())
- return false;
+ if (!file.exists()) return false;
- if (inputToken.isEmpty())
- return false;
- Scanner reader = null;
- try {
- reader = new Scanner(file);
- while (reader.hasNextLine()) {
- final String line = reader.nextLine();
- if (line.contains(":")) {
- String[] tokenInfo = line.split(":");
- if(tokenInfo[0].equals(inputToken) && System.currentTimeMillis()/1000-30 <= Integer.parseInt(tokenInfo[1]) ) {
- file.delete();
- reader.close();
- return true;
- }
- }
- }
- } catch(Exception e) {
- e.printStackTrace();
- }
- reader.close();
- return false;
+ if (inputToken.isEmpty()) return false;
+ Scanner reader = null;
+ try {
+ reader = new Scanner(file);
+ while (reader.hasNextLine()) {
+ final String line = reader.nextLine();
+ if (line.contains(":")) {
+ String[] tokenInfo = line.split(":");
+ if (tokenInfo[0].equals(inputToken)
+ && System.currentTimeMillis() / 1000 - 30 <= Integer
+ .parseInt(tokenInfo[1])) {
+ file.delete();
+ reader.close();
+ return true;
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ reader.close();
+ return false;
}
/*
* Generate Random Token
*/
private String generateToken() {
- // obtain new random token
- Random rnd = new Random ();
- char[] arr = new char[5];
- for (int i=0; i<5; i++) {
- int n = rnd.nextInt (36);
- arr[i] = (char) (n < 10 ? '0'+n : 'a'+n-10);
- }
- return new String(arr);
- }
+ // obtain new random token
+ Random rnd = new Random();
+ char[] arr = new char[5];
+ for (int i = 0; i < 5; i++) {
+ int n = rnd.nextInt(36);
+ arr[i] = (char) (n < 10 ? '0' + n : 'a' + n - 10);
+ }
+ return new String(arr);
+ }
/*
* Used for force player GameMode
*/
public static void forceGM(Player player) {
- if (!AuthMe.getInstance().authmePermissible(player, "authme.bypassforcesurvival"))
- player.setGameMode(GameMode.SURVIVAL);
+ if (!AuthMe.getInstance().authmePermissible(player,
+ "authme.bypassforcesurvival")) player
+ .setGameMode(GameMode.SURVIVAL);
}
public enum groupType {
diff --git a/src/main/java/fr/xephi/authme/api/API.java b/src/main/java/fr/xephi/authme/api/API.java
index 050b34f0..9917e0da 100644
--- a/src/main/java/fr/xephi/authme/api/API.java
+++ b/src/main/java/fr/xephi/authme/api/API.java
@@ -15,31 +15,33 @@ import fr.xephi.authme.plugin.manager.CombatTagComunicator;
import fr.xephi.authme.security.PasswordSecurity;
import fr.xephi.authme.settings.Settings;
-
public class API {
- public static final String newline = System.getProperty("line.separator");
- public static AuthMe instance;
- public static DataSource database;
+ public static final String newline = System.getProperty("line.separator");
+ public static AuthMe instance;
+ public static DataSource database;
- public API(AuthMe instance, DataSource database) {
- API.instance = instance;
- API.database = database;
- }
- /**
- * Hook into AuthMe
- * @return AuthMe instance
- */
+ public API(AuthMe instance, DataSource database) {
+ API.instance = instance;
+ API.database = database;
+ }
+
+ /**
+ * Hook into AuthMe
+ *
+ * @return AuthMe instance
+ */
public static AuthMe hookAuthMe() {
- Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("AuthMe");
+ Plugin plugin = Bukkit.getServer().getPluginManager()
+ .getPlugin("AuthMe");
if (plugin == null || !(plugin instanceof AuthMe)) {
- return null;
- }
- return (AuthMe) plugin;
+ return null;
+ }
+ return (AuthMe) plugin;
}
public AuthMe getPlugin() {
- return instance;
+ return instance;
}
/**
@@ -48,7 +50,8 @@ public class API {
* @return true if player is authenticate
*/
public static boolean isAuthenticated(Player player) {
- return PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase());
+ return PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase());
}
/**
@@ -58,9 +61,8 @@ public class API {
*/
@Deprecated
public boolean isaNPC(Player player) {
- if (instance.getCitizensCommunicator().isNPC(player, instance))
- return true;
- return CombatTagComunicator.isNPC(player);
+ if (instance.getCitizensCommunicator().isNPC(player, instance)) return true;
+ return CombatTagComunicator.isNPC(player);
}
/**
@@ -69,9 +71,8 @@ public class API {
* @return true if player is a npc
*/
public boolean isNPC(Player player) {
- if (instance.getCitizensCommunicator().isNPC(player, instance))
- return true;
- return CombatTagComunicator.isNPC(player);
+ if (instance.getCitizensCommunicator().isNPC(player, instance)) return true;
+ return CombatTagComunicator.isNPC(player);
}
/**
@@ -80,31 +81,35 @@ public class API {
* @return true if the player is unrestricted
*/
public static boolean isUnrestricted(Player player) {
- return Utils.getInstance().isUnrestricted(player);
+ return Utils.getInstance().isUnrestricted(player);
}
public static Location getLastLocation(Player player) {
- try {
- 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());
- return loc;
- } else {
- return null;
- }
-
- } catch (NullPointerException ex) {
- return null;
- }
+ try {
+ 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());
+ return loc;
+ } else {
+ return null;
+ }
+
+ } catch (NullPointerException ex) {
+ return null;
+ }
}
- public static void setPlayerInventory(Player player, ItemStack[] content, ItemStack[] armor) {
- try {
- player.getInventory().setContents(content);
- player.getInventory().setArmorContents(armor);
- } catch (NullPointerException npe) {
- }
+ public static void setPlayerInventory(Player player, ItemStack[] content,
+ ItemStack[] armor) {
+ try {
+ player.getInventory().setContents(content);
+ player.getInventory().setArmorContents(armor);
+ } catch (NullPointerException npe) {
+ }
}
/**
@@ -113,67 +118,78 @@ public class API {
* @return true if player is registered
*/
public static boolean isRegistered(String playerName) {
- String player = playerName.toLowerCase();
- return database.isAuthAvailable(player);
+ String player = playerName.toLowerCase();
+ return database.isAuthAvailable(player);
}
/**
- * @param String playerName, String passwordToCheck
+ * @param String
+ * playerName, String passwordToCheck
* @return true if the password is correct , false else
*/
- public static boolean checkPassword(String playerName, String passwordToCheck) {
- if (!isRegistered(playerName)) return false;
- String player = playerName.toLowerCase();
- PlayerAuth auth = database.getAuth(player);
- try {
- return PasswordSecurity.comparePasswordWithHash(passwordToCheck, auth.getHash(), playerName);
- } catch (NoSuchAlgorithmException e) {
- return false;
- }
+ public static boolean checkPassword(String playerName,
+ String passwordToCheck) {
+ if (!isRegistered(playerName)) return false;
+ String player = playerName.toLowerCase();
+ PlayerAuth auth = database.getAuth(player);
+ try {
+ return PasswordSecurity.comparePasswordWithHash(passwordToCheck,
+ auth.getHash(), playerName);
+ } catch (NoSuchAlgorithmException e) {
+ return false;
+ }
}
/**
* Register a player
- * @param String playerName, String password
+ *
+ * @param String
+ * playerName, String password
* @return true if the player is register correctly
*/
public static boolean registerPlayer(String playerName, String password) {
try {
String name = playerName.toLowerCase();
- String hash = PasswordSecurity.getHash(Settings.getPasswordHash, password, name);
+ String hash = PasswordSecurity.getHash(Settings.getPasswordHash,
+ password, name);
if (isRegistered(name)) {
return false;
}
- PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0, "your@email.com", getPlayerRealName(name));
+ PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0,
+ "your@email.com", getPlayerRealName(name));
if (!database.saveAuth(auth)) {
- return false;
+ return false;
}
return true;
} catch (NoSuchAlgorithmException ex) {
- return false;
+ return false;
}
}
/**
* Get Player realName from lowerCase nickname
- * @param String playerName
- * return String player real name
+ *
+ * @param String
+ * playerName return String player real name
*/
public static String getPlayerRealName(String nickname) {
- try {
- String realName = instance.dataManager.getOfflinePlayer(nickname).getName();
- if (realName != null && !realName.isEmpty())
- return realName;
- } catch (NullPointerException npe) {}
- return nickname;
+ try {
+ String realName = instance.dataManager.getOfflinePlayer(nickname)
+ .getName();
+ if (realName != null && !realName.isEmpty()) return realName;
+ } catch (NullPointerException npe) {
+ }
+ return nickname;
}
/**
* Force a player to login
- * @param Player player
+ *
+ * @param Player
+ * player
*/
public static void forceLogin(Player player) {
- instance.management.performLogin(player, "dontneed", true);
+ instance.management.performLogin(player, "dontneed", true);
}
}
diff --git a/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java b/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java
index e9292750..729cc2db 100644
--- a/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java
+++ b/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java
@@ -19,7 +19,8 @@ public class PlayerAuth {
private String email = "your@email.com";
private String realName = "";
- public PlayerAuth(String nickname, String hash, String ip, long lastLogin, String email, String realName) {
+ public PlayerAuth(String nickname, String hash, String ip, long lastLogin,
+ String email, String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
@@ -29,7 +30,8 @@ public class PlayerAuth {
}
- public PlayerAuth(String nickname, double x, double y, double z, String world) {
+ public PlayerAuth(String nickname, double x, double y, double z,
+ String world) {
this.nickname = nickname;
this.x = x;
this.y = y;
@@ -39,7 +41,9 @@ public class PlayerAuth {
}
- public PlayerAuth(String nickname, String hash, String ip, long lastLogin, double x, double y, double z, String world, String email, String realName) {
+ public PlayerAuth(String nickname, String hash, String ip, long lastLogin,
+ double x, double y, double z, String world, String email,
+ String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
@@ -53,7 +57,9 @@ public class PlayerAuth {
}
- public PlayerAuth(String nickname, String hash, String salt, int groupId, String ip, long lastLogin, double x, double y, double z, String world, String email, String realName) {
+ public PlayerAuth(String nickname, String hash, String salt, int groupId,
+ String ip, long lastLogin, double x, double y, double z,
+ String world, String email, String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
@@ -69,28 +75,32 @@ public class PlayerAuth {
}
- public PlayerAuth(String nickname, String hash, String salt, int groupId , String ip, long lastLogin, String realName) {
+ public PlayerAuth(String nickname, String hash, String salt, int groupId,
+ String ip, long lastLogin, String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
- this.lastLogin = lastLogin;
+ this.lastLogin = lastLogin;
this.salt = salt;
this.groupId = groupId;
this.realName = realName;
}
- public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin, String realName) {
+ public PlayerAuth(String nickname, String hash, String salt, String ip,
+ long lastLogin, String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
- this.lastLogin = lastLogin;
+ this.lastLogin = lastLogin;
this.salt = salt;
this.realName = realName;
}
- public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin, double x, double y, double z, String world, String email, String realName) {
+ public PlayerAuth(String nickname, String hash, String salt, String ip,
+ long lastLogin, double x, double y, double z, String world,
+ String email, String realName) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
@@ -105,23 +115,22 @@ public class PlayerAuth {
}
public PlayerAuth(String nickname, String ip, long lastLogin) {
- this.nickname = nickname;
- this.ip = ip;
- this.lastLogin = lastLogin;
+ this.nickname = nickname;
+ this.ip = ip;
+ this.lastLogin = lastLogin;
}
public PlayerAuth(String nickname, String hash, String ip, long lastLogin) {
- this.nickname = nickname;
- this.ip = ip;
- this.lastLogin = lastLogin;
- this.hash = hash;
+ this.nickname = nickname;
+ this.ip = ip;
+ this.lastLogin = lastLogin;
+ this.hash = hash;
}
- public String getIp() {
- if (ip == null || ip.isEmpty())
- ip = "127.0.0.1";
- return ip;
+ public String getIp() {
+ if (ip == null || ip.isEmpty()) ip = "127.0.0.1";
+ return ip;
}
public String getNickname() {
@@ -129,17 +138,18 @@ public class PlayerAuth {
}
public String getHash() {
- if (Settings.getPasswordHash == HashAlgorithm.MD5VB) {
- if(salt != null && !salt.isEmpty() && Settings.getPasswordHash == HashAlgorithm.MD5VB) {
- vBhash = "$MD5vb$"+salt+"$"+hash;
+ if (Settings.getPasswordHash == HashAlgorithm.MD5VB) {
+ if (salt != null && !salt.isEmpty()
+ && Settings.getPasswordHash == HashAlgorithm.MD5VB) {
+ vBhash = "$MD5vb$" + salt + "$" + hash;
return vBhash;
}
- }
+ }
return hash;
}
public String getSalt() {
- return this.salt;
+ return this.salt;
}
public int getGroupId() {
@@ -149,31 +159,37 @@ public class PlayerAuth {
public double getQuitLocX() {
return x;
}
+
public double getQuitLocY() {
return y;
}
+
public double getQuitLocZ() {
return z;
}
+
public String getEmail() {
- return email;
+ return email;
}
+
public void setQuitLocX(double d) {
this.x = d;
}
+
public void setQuitLocY(double d) {
this.y = d;
}
+
public void setQuitLocZ(double d) {
this.z = d;
- }
+ }
+
public long getLastLogin() {
- try {
- if (Long.valueOf(lastLogin) == null)
- lastLogin = 0L;
- } catch (NullPointerException e) {
- lastLogin = 0L;
- }
+ try {
+ if (Long.valueOf(lastLogin) == null) lastLogin = 0L;
+ } catch (NullPointerException e) {
+ lastLogin = 0L;
+ }
return lastLogin;
}
@@ -190,11 +206,11 @@ public class PlayerAuth {
}
public void setEmail(String email) {
- this.email = email;
+ this.email = email;
}
public void setSalt(String salt) {
- this.salt = salt;
+ this.salt = salt;
}
@Override
@@ -203,34 +219,38 @@ public class PlayerAuth {
return false;
}
PlayerAuth other = (PlayerAuth) obj;
- return other.getIp().equals(this.ip) && other.getNickname().equals(this.nickname);
+ return other.getIp().equals(this.ip)
+ && other.getNickname().equals(this.nickname);
}
@Override
public int hashCode() {
int hashCode = 7;
- hashCode = 71 * hashCode + (this.nickname != null ? this.nickname.hashCode() : 0);
+ hashCode = 71 * hashCode
+ + (this.nickname != null ? this.nickname.hashCode() : 0);
hashCode = 71 * hashCode + (this.ip != null ? this.ip.hashCode() : 0);
return hashCode;
}
- public void setWorld(String world) {
- this.world = world;
- }
+ public void setWorld(String world) {
+ this.world = world;
+ }
- public String getWorld() {
- return world;
- }
+ public String getWorld() {
+ return world;
+ }
- @Override
- public String toString() {
- String s = "Player : " + nickname + " ! IP : " + ip + " ! LastLogin : " + lastLogin + " ! LastPosition : " + x + "," + y + "," + z + "," + world
- + " ! Email : " + email + " ! Hash : " + hash + " ! Salt : " + salt + " ! RealName : " + realName;
- return s;
-
- }
+ @Override
+ public String toString() {
+ String s = "Player : " + nickname + " ! IP : " + ip + " ! LastLogin : "
+ + lastLogin + " ! LastPosition : " + x + "," + y + "," + z
+ + "," + world + " ! Email : " + email + " ! Hash : " + hash
+ + " ! Salt : " + salt + " ! RealName : " + realName;
+ return s;
- public String getRealname() {
- return realName;
- }
+ }
+
+ public String getRealname() {
+ return realName;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java b/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java
index 58129ed6..5908b5d9 100644
--- a/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java
+++ b/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java
@@ -40,7 +40,7 @@ public class PlayerCache {
}
public int getLogged() {
- return cache.size();
+ return cache.size();
}
}
diff --git a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java b/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java
index f2f20b6b..ef5ab501 100644
--- a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java
+++ b/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java
@@ -4,42 +4,43 @@ import org.bukkit.inventory.ItemStack;
public class DataFileCache {
- private ItemStack[] inventory;
- private ItemStack[] armor;
- private String group;
- private boolean operator;
- private boolean flying;
+ private ItemStack[] inventory;
+ private ItemStack[] armor;
+ private String group;
+ private boolean operator;
+ private boolean flying;
- public DataFileCache(ItemStack[] inventory, ItemStack[] armor){
- this.inventory = inventory;
- this.armor = armor;
- }
+ public DataFileCache(ItemStack[] inventory, ItemStack[] armor) {
+ this.inventory = inventory;
+ this.armor = armor;
+ }
- public DataFileCache(ItemStack[] inventory, ItemStack[] armor, String group, boolean operator, boolean flying){
- this.inventory = inventory;
- this.armor = armor;
- this.group = group;
- this.operator = operator;
- this.flying = flying;
- }
+ public DataFileCache(ItemStack[] inventory, ItemStack[] armor,
+ String group, boolean operator, boolean flying) {
+ this.inventory = inventory;
+ this.armor = armor;
+ this.group = group;
+ this.operator = operator;
+ this.flying = flying;
+ }
- public ItemStack[] getInventory(){
- return inventory;
- }
+ public ItemStack[] getInventory() {
+ return inventory;
+ }
- public ItemStack[] getArmour(){
- return armor;
- }
+ public ItemStack[] getArmour() {
+ return armor;
+ }
- public String getGroup(){
- return group;
- }
+ public String getGroup() {
+ return group;
+ }
- public boolean getOperator(){
- return operator;
- }
+ public boolean getOperator() {
+ return operator;
+ }
- public boolean isFlying(){
- return flying;
- }
+ public boolean isFlying() {
+ return flying;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/cache/backup/FileCache.java b/src/main/java/fr/xephi/authme/cache/backup/FileCache.java
index 75b77805..72e225af 100644
--- a/src/main/java/fr/xephi/authme/cache/backup/FileCache.java
+++ b/src/main/java/fr/xephi/authme/cache/backup/FileCache.java
@@ -18,117 +18,122 @@ import fr.xephi.authme.api.API;
public class FileCache {
private AuthMe plugin = AuthMe.getInstance();
- public FileCache() {
- final File folder = new File("cache");
- if (!folder.exists()) {
- folder.mkdirs();
- }
- }
- public void createCache(String playername, DataFileCache playerData, String group, boolean operator, boolean flying) {
- final File file = new File("cache/" + playername
- + ".cache");
+ public FileCache() {
+ final File folder = new File("cache");
+ if (!folder.exists()) {
+ folder.mkdirs();
+ }
+ }
- if (file.exists()) {
- return;
- }
+ public void createCache(String playername, DataFileCache playerData,
+ String group, boolean operator, boolean flying) {
+ final File file = new File("cache/" + playername + ".cache");
- FileWriter writer = null;
- try {
- file.createNewFile();
+ if (file.exists()) {
+ return;
+ }
- writer = new FileWriter(file);
+ FileWriter writer = null;
+ try {
+ file.createNewFile();
- String s = group+";";
- if (operator)
- s = s + "1";
- else s = s + "0";
+ writer = new FileWriter(file);
- // line format Group|OperatorStatus|isFlying
- if(flying)
- writer.write(s+";1" + API.newline);
- else writer.write(s+";0" + API.newline);
- writer.flush();
+ String s = group + ";";
+ if (operator) s = s + "1";
+ else s = s + "0";
- ItemStack[] invstack = playerData.getInventory();
+ // line format Group|OperatorStatus|isFlying
+ if (flying) writer.write(s + ";1" + API.newline);
+ else writer.write(s + ";0" + API.newline);
+ writer.flush();
- for (int i = 0; i < invstack.length; i++) {
+ ItemStack[] invstack = playerData.getInventory();
- String itemid = "AIR";
- int amount = 0;
- int durability = 0;
- String enchList = "";
- String name = "";
- String lores = "";
- if (invstack[i] != null) {
- itemid = invstack[i].getType().name();
- amount = invstack[i].getAmount();
- durability = invstack[i].getDurability();
- for(Enchantment e : invstack[i].getEnchantments().keySet()) {
- enchList = enchList.concat(e.getName()+":"+invstack[i].getEnchantmentLevel(e)+":");
- }
- if (enchList.length() > 1)
- enchList = enchList.substring(0, enchList.length() - 1);
- if (invstack[i].hasItemMeta()) {
- if (invstack[i].getItemMeta().hasDisplayName()) {
- name = invstack[i].getItemMeta().getDisplayName();
- }
- if (invstack[i].getItemMeta().hasLore()) {
- for (String lore : invstack[i].getItemMeta().getLore()) {
- lores = lore + "%newline%";
- }
- }
- }
- }
- String writeItem = "i" + ":" + itemid + ":" + amount + ":"
- + durability + ":"+ enchList + ";" + name + "\\*" + lores + "\r\n";
- writer.write(writeItem);
- writer.flush();
- }
+ for (int i = 0; i < invstack.length; i++) {
- ItemStack[] armorstack = playerData.getArmour();
+ String itemid = "AIR";
+ int amount = 0;
+ int durability = 0;
+ String enchList = "";
+ String name = "";
+ String lores = "";
+ if (invstack[i] != null) {
+ itemid = invstack[i].getType().name();
+ amount = invstack[i].getAmount();
+ durability = invstack[i].getDurability();
+ for (Enchantment e : invstack[i].getEnchantments().keySet()) {
+ enchList = enchList.concat(e.getName() + ":"
+ + invstack[i].getEnchantmentLevel(e) + ":");
+ }
+ if (enchList.length() > 1) enchList = enchList.substring(0,
+ enchList.length() - 1);
+ if (invstack[i].hasItemMeta()) {
+ if (invstack[i].getItemMeta().hasDisplayName()) {
+ name = invstack[i].getItemMeta().getDisplayName();
+ }
+ if (invstack[i].getItemMeta().hasLore()) {
+ for (String lore : invstack[i].getItemMeta()
+ .getLore()) {
+ lores = lore + "%newline%";
+ }
+ }
+ }
+ }
+ String writeItem = "i" + ":" + itemid + ":" + amount + ":"
+ + durability + ":" + enchList + ";" + name + "\\*"
+ + lores + "\r\n";
+ writer.write(writeItem);
+ writer.flush();
+ }
- for (int i = 0; i < armorstack.length; i++) {
- String itemid = "AIR";
- int amount = 0;
- int durability = 0;
- String enchList = "";
- String name = "";
- String lores = "";
- if (armorstack[i] != null) {
- itemid = armorstack[i].getType().name();
- amount = armorstack[i].getAmount();
- durability = armorstack[i].getDurability();
- for(Enchantment e : armorstack[i].getEnchantments().keySet()) {
- enchList = enchList.concat(e.getName()+":"+armorstack[i].getEnchantmentLevel(e)+":");
- }
- if (enchList.length() > 1)
- enchList = enchList.substring(0, enchList.length() - 1);
- if (armorstack[i].hasItemMeta()) {
- if (armorstack[i].getItemMeta().hasDisplayName()) {
- name = armorstack[i].getItemMeta().getDisplayName();
- }
- if (armorstack[i].getItemMeta().hasLore()) {
- for (String lore : armorstack[i].getItemMeta().getLore()) {
- lores = lore + "%newline%";
- }
- }
- }
- }
- String writeItem = "w" + ":" + itemid + ":" + amount + ":"
- + durability + ":"+ enchList + ";" + name + "\\*" + lores + "\r\n";
- writer.write(writeItem);
- writer.flush();
- }
- writer.close();
- } catch (final Exception e) {
- e.printStackTrace();
- }
- }
+ ItemStack[] armorstack = playerData.getArmour();
- public DataFileCache readCache(String playername) {
- final File file = new File("cache/" + playername
- + ".cache");
+ for (int i = 0; i < armorstack.length; i++) {
+ String itemid = "AIR";
+ int amount = 0;
+ int durability = 0;
+ String enchList = "";
+ String name = "";
+ String lores = "";
+ if (armorstack[i] != null) {
+ itemid = armorstack[i].getType().name();
+ amount = armorstack[i].getAmount();
+ durability = armorstack[i].getDurability();
+ for (Enchantment e : armorstack[i].getEnchantments()
+ .keySet()) {
+ enchList = enchList.concat(e.getName() + ":"
+ + armorstack[i].getEnchantmentLevel(e) + ":");
+ }
+ if (enchList.length() > 1) enchList = enchList.substring(0,
+ enchList.length() - 1);
+ if (armorstack[i].hasItemMeta()) {
+ if (armorstack[i].getItemMeta().hasDisplayName()) {
+ name = armorstack[i].getItemMeta().getDisplayName();
+ }
+ if (armorstack[i].getItemMeta().hasLore()) {
+ for (String lore : armorstack[i].getItemMeta()
+ .getLore()) {
+ lores = lore + "%newline%";
+ }
+ }
+ }
+ }
+ String writeItem = "w" + ":" + itemid + ":" + amount + ":"
+ + durability + ":" + enchList + ";" + name + "\\*"
+ + lores + "\r\n";
+ writer.write(writeItem);
+ writer.flush();
+ }
+ writer.close();
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public DataFileCache readCache(String playername) {
+ final File file = new File("cache/" + playername + ".cache");
ItemStack[] stacki = new ItemStack[36];
ItemStack[] stacka = new ItemStack[4];
@@ -149,20 +154,20 @@ public class FileCache {
String line = reader.nextLine();
if (!line.contains(":")) {
- // the fist line represent the player group, operator status and flying status
- final String[] playerInfo = line.split(";");
- group = playerInfo[0];
+ // the fist line represent the player group, operator status
+ // and flying status
+ final String[] playerInfo = line.split(";");
+ group = playerInfo[0];
- if (Integer.parseInt(playerInfo[1]) == 1) {
- op = true;
- } else op = false;
- if (playerInfo.length > 2) {
- if (Integer.parseInt(playerInfo[2]) == 1)
- flying = true;
- else flying = false;
- }
+ if (Integer.parseInt(playerInfo[1]) == 1) {
+ op = true;
+ } else op = false;
+ if (playerInfo.length > 2) {
+ if (Integer.parseInt(playerInfo[2]) == 1) flying = true;
+ else flying = false;
+ }
- continue;
+ continue;
}
if (!line.startsWith("i") && !line.startsWith("w")) {
@@ -179,18 +184,22 @@ public class FileCache {
line = line.split(";")[0];
}
final String[] in = line.split(":");
- // can enchant item? size ofstring in file - 4 all / 2 = number of enchant
+ // can enchant item? size ofstring in file - 4 all / 2 = number
+ // of enchant
if (in[0].equals("i")) {
stacki[i] = new ItemStack(Material.getMaterial(in[1]),
- Integer.parseInt(in[2]), Short.parseShort((in[3])));
- if(in.length > 4 && !in[4].isEmpty()) {
- for(int k=4;k 4 && !in[4].isEmpty()) {
+ for (int k = 4; k < in.length - 1; k++) {
+ stacki[i].addUnsafeEnchantment(
+ Enchantment.getByName(in[k]),
+ Integer.parseInt(in[k + 1]));
k++;
}
}
try {
- ItemMeta meta = plugin.getServer().getItemFactory().getItemMeta(stacki[i].getType());
+ ItemMeta meta = plugin.getServer().getItemFactory()
+ .getItemMeta(stacki[i].getType());
if (!name.isEmpty()) {
meta.setDisplayName(name);
}
@@ -201,23 +210,25 @@ public class FileCache {
}
meta.setLore(loreList);
}
- if (meta != null)
- stacki[i].setItemMeta(meta);
- } catch (Exception e) {}
+ if (meta != null) stacki[i].setItemMeta(meta);
+ } catch (Exception e) {
+ }
i++;
} else {
stacka[a] = new ItemStack(Material.getMaterial(in[1]),
Integer.parseInt(in[2]), Short.parseShort((in[3])));
- if(in.length > 4 && !in[4].isEmpty()) {
- for(int k=4;k 4 && !in[4].isEmpty()) {
+ for (int k = 4; k < in.length - 1; k++) {
+ stacka[a].addUnsafeEnchantment(
+ Enchantment.getByName(in[k]),
+ Integer.parseInt(in[k + 1]));
k++;
}
}
try {
- ItemMeta meta = plugin.getServer().getItemFactory().getItemMeta(stacka[a].getType());
- if (!name.isEmpty())
- meta.setDisplayName(name);
+ ItemMeta meta = plugin.getServer().getItemFactory()
+ .getItemMeta(stacka[a].getType());
+ if (!name.isEmpty()) meta.setDisplayName(name);
if (!lores.isEmpty()) {
List loreList = new ArrayList();
for (String s : lores.split("%newline%")) {
@@ -225,9 +236,9 @@ public class FileCache {
}
meta.setLore(loreList);
}
- if (meta != null)
- stacki[i].setItemMeta(meta);
- } catch (Exception e) {}
+ if (meta != null) stacki[i].setItemMeta(meta);
+ } catch (Exception e) {
+ }
a++;
}
}
@@ -239,25 +250,23 @@ public class FileCache {
}
}
return new DataFileCache(stacki, stacka, group, op, flying);
- }
+ }
- public void removeCache(String playername) {
- final File file = new File("cache/" + playername
- + ".cache");
+ public void removeCache(String playername) {
+ final File file = new File("cache/" + playername + ".cache");
- if (file.exists()) {
- file.delete();
- }
- }
+ if (file.exists()) {
+ file.delete();
+ }
+ }
- public boolean doesCacheExist(String playername) {
- final File file = new File("cache/" + playername
- + ".cache");
+ public boolean doesCacheExist(String playername) {
+ final File file = new File("cache/" + playername + ".cache");
- if (file.exists()) {
- return true;
- }
- return false;
- }
+ if (file.exists()) {
+ return true;
+ }
+ return false;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java
index 87f4aa6b..e099c31a 100644
--- a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java
+++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java
@@ -15,7 +15,6 @@ import fr.xephi.authme.events.ResetInventoryEvent;
import fr.xephi.authme.events.StoreInventoryEvent;
import fr.xephi.authme.settings.Settings;
-
public class LimboCache {
private static LimboCache singleton = null;
@@ -24,7 +23,7 @@ public class LimboCache {
public AuthMe plugin;
private LimboCache(AuthMe plugin) {
- this.plugin = plugin;
+ this.plugin = plugin;
this.cache = new HashMap();
}
@@ -39,63 +38,70 @@ public class LimboCache {
boolean flying;
if (playerData.doesCacheExist(name)) {
- StoreInventoryEvent event = new StoreInventoryEvent(player, playerData);
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled() && event.getInventory() != null && event.getArmor() != null) {
- inv = event.getInventory();
- arm = event.getArmor();
- } else {
- inv = null;
- arm = null;
- }
- playerGroup = playerData.readCache(name).getGroup();
- operator = playerData.readCache(name).getOperator();
- flying = playerData.readCache(name).isFlying();
+ StoreInventoryEvent event = new StoreInventoryEvent(player,
+ playerData);
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (!event.isCancelled() && event.getInventory() != null
+ && event.getArmor() != null) {
+ inv = event.getInventory();
+ arm = event.getArmor();
+ } else {
+ inv = null;
+ arm = null;
+ }
+ playerGroup = playerData.readCache(name).getGroup();
+ operator = playerData.readCache(name).getOperator();
+ flying = playerData.readCache(name).isFlying();
} else {
- StoreInventoryEvent event = new StoreInventoryEvent(player);
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled() && event.getInventory() != null && event.getArmor() != null) {
- inv = event.getInventory();
- arm = event.getArmor();
- } else {
- inv = null;
- arm = null;
- }
- if(player.isOp())
- operator = true;
+ StoreInventoryEvent event = new StoreInventoryEvent(player);
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (!event.isCancelled() && event.getInventory() != null
+ && event.getArmor() != null) {
+ inv = event.getInventory();
+ arm = event.getArmor();
+ } else {
+ inv = null;
+ arm = null;
+ }
+ if (player.isOp()) operator = true;
else operator = false;
- if(player.isFlying())
- flying = true;
+ if (player.isFlying()) flying = true;
else flying = false;
if (plugin.permission != null) {
- try {
- playerGroup = plugin.permission.getPrimaryGroup(player);
- } catch (UnsupportedOperationException e) {
- ConsoleLogger.showError("Your permission system (" + plugin.permission.getName() + ") do not support Group system with that config... unhook!");
- plugin.permission = null;
- }
+ try {
+ playerGroup = plugin.permission.getPrimaryGroup(player);
+ } catch (UnsupportedOperationException e) {
+ ConsoleLogger
+ .showError("Your permission system ("
+ + plugin.permission.getName()
+ + ") do not support Group system with that config... unhook!");
+ plugin.permission = null;
+ }
}
}
- if(Settings.isForceSurvivalModeEnabled) {
- if(Settings.isResetInventoryIfCreative && player.getGameMode() == GameMode.CREATIVE ) {
- ResetInventoryEvent event = new ResetInventoryEvent(player);
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- player.getInventory().clear();
- player.sendMessage("Your inventory has been cleaned!");
- }
+ if (Settings.isForceSurvivalModeEnabled) {
+ if (Settings.isResetInventoryIfCreative
+ && player.getGameMode() == GameMode.CREATIVE) {
+ ResetInventoryEvent event = new ResetInventoryEvent(player);
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (!event.isCancelled()) {
+ player.getInventory().clear();
+ player.sendMessage("Your inventory has been cleaned!");
+ }
}
gameMode = GameMode.SURVIVAL;
}
- if(player.isDead()) {
- loc = plugin.getSpawnLocation(player);
+ if (player.isDead()) {
+ loc = plugin.getSpawnLocation(player);
}
- cache.put(player.getName().toLowerCase(), new LimboPlayer(name, loc, inv, arm, gameMode, operator, playerGroup, flying));
+ cache.put(player.getName().toLowerCase(), new LimboPlayer(name, loc,
+ inv, arm, gameMode, operator, playerGroup, flying));
}
public void addLimboPlayer(Player player, String group) {
- cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group));
+ cache.put(player.getName().toLowerCase(), new LimboPlayer(player
+ .getName().toLowerCase(), group));
}
public void deleteLimboPlayer(String name) {
@@ -117,11 +123,11 @@ public class LimboCache {
return singleton;
}
- public void updateLimboPlayer(Player player) {
- if (this.hasLimboPlayer(player.getName().toLowerCase())) {
- this.deleteLimboPlayer(player.getName().toLowerCase());
- }
- this.addLimboPlayer(player);
- }
+ public void updateLimboPlayer(Player player) {
+ if (this.hasLimboPlayer(player.getName().toLowerCase())) {
+ this.deleteLimboPlayer(player.getName().toLowerCase());
+ }
+ this.addLimboPlayer(player);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java
index 4910533a..46344878 100644
--- a/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java
+++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java
@@ -17,7 +17,9 @@ public class LimboPlayer {
private String group = "";
private boolean flying = false;
- public LimboPlayer(String name, Location loc, ItemStack[] inventory, ItemStack[] armour, GameMode gameMode, boolean operator, String group, boolean flying) {
+ public LimboPlayer(String name, Location loc, ItemStack[] inventory,
+ ItemStack[] armour, GameMode gameMode, boolean operator,
+ String group, boolean flying) {
this.name = name;
this.loc = loc;
this.inventory = inventory;
@@ -28,7 +30,8 @@ public class LimboPlayer {
this.flying = flying;
}
- public LimboPlayer(String name, Location loc, GameMode gameMode, boolean operator, String group, boolean flying) {
+ public LimboPlayer(String name, Location loc, GameMode gameMode,
+ boolean operator, String group, boolean flying) {
this.name = name;
this.loc = loc;
this.gameMode = gameMode;
@@ -59,11 +62,11 @@ public class LimboPlayer {
}
public void setArmour(ItemStack[] armour) {
- this.armour = armour;
+ this.armour = armour;
}
public void setInventory(ItemStack[] inventory) {
- this.inventory = inventory;
+ this.inventory = inventory;
}
public GameMode getGameMode() {
@@ -78,24 +81,24 @@ public class LimboPlayer {
return group;
}
- public void setTimeoutTaskId(int i) {
- this.timeoutTaskId = i;
- }
+ public void setTimeoutTaskId(int i) {
+ this.timeoutTaskId = i;
+ }
- public int getTimeoutTaskId() {
- return timeoutTaskId;
- }
+ public int getTimeoutTaskId() {
+ return timeoutTaskId;
+ }
- public void setMessageTaskId(int messageTaskId) {
- this.messageTaskId = messageTaskId;
- }
+ public void setMessageTaskId(int messageTaskId) {
+ this.messageTaskId = messageTaskId;
+ }
- public int getMessageTaskId() {
- return messageTaskId;
- }
+ public int getMessageTaskId() {
+ return messageTaskId;
+ }
- public boolean isFlying() {
- return flying;
- }
+ public boolean isFlying() {
+ return flying;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/commands/AdminCommand.java b/src/main/java/fr/xephi/authme/commands/AdminCommand.java
index 781739bf..eef5c9f6 100644
--- a/src/main/java/fr/xephi/authme/commands/AdminCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/AdminCommand.java
@@ -43,10 +43,9 @@ import fr.xephi.authme.settings.SpoutCfg;
import fr.xephi.authme.task.MessageTask;
import fr.xephi.authme.task.TimeoutTask;
-
public class AdminCommand implements CommandExecutor {
- public AuthMe plugin;
+ public AuthMe plugin;
private Messages m = Messages.getInstance();
private SpoutCfg s = SpoutCfg.getInstance();
public DataSource database;
@@ -57,7 +56,8 @@ public class AdminCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (args.length == 0) {
sender.sendMessage("Usage: /authme reload - Reload the config");
sender.sendMessage("/authme register - Register a player");
@@ -75,27 +75,33 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("/authme switchantibot on/off - Enable/Disable antibot method");
return true;
}
-
- if (!plugin.authmePermissible(sender, "authme.admin." + args[0].toLowerCase())) {
- m._(sender, "no_perm");
- return true;
- }
- if((sender instanceof ConsoleCommandSender) && args[0].equalsIgnoreCase("passpartuToken")) {
- if(args.length > 1) {
- System.out.println("[AuthMe] command usage: /authme passpartuToken");
- return true;
- }
- if(Utils.getInstance().obtainToken()) {
- System.out.println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
+ if (!plugin.authmePermissible(sender,
+ "authme.admin." + args[0].toLowerCase())) {
+ m._(sender, "no_perm");
+ return true;
+ }
+
+ if ((sender instanceof ConsoleCommandSender)
+ && args[0].equalsIgnoreCase("passpartuToken")) {
+ if (args.length > 1) {
+ System.out
+ .println("[AuthMe] command usage: /authme passpartuToken");
+ return true;
+ }
+ if (Utils.getInstance().obtainToken()) {
+ System.out
+ .println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
} else {
- System.out.println("[AuthMe] Security error on passpartu token, redo it. ");
+ System.out
+ .println("[AuthMe] Security error on passpartu token, redo it. ");
}
return true;
- }
+ }
if (args[0].equalsIgnoreCase("version")) {
- sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion());
+ sender.sendMessage("AuthMe Version: "
+ + AuthMe.getInstance().getDescription().getVersion());
return true;
}
@@ -109,15 +115,16 @@ public class AdminCommand implements CommandExecutor {
calendar.add(Calendar.DATE, -(Integer.parseInt(args[1])));
long until = calendar.getTimeInMillis();
List purged = database.autoPurgeDatabase(until);
- sender.sendMessage("Deleted " + purged.size() + " user accounts");
- if (Settings.purgeEssentialsFile && plugin.ess != null)
- plugin.dataManager.purgeEssentials(purged);
- if (Settings.purgePlayerDat)
- plugin.dataManager.purgeDat(purged);
- if (Settings.purgeLimitedCreative)
- plugin.dataManager.purgeLimitedCreative(purged);
- if (Settings.purgeAntiXray)
- plugin.dataManager.purgeAntiXray(purged);
+ sender.sendMessage("Deleted " + purged.size()
+ + " user accounts");
+ if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager
+ .purgeEssentials(purged);
+ if (Settings.purgePlayerDat) plugin.dataManager
+ .purgeDat(purged);
+ if (Settings.purgeLimitedCreative) plugin.dataManager
+ .purgeLimitedCreative(purged);
+ if (Settings.purgeAntiXray) plugin.dataManager
+ .purgeAntiXray(purged);
return true;
} catch (NumberFormatException e) {
sender.sendMessage("Usage: /authme purge ");
@@ -125,148 +132,176 @@ public class AdminCommand implements CommandExecutor {
}
} else if (args[0].equalsIgnoreCase("reload")) {
database.reload();
- File newConfigFile = new File("plugins/AuthMe","config.yml");
+ File newConfigFile = new File("plugins/AuthMe", "config.yml");
if (!newConfigFile.exists()) {
- InputStream fis = getClass().getResourceAsStream("/config.yml");
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(newConfigFile);
- 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");
- } finally {
- try {
- if (fis != null) {
- fis.close();
- }
- if (fos != null) {
- fos.close();
- }
- } catch (Exception e) {
- }
- }
+ InputStream fis = getClass().getResourceAsStream("/config.yml");
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(newConfigFile);
+ 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");
+ } finally {
+ try {
+ if (fis != null) {
+ fis.close();
+ }
+ if (fos != null) {
+ fos.close();
+ }
+ } catch (Exception e) {
+ }
+ }
}
- YamlConfiguration newConfig = YamlConfiguration.loadConfiguration(newConfigFile);
+ YamlConfiguration newConfig = YamlConfiguration
+ .loadConfiguration(newConfigFile);
Settings.reloadConfigOptions(newConfig);
m.reLoad();
s.reLoad();
m._(sender, "reload");
} else if (args[0].equalsIgnoreCase("lastlogin")) {
- if (args.length != 2) {
- sender.sendMessage("Usage: /authme lastlogin ");
- return true;
- }
- try {
- if (database.getAuth(args[1].toLowerCase()) != null) {
+ if (args.length != 2) {
+ sender.sendMessage("Usage: /authme lastlogin ");
+ return true;
+ }
+ try {
+ 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;
- final String msg = (int)(diff / 86400000) + " days " + (int)(diff / 3600000 % 24) + " hours " + (int)(diff / 60000 % 60) + " mins " + (int)(diff / 1000 % 60) + " secs.";
+ final String msg = (int) (diff / 86400000) + " days "
+ + (int) (diff / 3600000 % 24) + " hours "
+ + (int) (diff / 60000 % 60) + " mins "
+ + (int) (diff / 1000 % 60) + " secs.";
String lastIP = player.getIp();
- sender.sendMessage("[AuthMe] " + args[1].toLowerCase() + " lastlogin : " + d.toString());
- sender.sendMessage("[AuthMe] The player : " + player.getNickname() + " is unlogged since " + msg);
+ sender.sendMessage("[AuthMe] " + args[1].toLowerCase()
+ + " lastlogin : " + d.toString());
+ sender.sendMessage("[AuthMe] The player : "
+ + player.getNickname() + " is unlogged since "
+ + msg);
sender.sendMessage("[AuthMe] LastPlayer IP : " + lastIP);
- } else {
- m._(sender, "unknown_user");
- return true;
- }
- } catch (NullPointerException e) {
- m._(sender, "unknown_user");
- return true;
- }
+ } else {
+ m._(sender, "unknown_user");
+ return true;
+ }
+ } catch (NullPointerException e) {
+ m._(sender, "unknown_user");
+ return true;
+ }
} else if (args[0].equalsIgnoreCase("accounts")) {
- if (args.length != 2) {
- sender.sendMessage("Usage: /authme accounts ");
- sender.sendMessage("Or: /authme accounts ");
- return true;
- }
- if (!args[1].contains(".")) {
- final CommandSender fSender = sender;
- final String[] arguments = args;
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- PlayerAuth pAuth = null;
- String message = "[AuthMe] ";
- try {
- pAuth = database.getAuth(arguments[1].toLowerCase());
- } catch (NullPointerException npe){
- fSender.sendMessage("[AuthMe] This player is unknown");
- return;
- }
- if (pAuth != null) {
- List accountList = database.getAllAuthsByName(pAuth);
- if (accountList.isEmpty() || accountList == null) {
- fSender.sendMessage("[AuthMe] This player is unknown");
- return;
- }
- if (accountList.size() == 1) {
- fSender.sendMessage("[AuthMe] " + arguments[1] + " is a single account player");
- return;
- }
- int i = 0;
- for (String account : accountList) {
- i++;
- message = message + account;
- if (i != accountList.size()) {
- message = message + ", ";
- } else {
- message = message + ".";
- }
- }
- fSender.sendMessage("[AuthMe] " + arguments[1] + " has " + String.valueOf(accountList.size()) + " accounts");
- fSender.sendMessage(message);
- } else {
- fSender.sendMessage("[AuthMe] This player is unknown");
- return;
- }
- }
- });
- return true;
- } else {
- final CommandSender fSender = sender;
- final String[] arguments = args;
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- String message = "[AuthMe] ";
- if (arguments[1] != null) {
- List accountList = database.getAllAuthsByIp(arguments[1]);
- if (accountList.isEmpty() || accountList == null) {
- fSender.sendMessage("[AuthMe] Please put a valid IP");
- return;
- }
- if (accountList.size() == 1) {
- fSender.sendMessage("[AuthMe] " + arguments[1] + " is a single account player");
- return;
- }
- int i = 0;
- for (String account : accountList) {
- i++;
- message = message + account;
- if (i != accountList.size()) {
- message = message + ", ";
- } else {
- message = message + ".";
- }
- }
- fSender.sendMessage("[AuthMe] " + arguments[1] + " has " + String.valueOf(accountList.size()) + " accounts");
- fSender.sendMessage(message);
- } else {
- fSender.sendMessage("[AuthMe] Please put a valid IP");
- return;
- }
- }
- });
- return true;
- }
- } else if (args[0].equalsIgnoreCase("register") || args[0].equalsIgnoreCase("reg")) {
+ if (args.length != 2) {
+ sender.sendMessage("Usage: /authme accounts ");
+ sender.sendMessage("Or: /authme accounts ");
+ return true;
+ }
+ if (!args[1].contains(".")) {
+ final CommandSender fSender = sender;
+ final String[] arguments = args;
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ PlayerAuth pAuth = null;
+ String message = "[AuthMe] ";
+ try {
+ pAuth = database.getAuth(arguments[1]
+ .toLowerCase());
+ } catch (NullPointerException npe) {
+ fSender.sendMessage("[AuthMe] This player is unknown");
+ return;
+ }
+ if (pAuth != null) {
+ List accountList = database
+ .getAllAuthsByName(pAuth);
+ if (accountList.isEmpty()
+ || accountList == null) {
+ fSender.sendMessage("[AuthMe] This player is unknown");
+ return;
+ }
+ if (accountList.size() == 1) {
+ fSender.sendMessage("[AuthMe] "
+ + arguments[1]
+ + " is a single account player");
+ return;
+ }
+ int i = 0;
+ for (String account : accountList) {
+ i++;
+ message = message + account;
+ if (i != accountList.size()) {
+ message = message + ", ";
+ } else {
+ message = message + ".";
+ }
+ }
+ fSender.sendMessage("[AuthMe] "
+ + arguments[1]
+ + " has "
+ + String.valueOf(accountList.size())
+ + " accounts");
+ fSender.sendMessage(message);
+ } else {
+ fSender.sendMessage("[AuthMe] This player is unknown");
+ return;
+ }
+ }
+ });
+ return true;
+ } else {
+ final CommandSender fSender = sender;
+ final String[] arguments = args;
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ String message = "[AuthMe] ";
+ if (arguments[1] != null) {
+ List accountList = database
+ .getAllAuthsByIp(arguments[1]);
+ if (accountList.isEmpty()
+ || accountList == null) {
+ fSender.sendMessage("[AuthMe] Please put a valid IP");
+ return;
+ }
+ if (accountList.size() == 1) {
+ fSender.sendMessage("[AuthMe] "
+ + arguments[1]
+ + " is a single account player");
+ return;
+ }
+ int i = 0;
+ for (String account : accountList) {
+ i++;
+ message = message + account;
+ if (i != accountList.size()) {
+ message = message + ", ";
+ } else {
+ message = message + ".";
+ }
+ }
+ fSender.sendMessage("[AuthMe] "
+ + arguments[1]
+ + " has "
+ + String.valueOf(accountList.size())
+ + " accounts");
+ fSender.sendMessage(message);
+ } else {
+ fSender.sendMessage("[AuthMe] Please put a valid IP");
+ return;
+ }
+ }
+ });
+ return true;
+ }
+ } else if (args[0].equalsIgnoreCase("register")
+ || args[0].equalsIgnoreCase("reg")) {
if (args.length != 3) {
sender.sendMessage("Usage: /authme register playername password");
return true;
@@ -274,17 +309,19 @@ public class AdminCommand implements CommandExecutor {
try {
String name = args[1].toLowerCase();
if (database.isAuthAvailable(name)) {
- m._(sender, "user_regged");
+ m._(sender, "user_regged");
return true;
}
- String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
- PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0L, "your@email.com", API.getPlayerRealName(name));
- if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null)
- auth.setSalt(PasswordSecurity.userSalt.get(name));
- else
- auth.setSalt("");
+ String hash = PasswordSecurity.getHash(
+ Settings.getPasswordHash, args[2], name);
+ PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0L,
+ "your@email.com", API.getPlayerRealName(name));
+ if (PasswordSecurity.userSalt.containsKey(name)
+ && PasswordSecurity.userSalt.get(name) != null) auth
+ .setSalt(PasswordSecurity.userSalt.get(name));
+ else auth.setSalt("");
if (!database.saveAuth(auth)) {
- m._(sender, "error");
+ m._(sender, "error");
return true;
}
m._(sender, "registered");
@@ -299,118 +336,128 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme getemail playername");
return true;
}
- String playername = args[1].toLowerCase();
- PlayerAuth getAuth = database.getAuth(playername);
- if (getAuth == null) {
- m._(sender, "unknown_user");
- return true;
- }
- sender.sendMessage("[AuthMe] " + args[1] + " email : " + getAuth.getEmail());
- return true;
+ String playername = args[1].toLowerCase();
+ PlayerAuth getAuth = database.getAuth(playername);
+ if (getAuth == null) {
+ m._(sender, "unknown_user");
+ return true;
+ }
+ sender.sendMessage("[AuthMe] " + args[1] + " email : "
+ + getAuth.getEmail());
+ return true;
} else if (args[0].equalsIgnoreCase("chgemail")) {
if (args.length != 3) {
sender.sendMessage("Usage: /authme chgemail playername email");
return true;
}
- String playername = args[1].toLowerCase();
- PlayerAuth getAuth = database.getAuth(playername);
- if (getAuth == null) {
- m._(sender, "unknown_user");
- return true;
- }
- getAuth.setEmail(args[2]);
- if (!database.updateEmail(getAuth)) {
- m._(sender, "error");
+ String playername = args[1].toLowerCase();
+ PlayerAuth getAuth = database.getAuth(playername);
+ if (getAuth == null) {
+ m._(sender, "unknown_user");
return true;
}
- if (PlayerCache.getInstance().getAuth(playername) != null)
- PlayerCache.getInstance().updatePlayer(getAuth);
- return true;
+ getAuth.setEmail(args[2]);
+ if (!database.updateEmail(getAuth)) {
+ m._(sender, "error");
+ return true;
+ }
+ if (PlayerCache.getInstance().getAuth(playername) != null) PlayerCache
+ .getInstance().updatePlayer(getAuth);
+ return true;
} else if (args[0].equalsIgnoreCase("setspawn")) {
- try {
- if (sender instanceof Player) {
- if (Spawn.getInstance().setSpawn(((Player) sender).getLocation()))
- sender.sendMessage("[AuthMe] Correctly define new spawn");
- else sender.sendMessage("[AuthMe] SetSpawn fail , please retry");
- } else {
- sender.sendMessage("[AuthMe] Please use that command in game");
- }
- } catch (NullPointerException ex) {
- ConsoleLogger.showError(ex.getMessage());
- }
- return true;
+ try {
+ if (sender instanceof Player) {
+ if (Spawn.getInstance().setSpawn(
+ ((Player) sender).getLocation())) sender
+ .sendMessage("[AuthMe] Correctly define new spawn");
+ else sender
+ .sendMessage("[AuthMe] SetSpawn fail , please retry");
+ } else {
+ sender.sendMessage("[AuthMe] Please use that command in game");
+ }
+ } catch (NullPointerException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ }
+ return true;
} else if (args[0].equalsIgnoreCase("setfirstspawn")) {
- try {
- if (sender instanceof Player) {
- if (Spawn.getInstance().setFirstSpawn(((Player) sender).getLocation()))
- sender.sendMessage("[AuthMe] Correctly define new first spawn");
- else sender.sendMessage("[AuthMe] SetFirstSpawn fail , please retry");
- } else {
- sender.sendMessage("[AuthMe] Please use that command in game");
- }
- } catch (NullPointerException ex) {
- ConsoleLogger.showError(ex.getMessage());
- }
- return true;
+ try {
+ if (sender instanceof Player) {
+ if (Spawn.getInstance().setFirstSpawn(
+ ((Player) sender).getLocation())) sender
+ .sendMessage("[AuthMe] Correctly define new first spawn");
+ else sender
+ .sendMessage("[AuthMe] SetFirstSpawn fail , please retry");
+ } else {
+ sender.sendMessage("[AuthMe] Please use that command in game");
+ }
+ } catch (NullPointerException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ }
+ return true;
} else if (args[0].equalsIgnoreCase("purgebannedplayers")) {
- List bannedPlayers = new ArrayList();
- for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
- bannedPlayers.add(off.getName().toLowerCase());
- }
- final List bP = bannedPlayers;
- if (database instanceof Thread) {
- database.purgeBanned(bP);
- } else {
- Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
- @Override
- public void run() {
- database.purgeBanned(bP);
- }
- });
- }
- if (Settings.purgeEssentialsFile && plugin.ess != null)
- plugin.dataManager.purgeEssentials(bannedPlayers);
- if (Settings.purgePlayerDat)
- plugin.dataManager.purgeDat(bannedPlayers);
- if (Settings.purgeLimitedCreative)
- plugin.dataManager.purgeLimitedCreative(bannedPlayers);
- if (Settings.purgeAntiXray)
- plugin.dataManager.purgeAntiXray(bannedPlayers);
- return true;
+ List bannedPlayers = new ArrayList();
+ for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
+ bannedPlayers.add(off.getName().toLowerCase());
+ }
+ final List bP = bannedPlayers;
+ if (database instanceof Thread) {
+ database.purgeBanned(bP);
+ } else {
+ Bukkit.getScheduler().runTaskAsynchronously(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ database.purgeBanned(bP);
+ }
+ });
+ }
+ if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager
+ .purgeEssentials(bannedPlayers);
+ if (Settings.purgePlayerDat) plugin.dataManager
+ .purgeDat(bannedPlayers);
+ if (Settings.purgeLimitedCreative) plugin.dataManager
+ .purgeLimitedCreative(bannedPlayers);
+ if (Settings.purgeAntiXray) plugin.dataManager
+ .purgeAntiXray(bannedPlayers);
+ return true;
} else if (args[0].equalsIgnoreCase("spawn")) {
- try {
- if (sender instanceof Player) {
- if (Spawn.getInstance().getSpawn() != null)
- ((Player) sender).teleport(Spawn.getInstance().getSpawn());
- else sender.sendMessage("[AuthMe] Spawn fail , please try to define the spawn");
- } else {
- sender.sendMessage("[AuthMe] Please use that command in game");
- }
- } catch (NullPointerException ex) {
- ConsoleLogger.showError(ex.getMessage());
- }
- return true;
+ try {
+ if (sender instanceof Player) {
+ if (Spawn.getInstance().getSpawn() != null) ((Player) sender)
+ .teleport(Spawn.getInstance().getSpawn());
+ else sender
+ .sendMessage("[AuthMe] Spawn fail , please try to define the spawn");
+ } else {
+ sender.sendMessage("[AuthMe] Please use that command in game");
+ }
+ } catch (NullPointerException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ }
+ return true;
} else if (args[0].equalsIgnoreCase("firstspawn")) {
- try {
- if (sender instanceof Player) {
- if (Spawn.getInstance().getFirstSpawn() != null)
- ((Player) sender).teleport(Spawn.getInstance().getFirstSpawn());
- else sender.sendMessage("[AuthMe] Spawn fail , please try to define the first spawn");
- } else {
- sender.sendMessage("[AuthMe] Please use that command in game");
- }
- } catch (NullPointerException ex) {
- ConsoleLogger.showError(ex.getMessage());
- }
- return true;
- } else if (args[0].equalsIgnoreCase("changepassword") || args[0].equalsIgnoreCase("cp")) {
+ try {
+ if (sender instanceof Player) {
+ if (Spawn.getInstance().getFirstSpawn() != null) ((Player) sender)
+ .teleport(Spawn.getInstance().getFirstSpawn());
+ else sender
+ .sendMessage("[AuthMe] Spawn fail , please try to define the first spawn");
+ } else {
+ sender.sendMessage("[AuthMe] Please use that command in game");
+ }
+ } catch (NullPointerException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ }
+ return true;
+ } else if (args[0].equalsIgnoreCase("changepassword")
+ || args[0].equalsIgnoreCase("cp")) {
if (args.length != 3) {
sender.sendMessage("Usage: /authme changepassword playername newpassword");
return true;
}
try {
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;
if (PlayerCache.getInstance().isAuthenticated(name)) {
auth = PlayerCache.getInstance().getAuth(name);
@@ -418,16 +465,16 @@ public class AdminCommand implements CommandExecutor {
auth = database.getAuth(name);
}
if (auth == null) {
- m._(sender, "unknown_user");
+ m._(sender, "unknown_user");
return true;
}
auth.setHash(hash);
if (PasswordSecurity.userSalt.containsKey(name)) {
- auth.setSalt(PasswordSecurity.userSalt.get(name));
+ auth.setSalt(PasswordSecurity.userSalt.get(name));
database.updateSalt(auth);
}
if (!database.updatePassword(auth)) {
- m._(sender, "error");
+ m._(sender, "error");
return true;
}
sender.sendMessage("pwd_changed");
@@ -437,51 +484,67 @@ public class AdminCommand implements CommandExecutor {
m._(sender, "error");
}
return true;
- } else if (args[0].equalsIgnoreCase("unregister") || args[0].equalsIgnoreCase("unreg") || args[0].equalsIgnoreCase("del") ) {
+ } else if (args[0].equalsIgnoreCase("unregister")
+ || args[0].equalsIgnoreCase("unreg")
+ || args[0].equalsIgnoreCase("del")) {
if (args.length != 2) {
sender.sendMessage("Usage: /authme unregister playername");
return true;
}
String name = args[1].toLowerCase();
if (!database.removeAuth(name)) {
- m._(sender, "error");
+ m._(sender, "error");
return true;
}
Player target = Bukkit.getPlayer(name);
PlayerCache.getInstance().removePlayer(name);
Utils.getInstance().setGroup(name, groupType.UNREGISTERED);
if (target != null) {
- if (target.isOnline()) {
- if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location spawn = plugin.getSpawnLocation(target);
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(target, target.getLocation(), spawn, false);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- target.teleport(tpEvent.getTo());
- }
+ if (target.isOnline()) {
+ if (Settings.isTeleportToSpawnEnabled
+ && !Settings.noTeleport) {
+ Location spawn = plugin.getSpawnLocation(target);
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(
+ target, target.getLocation(), spawn, false);
+ plugin.getServer().getPluginManager()
+ .callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ target.teleport(tpEvent.getTo());
+ }
}
LimboCache.getInstance().addLimboPlayer(target);
int delay = Settings.getRegistrationTimeout * 20;
int interval = Settings.getWarnMessageInterval;
BukkitScheduler sched = sender.getServer().getScheduler();
if (delay != 0) {
- int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
- LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
+ int id = sched.scheduleSyncDelayedTask(plugin,
+ new TimeoutTask(plugin, name), delay);
+ LimboCache.getInstance().getLimboPlayer(name)
+ .setTimeoutTaskId(id);
}
- LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("reg_msg"), interval)));
- if (Settings.applyBlindEffect)
- target.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
+ LimboCache
+ .getInstance()
+ .getLimboPlayer(name)
+ .setMessageTaskId(
+ sched.scheduleSyncDelayedTask(
+ plugin,
+ new MessageTask(plugin, name, m
+ ._("reg_msg"), interval)));
+ if (Settings.applyBlindEffect) target
+ .addPotionEffect(new PotionEffect(
+ PotionEffectType.BLINDNESS,
+ Settings.getRegistrationTimeout * 20, 2));
m._(target, "unregistered");
- } else {
- // Player isn't online, do nothing else
- }
+ } else {
+ // Player isn't online, do nothing else
+ }
} else {
- // Player does not exist, do nothing else
+ // Player does not exist, do nothing else
}
m._(sender, "unregistered");
ConsoleLogger.info(args[1] + " unregistered");
return true;
- } else if (args[0].equalsIgnoreCase("purgelastpos")){
+ } else if (args[0].equalsIgnoreCase("purgelastpos")) {
if (args.length != 2) {
sender.sendMessage("Usage: /authme purgelastpos playername");
return true;
@@ -490,8 +553,9 @@ public class AdminCommand implements CommandExecutor {
String name = args[1].toLowerCase();
PlayerAuth auth = database.getAuth(name);
if (auth == null) {
- sender.sendMessage("The player " + name + " is not registered ");
- return true;
+ sender.sendMessage("The player " + name
+ + " is not registered ");
+ return true;
}
auth.setQuitLocX(0);
auth.setQuitLocY(0);
@@ -500,44 +564,48 @@ public class AdminCommand implements CommandExecutor {
database.updateQuitLoc(auth);
sender.sendMessage(name + " 's last pos location is now reset");
} catch (Exception e) {
- ConsoleLogger.showError("An error occured while trying to reset location or player do not exist, please see below: ");
- ConsoleLogger.showError(e.getMessage());
- if (sender instanceof Player)
- sender.sendMessage("An error occured while trying to reset location or player do not exist, please see logs");
+ ConsoleLogger
+ .showError("An error occured while trying to reset location or player do not exist, please see below: ");
+ ConsoleLogger.showError(e.getMessage());
+ if (sender instanceof Player) sender
+ .sendMessage("An error occured while trying to reset location or player do not exist, please see logs");
}
return true;
} else if (args[0].equalsIgnoreCase("switchantibot")) {
- if (args.length != 2) {
- sender.sendMessage("Usage : /authme switchantibot on/off");
- return true;
- }
- if (args[1].equalsIgnoreCase("on")) {
- plugin.switchAntiBotMod(true);
- sender.sendMessage("[AuthMe] AntiBotMod enabled");
- return true;
- }
- if (args[1].equalsIgnoreCase("off")) {
- plugin.switchAntiBotMod(false);
- sender.sendMessage("[AuthMe] AntiBotMod disabled");
- return true;
- }
- sender.sendMessage("Usage : /authme switchantibot on/off");
- return true;
+ if (args.length != 2) {
+ sender.sendMessage("Usage : /authme switchantibot on/off");
+ return true;
+ }
+ if (args[1].equalsIgnoreCase("on")) {
+ plugin.switchAntiBotMod(true);
+ sender.sendMessage("[AuthMe] AntiBotMod enabled");
+ return true;
+ }
+ if (args[1].equalsIgnoreCase("off")) {
+ plugin.switchAntiBotMod(false);
+ sender.sendMessage("[AuthMe] AntiBotMod disabled");
+ return true;
+ }
+ sender.sendMessage("Usage : /authme switchantibot on/off");
+ return true;
} else if (args[0].equalsIgnoreCase("getip")) {
- if (args.length < 2) {
- sender.sendMessage("Usage : /authme getip onlinePlayerName");
- return true;
- }
- if (Bukkit.getPlayer(args[1]) != null) {
- Player player = Bukkit.getPlayer(args[1]);
- sender.sendMessage(player.getName() + " actual ip is : " + player.getAddress().getAddress().getHostAddress() + ":" + player.getAddress().getPort());
- sender.sendMessage(player.getName() + " real ip is : " + plugin.getIP(player));
- return true;
- } else {
- sender.sendMessage("This player is not actually online");
- sender.sendMessage("Usage : /authme getip onlinePlayerName");
- return true;
- }
+ if (args.length < 2) {
+ sender.sendMessage("Usage : /authme getip onlinePlayerName");
+ return true;
+ }
+ if (Bukkit.getPlayer(args[1]) != null) {
+ Player player = Bukkit.getPlayer(args[1]);
+ sender.sendMessage(player.getName() + " actual ip is : "
+ + player.getAddress().getAddress().getHostAddress()
+ + ":" + player.getAddress().getPort());
+ sender.sendMessage(player.getName() + " real ip is : "
+ + plugin.getIP(player));
+ return true;
+ } else {
+ sender.sendMessage("This player is not actually online");
+ sender.sendMessage("Usage : /authme getip onlinePlayerName");
+ return true;
+ }
} else if (args[0].equalsIgnoreCase("resetposition")) {
if (args.length < 2) {
sender.sendMessage("Usage : /authme resetPosition ");
@@ -553,7 +621,8 @@ public class AdminCommand implements CommandExecutor {
auth.setQuitLocZ(0D);
auth.setWorld("world");
database.updateQuitLoc(auth);
- sender.sendMessage("[AuthMe] Successfully reset position for " + auth.getNickname());
+ sender.sendMessage("[AuthMe] Successfully reset position for "
+ + auth.getNickname());
return true;
} else {
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
diff --git a/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java b/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java
index e3ae28c9..c8fc8dd3 100644
--- a/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java
@@ -11,20 +11,19 @@ import fr.xephi.authme.security.RandomString;
import fr.xephi.authme.settings.Messages;
import fr.xephi.authme.settings.Settings;
-
public class CaptchaCommand implements CommandExecutor {
- public AuthMe plugin;
+ public AuthMe plugin;
private Messages m = Messages.getInstance();
public static RandomString rdm = new RandomString(Settings.captchaLength);
public CaptchaCommand(AuthMe plugin) {
- this.plugin = plugin;
+ this.plugin = plugin;
}
- @Override
- public boolean onCommand(CommandSender sender, Command cmnd,
- String label, String[] args) {
+ @Override
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
return true;
@@ -34,37 +33,38 @@ public class CaptchaCommand implements CommandExecutor {
String name = player.getName().toLowerCase();
if (args.length == 0) {
- m._(player, "usage_captcha");
+ m._(player, "usage_captcha");
return true;
}
if (PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "logged_in");
+ m._(player, "logged_in");
return true;
}
if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
- m._(player, "no_perm");
+ m._(player, "no_perm");
return true;
}
if (!Settings.useCaptcha) {
- m._(player, "usage_log");
- return true;
+ m._(player, "usage_log");
+ return true;
}
- if(!plugin.cap.containsKey(name)) {
- m._(player, "usage_log");
- return true;
- }
+ if (!plugin.cap.containsKey(name)) {
+ m._(player, "usage_log");
+ return true;
+ }
- if(Settings.useCaptcha && !args[0].equals(plugin.cap.get(name))) {
- plugin.cap.remove(name);
- plugin.cap.put(name, rdm.nextString());
- for (String s : m._("wrong_captcha")) {
- player.sendMessage(s.replace("THE_CAPTCHA", plugin.cap.get(name)));
- }
- return true;
+ if (Settings.useCaptcha && !args[0].equals(plugin.cap.get(name))) {
+ plugin.cap.remove(name);
+ plugin.cap.put(name, rdm.nextString());
+ for (String s : m._("wrong_captcha")) {
+ player.sendMessage(s.replace("THE_CAPTCHA",
+ plugin.cap.get(name)));
+ }
+ return true;
}
try {
plugin.captcha.remove(name);
@@ -74,6 +74,6 @@ public class CaptchaCommand implements CommandExecutor {
m._(player, "valid_captcha");
m._(player, "login_msg");
return true;
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java
index 28dee6fc..1cc7175b 100644
--- a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java
@@ -18,7 +18,6 @@ import fr.xephi.authme.security.PasswordSecurity;
import fr.xephi.authme.settings.Messages;
import fr.xephi.authme.settings.Settings;
-
public class ChangePasswordCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
@@ -31,51 +30,56 @@ public class ChangePasswordCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
return true;
}
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
+ m._(sender, "no_perm");
return true;
}
Player player = (Player) sender;
String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "not_logged_in");
+ m._(player, "not_logged_in");
return true;
}
if (args.length != 2) {
- m._(player, "usage_changepassword");
+ m._(player, "usage_changepassword");
return true;
}
try {
- String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash, args[1], name);
+ String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash,
+ args[1], name);
- if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache.getInstance().getAuth(name).getHash(), player.getName())) {
+ if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache
+ .getInstance().getAuth(name).getHash(), player.getName())) {
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
auth.setHash(hashnew);
- if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null)
- auth.setSalt(PasswordSecurity.userSalt.get(name));
- else
- auth.setSalt("");
+ if (PasswordSecurity.userSalt.containsKey(name)
+ && PasswordSecurity.userSalt.get(name) != null) auth
+ .setSalt(PasswordSecurity.userSalt.get(name));
+ else auth.setSalt("");
if (!database.updatePassword(auth)) {
- m._(player, "error");
+ m._(player, "error");
return true;
}
database.updateSalt(auth);
PlayerCache.getInstance().updatePlayer(auth);
m._(player, "pwd_changed");
ConsoleLogger.info(player.getName() + " changed his password");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " change his password!"));
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification(
+ "[AuthMe] " + player.getName()
+ + " change his password!"));
}
} else {
- m._(player, "wrong_pwd");
+ m._(player, "wrong_pwd");
}
} catch (NoSuchAlgorithmException ex) {
ConsoleLogger.showError(ex.getMessage());
diff --git a/src/main/java/fr/xephi/authme/commands/ConverterCommand.java b/src/main/java/fr/xephi/authme/commands/ConverterCommand.java
index 26b5f26c..bdd93d86 100644
--- a/src/main/java/fr/xephi/authme/commands/ConverterCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/ConverterCommand.java
@@ -18,7 +18,6 @@ import fr.xephi.authme.converter.xAuthConverter;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.settings.Messages;
-
public class ConverterCommand implements CommandExecutor {
private AuthMe plugin;
@@ -26,12 +25,13 @@ public class ConverterCommand implements CommandExecutor {
private DataSource database;
public ConverterCommand(AuthMe plugin, DataSource database) {
- this.plugin = plugin;
- this.database = database;
+ this.plugin = plugin;
+ this.database = database;
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, final String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ final String[] args) {
if (!(sender instanceof Player)) {
return true;
}
@@ -45,7 +45,7 @@ public class ConverterCommand implements CommandExecutor {
sender.sendMessage("Usage : /converter flattosql | flattosqlite | xauth | crazylogin | rakamak | royalauth | vauth");
return true;
}
-
+
ConvertType type = ConvertType.valueOf(args[0]);
if (type == null) {
m._(sender, "error");
@@ -53,7 +53,7 @@ public class ConverterCommand implements CommandExecutor {
}
Converter converter = null;
switch (type) {
- case ftsql:
+ case ftsql:
converter = new FlatToSql();
break;
case ftsqlite:
@@ -74,7 +74,8 @@ public class ConverterCommand implements CommandExecutor {
case vauth:
converter = new vAuthConverter(plugin, database, sender);
break;
- default: break;
+ default:
+ break;
}
if (converter == null) {
m._(sender, "error");
@@ -84,27 +85,23 @@ public class ConverterCommand implements CommandExecutor {
sender.sendMessage("[AuthMe] Successfully converted from " + args[0]);
return true;
}
-
+
public enum ConvertType {
- ftsql("flattosql"),
- ftsqlite("flattosqlite"),
- xauth("xauth"),
- crazylogin("crazylogin"),
- rakamak("rakamak"),
- royalauth("royalauth"),
- vauth("vauth");
-
+ ftsql("flattosql"), ftsqlite("flattosqlite"), xauth("xauth"), crazylogin(
+ "crazylogin"), rakamak("rakamak"), royalauth("royalauth"), vauth(
+ "vauth");
+
String name;
-
+
ConvertType(String name) {
this.name = name;
}
-
+
String getName() {
return this.name;
}
-
+
ConvertType fromName(String name) {
return ConvertType.valueOf(name);
}
diff --git a/src/main/java/fr/xephi/authme/commands/EmailCommand.java b/src/main/java/fr/xephi/authme/commands/EmailCommand.java
index cd2e9a81..998952af 100644
--- a/src/main/java/fr/xephi/authme/commands/EmailCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/EmailCommand.java
@@ -24,8 +24,8 @@ import fr.xephi.authme.settings.Settings;
*/
public class EmailCommand implements CommandExecutor {
- public AuthMe plugin;
- private DataSource data;
+ public AuthMe plugin;
+ private DataSource data;
private Messages m = Messages.getInstance();
public EmailCommand(AuthMe plugin, DataSource data) {
@@ -34,44 +34,49 @@ public class EmailCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
return true;
- }
-
- if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
- return true;
}
- Player player = (Player) sender;
- String name = player.getName().toLowerCase();
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
+ m._(sender, "no_perm");
+ return true;
+ }
- if (args.length == 0) {
- m._(player, "usage_email_add");
- m._(player, "usage_email_change");
- m._(player, "usage_email_recovery");
- return true;
- }
+ Player player = (Player) sender;
+ String name = player.getName().toLowerCase();
- if(args[0].equalsIgnoreCase("add")) {
- if (args.length != 3) {
- m._(player, "usage_email_add");
- return true;
- }
- if(Settings.getmaxRegPerEmail > 0) {
- if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) {
- m._(player, "max_reg");
- return true;
- }
- }
- if(args[1].equals(args[2]) && PlayerCache.getInstance().isAuthenticated(name)) {
- PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
- if (auth.getEmail() == null || (!auth.getEmail().equals("your@email.com") && !auth.getEmail().isEmpty())) {
- m._(player, "usage_email_change");
- return true;
+ if (args.length == 0) {
+ m._(player, "usage_email_add");
+ m._(player, "usage_email_change");
+ m._(player, "usage_email_recovery");
+ return true;
+ }
+
+ if (args[0].equalsIgnoreCase("add")) {
+ if (args.length != 3) {
+ m._(player, "usage_email_add");
+ return true;
+ }
+ if (Settings.getmaxRegPerEmail > 0) {
+ if (!plugin.authmePermissible(sender, "authme.allow2accounts")
+ && data.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) {
+ m._(player, "max_reg");
+ return true;
}
- if(!Settings.isEmailCorrect(args[1])) {
+ }
+ if (args[1].equals(args[2])
+ && PlayerCache.getInstance().isAuthenticated(name)) {
+ PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
+ if (auth.getEmail() == null
+ || (!auth.getEmail().equals("your@email.com") && !auth
+ .getEmail().isEmpty())) {
+ m._(player, "usage_email_change");
+ return true;
+ }
+ if (!Settings.isEmailCorrect(args[1])) {
m._(player, "email_invalid");
return true;
}
@@ -83,37 +88,40 @@ public class EmailCommand implements CommandExecutor {
PlayerCache.getInstance().updatePlayer(auth);
m._(player, "email_added");
player.sendMessage(auth.getEmail());
- } else if (PlayerCache.getInstance().isAuthenticated(name)){
+ } else if (PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "email_confirm");
} else {
- if (!data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- m._(player, "reg_email_msg");
- }
+ if (!data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ m._(player, "reg_email_msg");
+ }
}
- } else if(args[0].equalsIgnoreCase("change")) {
+ } else if (args[0].equalsIgnoreCase("change")) {
if (args.length != 3) {
m._(player, "usage_email_change");
return true;
+ }
+ if (Settings.getmaxRegPerEmail > 0) {
+ if (!plugin.authmePermissible(sender, "authme.allow2accounts")
+ && data.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) {
+ m._(player, "max_reg");
+ return true;
}
- if(Settings.getmaxRegPerEmail > 0) {
- if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) {
- m._(player, "max_reg");
- return true;
- }
- }
- if(PlayerCache.getInstance().isAuthenticated(name)) {
+ }
+ if (PlayerCache.getInstance().isAuthenticated(name)) {
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
- if (auth.getEmail() == null || auth.getEmail().equals("your@email.com") || auth.getEmail().isEmpty()) {
- m._(player, "usage_email_add");
- return true;
+ if (auth.getEmail() == null
+ || auth.getEmail().equals("your@email.com")
+ || auth.getEmail().isEmpty()) {
+ m._(player, "usage_email_add");
+ return true;
}
- if (!args[1].equals(auth.getEmail())) {
- m._(player, "old_email_invalid");
- return true;
+ if (!args[1].equals(auth.getEmail())) {
+ m._(player, "old_email_invalid");
+ return true;
}
- if(!Settings.isEmailCorrect(args[2])) {
+ if (!Settings.isEmailCorrect(args[2])) {
m._(player, "new_email_invalid");
return true;
}
@@ -125,78 +133,85 @@ public class EmailCommand implements CommandExecutor {
PlayerCache.getInstance().updatePlayer(auth);
m._(player, "email_changed");
player.sendMessage(m._("email_defined") + auth.getEmail());
- } else if (PlayerCache.getInstance().isAuthenticated(name)){
+ } else if (PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "email_confirm");
} else {
- if (!data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- m._(player, "reg_email_msg");
- }
+ if (!data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ m._(player, "reg_email_msg");
+ }
}
}
- if(args[0].equalsIgnoreCase("recovery")) {
- if (args.length != 2) {
- m._(player, "usage_email_recovery");
- return true;
- }
- if (plugin.mail == null) {
- m._(player, "error");
- return true;
- }
- if (data.isAuthAvailable(name)) {
- if (PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "logged_in");
- return true;
- }
- try {
- RandomString rand = new RandomString(Settings.getRecoveryPassLength);
- String thePass = rand.nextString();
- String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash, thePass, name);
- PlayerAuth auth = null;
- if (PlayerCache.getInstance().isAuthenticated(name)) {
- auth = PlayerCache.getInstance().getAuth(name);
- } else if (data.isAuthAvailable(name)) {
- auth = data.getAuth(name);
- } else {
- m._(player, "unknown_user");
- return true;
- }
- if (Settings.getmailAccount.equals("") || Settings.getmailAccount.isEmpty()) {
- m._(player, "error");
- return true;
- }
-
- if (!args[1].equalsIgnoreCase(auth.getEmail()) || args[1].equalsIgnoreCase("your@email.com") || auth.getEmail().equalsIgnoreCase("your@email.com")) {
- m._(player, "email_invalid");
- return true;
- }
- final String finalhashnew = hashnew;
- final PlayerAuth finalauth = auth;
- if (data instanceof Thread) {
- finalauth.setHash(hashnew);
- data.updatePassword(auth);
- } else {
- Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
- @Override
- public void run() {
- finalauth.setHash(finalhashnew);
- data.updatePassword(finalauth);
- }
- });
- }
- plugin.mail.main(auth, thePass);
- m._(player, "email_send");
- } catch (NoSuchAlgorithmException ex) {
- ConsoleLogger.showError(ex.getMessage());
- m._(sender, "error");
- } catch (NoClassDefFoundError ncdfe) {
- ConsoleLogger.showError(ncdfe.getMessage());
- m._(sender, "error");
- }
- } else {
- m._(player, "reg_email_msg");
- }
+ if (args[0].equalsIgnoreCase("recovery")) {
+ if (args.length != 2) {
+ m._(player, "usage_email_recovery");
+ return true;
+ }
+ if (plugin.mail == null) {
+ m._(player, "error");
+ return true;
+ }
+ if (data.isAuthAvailable(name)) {
+ if (PlayerCache.getInstance().isAuthenticated(name)) {
+ m._(player, "logged_in");
+ return true;
+ }
+ try {
+ RandomString rand = new RandomString(
+ Settings.getRecoveryPassLength);
+ String thePass = rand.nextString();
+ String hashnew = PasswordSecurity.getHash(
+ Settings.getPasswordHash, thePass, name);
+ PlayerAuth auth = null;
+ if (PlayerCache.getInstance().isAuthenticated(name)) {
+ auth = PlayerCache.getInstance().getAuth(name);
+ } else if (data.isAuthAvailable(name)) {
+ auth = data.getAuth(name);
+ } else {
+ m._(player, "unknown_user");
+ return true;
+ }
+ if (Settings.getmailAccount.equals("")
+ || Settings.getmailAccount.isEmpty()) {
+ m._(player, "error");
+ return true;
+ }
+
+ if (!args[1].equalsIgnoreCase(auth.getEmail())
+ || args[1].equalsIgnoreCase("your@email.com")
+ || auth.getEmail().equalsIgnoreCase(
+ "your@email.com")) {
+ m._(player, "email_invalid");
+ return true;
+ }
+ final String finalhashnew = hashnew;
+ final PlayerAuth finalauth = auth;
+ if (data instanceof Thread) {
+ finalauth.setHash(hashnew);
+ data.updatePassword(auth);
+ } else {
+ Bukkit.getScheduler().runTaskAsynchronously(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ finalauth.setHash(finalhashnew);
+ data.updatePassword(finalauth);
+ }
+ });
+ }
+ plugin.mail.main(auth, thePass);
+ m._(player, "email_send");
+ } catch (NoSuchAlgorithmException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ m._(sender, "error");
+ } catch (NoClassDefFoundError ncdfe) {
+ ConsoleLogger.showError(ncdfe.getMessage());
+ m._(sender, "error");
+ }
+ } else {
+ m._(player, "reg_email_msg");
+ }
}
return true;
}
diff --git a/src/main/java/fr/xephi/authme/commands/LoginCommand.java b/src/main/java/fr/xephi/authme/commands/LoginCommand.java
index fdfa5f86..1563ebf0 100644
--- a/src/main/java/fr/xephi/authme/commands/LoginCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/LoginCommand.java
@@ -8,18 +8,18 @@ import org.bukkit.entity.Player;
import fr.xephi.authme.AuthMe;
import fr.xephi.authme.settings.Messages;
-
public class LoginCommand implements CommandExecutor {
private AuthMe plugin;
private Messages m = Messages.getInstance();
public LoginCommand(AuthMe plugin) {
- this.plugin = plugin;
+ this.plugin = plugin;
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, final String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ final String[] args) {
if (!(sender instanceof Player)) {
return true;
}
@@ -27,15 +27,15 @@ public class LoginCommand implements CommandExecutor {
final Player player = (Player) sender;
if (args.length == 0) {
- m._(player, "usage_log");
+ m._(player, "usage_log");
return true;
}
if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
- m._(player, "no_perm");
+ m._(player, "no_perm");
return true;
}
- plugin.management.performLogin(player, args[0], false);
+ plugin.management.performLogin(player, args[0], false);
return true;
}
}
diff --git a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java
index 98c56abd..b0435701 100644
--- a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java
@@ -27,7 +27,6 @@ import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.task.MessageTask;
import fr.xephi.authme.task.TimeoutTask;
-
public class LogoutCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
@@ -42,13 +41,14 @@ public class LogoutCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
return true;
}
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
+ m._(sender, "no_perm");
return true;
}
@@ -56,7 +56,7 @@ public class LogoutCommand implements CommandExecutor {
String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "not_logged_in");
+ m._(player, "not_logged_in");
return true;
}
@@ -72,46 +72,55 @@ public class LogoutCommand implements CommandExecutor {
database.setUnlogged(name);
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location spawnLoc = plugin.getSpawnLocation(player);
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, spawnLoc);
+ Location spawnLoc = plugin.getSpawnLocation(player);
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player,
+ spawnLoc);
plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (tpEvent.getTo() != null)
- player.teleport(tpEvent.getTo());
+ if (!tpEvent.isCancelled()) {
+ if (tpEvent.getTo() != null) player.teleport(tpEvent.getTo());
}
}
- if (LimboCache.getInstance().hasLimboPlayer(name))
- LimboCache.getInstance().deleteLimboPlayer(name);
+ if (LimboCache.getInstance().hasLimboPlayer(name)) LimboCache
+ .getInstance().deleteLimboPlayer(name);
LimboCache.getInstance().addLimboPlayer(player);
utils.setGroup(player, groupType.NOTLOGGEDIN);
- if(Settings.protectInventoryBeforeLogInEnabled) {
- player.getInventory().clear();
- // create cache file for handling lost of inventories on unlogged in status
- DataFileCache playerData = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(),LimboCache.getInstance().getLimboPlayer(name).getArmour());
- playerBackup.createCache(name, playerData, LimboCache.getInstance().getLimboPlayer(name).getGroup(),LimboCache.getInstance().getLimboPlayer(name).getOperator(),LimboCache.getInstance().getLimboPlayer(name).isFlying());
+ if (Settings.protectInventoryBeforeLogInEnabled) {
+ player.getInventory().clear();
+ // create cache file for handling lost of inventories on unlogged in
+ // status
+ DataFileCache playerData = new DataFileCache(LimboCache
+ .getInstance().getLimboPlayer(name).getInventory(),
+ LimboCache.getInstance().getLimboPlayer(name).getArmour());
+ playerBackup.createCache(name, playerData, LimboCache.getInstance()
+ .getLimboPlayer(name).getGroup(), LimboCache.getInstance()
+ .getLimboPlayer(name).getOperator(), LimboCache
+ .getInstance().getLimboPlayer(name).isFlying());
}
int delay = Settings.getRegistrationTimeout * 20;
int interval = Settings.getWarnMessageInterval;
BukkitScheduler sched = sender.getServer().getScheduler();
if (delay != 0) {
- int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
+ int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(
+ plugin, name), delay);
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
}
- int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
+ int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(
+ plugin, name, m._("login_msg"), interval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
try {
- if (player.isInsideVehicle())
- player.getVehicle().eject();
+ if (player.isInsideVehicle()) player.getVehicle().eject();
} catch (NullPointerException npe) {
}
- if (Settings.applyBlindEffect)
- player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
+ if (Settings.applyBlindEffect) player.addPotionEffect(new PotionEffect(
+ PotionEffectType.BLINDNESS,
+ Settings.getRegistrationTimeout * 20, 2));
m._(player, "logout");
ConsoleLogger.info(player.getDisplayName() + " logged out");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!"));
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification("[AuthMe] "
+ + player.getName() + " logged out!"));
}
return true;
}
diff --git a/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java b/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java
index a434ca1a..2b634dbd 100644
--- a/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java
@@ -10,7 +10,6 @@ import fr.xephi.authme.Utils;
import fr.xephi.authme.cache.auth.PlayerCache;
import fr.xephi.authme.settings.Messages;
-
/**
*
* @author stefano
@@ -18,34 +17,37 @@ import fr.xephi.authme.settings.Messages;
public class PasspartuCommand implements CommandExecutor {
private Utils utils = Utils.getInstance();
public AuthMe plugin;
- private Messages m = Messages.getInstance();
+ private Messages m = Messages.getInstance();
public PasspartuCommand(AuthMe plugin) {
this.plugin = plugin;
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
+ m._(sender, "no_perm");
return true;
}
- if (PlayerCache.getInstance().isAuthenticated(sender.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ sender.getName().toLowerCase())) {
return true;
}
- if ((sender instanceof Player) && args.length == 1) {
- if(utils.readToken(args[0])) {
- //bypass login!
- plugin.management.performLogin((Player) sender, "dontneed", true);
- return true;
- }
- sender.sendMessage("Time is expired or Token is Wrong!");
- return true;
- }
- sender.sendMessage("usage: /passpartu token");
- return true;
+ if ((sender instanceof Player) && args.length == 1) {
+ if (utils.readToken(args[0])) {
+ // bypass login!
+ plugin.management.performLogin((Player) sender, "dontneed",
+ true);
+ return true;
+ }
+ sender.sendMessage("Time is expired or Token is Wrong!");
+ return true;
+ }
+ sender.sendMessage("usage: /passpartu token");
+ return true;
}
}
diff --git a/src/main/java/fr/xephi/authme/commands/RegisterCommand.java b/src/main/java/fr/xephi/authme/commands/RegisterCommand.java
index 033abb90..0c4e8480 100644
--- a/src/main/java/fr/xephi/authme/commands/RegisterCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/RegisterCommand.java
@@ -11,61 +11,62 @@ import fr.xephi.authme.security.RandomString;
import fr.xephi.authme.settings.Messages;
import fr.xephi.authme.settings.Settings;
-
public class RegisterCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
- public PlayerAuth auth;
- public AuthMe plugin;
+ public PlayerAuth auth;
+ public AuthMe plugin;
public RegisterCommand(AuthMe plugin) {
this.plugin = plugin;
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
- sender.sendMessage("Player Only! Use 'authme register ' instead");
- return true;
+ sender.sendMessage("Player Only! Use 'authme register ' instead");
+ return true;
}
if (args.length == 0) {
m._(sender, "usage_reg");
}
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
+ m._(sender, "no_perm");
return true;
}
final Player player = (Player) sender;
- if(Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) {
- if(Settings.doubleEmailCheck) {
- if(args.length < 2) {
+ if (Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) {
+ if (Settings.doubleEmailCheck) {
+ if (args.length < 2) {
m._(player, "usage_reg");
return true;
- }
- if(!args[0].equals(args[1])) {
+ }
+ if (!args[0].equals(args[1])) {
m._(player, "usage_reg");
return true;
- }
- }
+ }
+ }
final String email = args[0];
- if(!Settings.isEmailCorrect(email)) {
+ if (!Settings.isEmailCorrect(email)) {
m._(player, "email_invalid");
return true;
- }
- RandomString rand = new RandomString(Settings.getRecoveryPassLength);
- final String thePass = rand.nextString();
+ }
+ RandomString rand = new RandomString(Settings.getRecoveryPassLength);
+ final String thePass = rand.nextString();
plugin.management.performRegister(player, thePass, email);
return true;
}
- if (args.length == 0 || (Settings.getEnablePasswordVerifier && args.length < 2)) {
+ if (args.length == 0
+ || (Settings.getEnablePasswordVerifier && args.length < 2)) {
m._(player, "usage_reg");
return true;
}
- if (args.length > 1 && Settings.getEnablePasswordVerifier)
- if(!args[0].equals(args[1])) {
- m._(player, "password_error");
- return true;
- }
+ if (args.length > 1 && Settings.getEnablePasswordVerifier) if (!args[0]
+ .equals(args[1])) {
+ m._(player, "password_error");
+ return true;
+ }
plugin.management.performRegister(player, args[0], "");
return true;
}
diff --git a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java
index fea1a6fb..a2d561f2 100644
--- a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java
+++ b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java
@@ -29,7 +29,6 @@ import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.task.MessageTask;
import fr.xephi.authme.task.TimeoutTask;
-
public class UnregisterCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
@@ -43,13 +42,14 @@ public class UnregisterCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label,
+ String[] args) {
if (!(sender instanceof Player)) {
return true;
}
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
- m._(sender, "no_perm");
+ m._(sender, "no_perm");
return true;
}
@@ -57,80 +57,109 @@ public class UnregisterCommand implements CommandExecutor {
String name = player.getName().toLowerCase();
if (!PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "not_logged_in");
+ m._(player, "not_logged_in");
return true;
}
if (args.length != 1) {
- m._(player, "usage_unreg");
+ m._(player, "usage_unreg");
return true;
}
try {
- if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache.getInstance().getAuth(name).getHash(), player.getName())) {
+ if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache
+ .getInstance().getAuth(name).getHash(), player.getName())) {
if (!database.removeAuth(name)) {
player.sendMessage("error");
return true;
}
- if(Settings.isForcedRegistrationEnabled) {
- if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location spawn = plugin.getSpawnLocation(player);
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawn, false);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- player.teleport(tpEvent.getTo());
+ if (Settings.isForcedRegistrationEnabled) {
+ if (Settings.isTeleportToSpawnEnabled
+ && !Settings.noTeleport) {
+ Location spawn = plugin.getSpawnLocation(player);
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(
+ player, player.getLocation(), spawn, false);
+ plugin.getServer().getPluginManager()
+ .callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ player.teleport(tpEvent.getTo());
}
}
- player.getInventory().setContents(new ItemStack[36]);
- player.getInventory().setArmorContents(new ItemStack[4]);
- player.saveData();
- PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
- if (!Settings.getRegisteredGroup.isEmpty())
- Utils.getInstance().setGroup(player, groupType.UNREGISTERED);
+ player.getInventory().setContents(new ItemStack[36]);
+ player.getInventory().setArmorContents(new ItemStack[4]);
+ player.saveData();
+ PlayerCache.getInstance().removePlayer(
+ player.getName().toLowerCase());
+ if (!Settings.getRegisteredGroup.isEmpty()) Utils
+ .getInstance().setGroup(player,
+ groupType.UNREGISTERED);
LimboCache.getInstance().addLimboPlayer(player);
int delay = Settings.getRegistrationTimeout * 20;
int interval = Settings.getWarnMessageInterval;
BukkitScheduler sched = sender.getServer().getScheduler();
if (delay != 0) {
- int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
- LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
+ int id = sched.scheduleSyncDelayedTask(plugin,
+ new TimeoutTask(plugin, name), delay);
+ LimboCache.getInstance().getLimboPlayer(name)
+ .setTimeoutTaskId(id);
}
- LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("reg_msg"), interval)));
+ LimboCache
+ .getInstance()
+ .getLimboPlayer(name)
+ .setMessageTaskId(
+ sched.scheduleSyncDelayedTask(
+ plugin,
+ new MessageTask(plugin, name, m
+ ._("reg_msg"), interval)));
m._(player, "unregistered");
- ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " unregistered himself!"));
+ ConsoleLogger.info(player.getDisplayName()
+ + " unregistered himself");
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification(
+ "[AuthMe] " + player.getName()
+ + " unregistered himself!"));
}
return true;
}
- if(!Settings.unRegisteredGroup.isEmpty()){
- Utils.getInstance().setGroup(player, Utils.groupType.UNREGISTERED);
- }
- PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
- // check if Player cache File Exist and delete it, preventing duplication of items
- if(playerCache.doesCacheExist(name)) {
- playerCache.removeCache(name);
- }
- if (Settings.applyBlindEffect)
- player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
- m._(player, "unregistered");
- ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " unregistered himself!"));
- }
- if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location spawn = plugin.getSpawnLocation(player);
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawn, false);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
+ if (!Settings.unRegisteredGroup.isEmpty()) {
+ Utils.getInstance().setGroup(player,
+ Utils.groupType.UNREGISTERED);
+ }
+ PlayerCache.getInstance().removePlayer(
+ player.getName().toLowerCase());
+ // check if Player cache File Exist and delete it, preventing
+ // duplication of items
+ if (playerCache.doesCacheExist(name)) {
+ playerCache.removeCache(name);
+ }
+ if (Settings.applyBlindEffect) player
+ .addPotionEffect(new PotionEffect(
+ PotionEffectType.BLINDNESS,
+ Settings.getRegistrationTimeout * 20, 2));
+ m._(player, "unregistered");
+ ConsoleLogger.info(player.getDisplayName()
+ + " unregistered himself");
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification(
+ "[AuthMe] " + player.getName()
+ + " unregistered himself!"));
+ }
+ if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
+ Location spawn = plugin.getSpawnLocation(player);
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player,
+ player.getLocation(), spawn, false);
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld()
+ .getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld()
+ .getChunkAt(tpEvent.getTo()).load();
+ }
+ player.teleport(tpEvent.getTo());
+ }
+ }
return true;
} else {
- m._(player, "wrong_pwd");
+ m._(player, "wrong_pwd");
}
} catch (NoSuchAlgorithmException ex) {
ConsoleLogger.showError(ex.getMessage());
diff --git a/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java b/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java
index 04b505f7..2d0ebd37 100644
--- a/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java
+++ b/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java
@@ -14,65 +14,69 @@ import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.settings.Settings;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class CrazyLoginConverter implements Converter {
- public AuthMe instance;
- public DataSource database;
- public CommandSender sender;
+ public AuthMe instance;
+ public DataSource database;
+ public CommandSender sender;
- public CrazyLoginConverter (AuthMe instance, DataSource database, CommandSender sender) {
- this.instance = instance;
- this.database = database;
- this.sender = sender;
- }
+ public CrazyLoginConverter(AuthMe instance, DataSource database,
+ CommandSender sender) {
+ this.instance = instance;
+ this.database = database;
+ this.sender = sender;
+ }
- public CrazyLoginConverter getInstance() {
- return this;
- }
+ public CrazyLoginConverter getInstance() {
+ return this;
+ }
- private static String fileName;
- private static File source;
+ private static String fileName;
+ private static File source;
- @Override
- public void run() {
- fileName = Settings.crazyloginFileName;
+ @Override
+ public void run() {
+ fileName = Settings.crazyloginFileName;
try {
- source = new File(AuthMe.getInstance().getDataFolder() + File.separator + fileName);
+ source = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + fileName);
if (!source.exists()) {
- sender.sendMessage("Error while trying to import datas, please put " + fileName + " in AuthMe folder!");
+ sender.sendMessage("Error while trying to import datas, please put "
+ + fileName + " in AuthMe folder!");
return;
}
source.createNewFile();
- BufferedReader users = null;
- String line;
+ BufferedReader users = null;
+ String line;
users = new BufferedReader(new FileReader(source));
while ((line = users.readLine()) != null) {
- if (line.contains("|")) {
- String[] args = line.split("\\|");
- if (args.length < 2)
- continue;
- if (args[0].equalsIgnoreCase("name"))
- continue;
+ if (line.contains("|")) {
+ String[] args = line.split("\\|");
+ if (args.length < 2) continue;
+ if (args[0].equalsIgnoreCase("name")) continue;
String player = args[0].toLowerCase();
String psw = args[1];
try {
if (player != null && psw != null) {
- PlayerAuth auth = new PlayerAuth(player, psw, "127.0.0.1", System.currentTimeMillis());
+ PlayerAuth auth = new PlayerAuth(player, psw,
+ "127.0.0.1", System.currentTimeMillis());
database.saveAuth(auth);
}
- } catch (Exception e) {}
- }
+ } catch (Exception e) {
+ }
+ }
}
users.close();
- ConsoleLogger.info("CrazyLogin database has been imported correctly");
+ ConsoleLogger
+ .info("CrazyLogin database has been imported correctly");
} catch (FileNotFoundException ex) {
ConsoleLogger.showError(ex.getMessage());
} catch (IOException ex) {
ConsoleLogger.showError(ex.getMessage());
}
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/FlatToSql.java b/src/main/java/fr/xephi/authme/converter/FlatToSql.java
index 13aa8e3a..6dc78b43 100644
--- a/src/main/java/fr/xephi/authme/converter/FlatToSql.java
+++ b/src/main/java/fr/xephi/authme/converter/FlatToSql.java
@@ -12,11 +12,10 @@ import fr.xephi.authme.AuthMe;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.settings.Settings;
-
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class FlatToSql implements Converter {
private static String tableName;
@@ -31,73 +30,103 @@ public class FlatToSql implements Converter {
private static String columnEmail;
private static String columnLogged;
private static String columnID;
- private static File source;
- private static File output;
+ private static File source;
+ private static File output;
- public FlatToSql() {
- tableName = Settings.getMySQLTablename;
- columnName = Settings.getMySQLColumnName;
- columnPassword = Settings.getMySQLColumnPassword;
- columnIp = Settings.getMySQLColumnIp;
- columnLastLogin = Settings.getMySQLColumnLastLogin;
- lastlocX = Settings.getMySQLlastlocX;
- lastlocY = Settings.getMySQLlastlocY;
- lastlocZ = Settings.getMySQLlastlocZ;
- lastlocWorld = Settings.getMySQLlastlocWorld;
- columnEmail = Settings.getMySQLColumnEmail;
- columnLogged = Settings.getMySQLColumnLogged;
- columnID = Settings.getMySQLColumnId;
- }
+ public FlatToSql() {
+ tableName = Settings.getMySQLTablename;
+ columnName = Settings.getMySQLColumnName;
+ columnPassword = Settings.getMySQLColumnPassword;
+ columnIp = Settings.getMySQLColumnIp;
+ columnLastLogin = Settings.getMySQLColumnLastLogin;
+ lastlocX = Settings.getMySQLlastlocX;
+ lastlocY = Settings.getMySQLlastlocY;
+ lastlocZ = Settings.getMySQLlastlocZ;
+ lastlocWorld = Settings.getMySQLlastlocWorld;
+ columnEmail = Settings.getMySQLColumnEmail;
+ columnLogged = Settings.getMySQLColumnLogged;
+ columnID = Settings.getMySQLColumnId;
+ }
- @Override
- public void run() {
+ @Override
+ public void run() {
try {
- source = new File(AuthMe.getInstance().getDataFolder() + File.separator + "auths.db");
+ source = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + "auths.db");
source.createNewFile();
- output = new File(AuthMe.getInstance().getDataFolder() + File.separator + "authme.sql");
- BufferedReader br = null;
- BufferedWriter sql = null;
+ output = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + "authme.sql");
+ BufferedReader br = null;
+ BufferedWriter sql = null;
br = new BufferedReader(new FileReader(source));
sql = new BufferedWriter(new FileWriter(output));
String createDB = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
- + columnID + " INTEGER AUTO_INCREMENT,"
- + columnName + " VARCHAR(255) NOT NULL UNIQUE,"
- + columnPassword + " VARCHAR(255) NOT NULL,"
- + columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
- + columnLastLogin + " BIGINT NOT NULL DEFAULT '" + System.currentTimeMillis() + "',"
- + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
- + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
- + columnLogged + " SMALLINT NOT NULL DEFAULT '0',"
- + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));";
+ + columnID + " INTEGER AUTO_INCREMENT," + columnName
+ + " VARCHAR(255) NOT NULL UNIQUE," + columnPassword
+ + " VARCHAR(255) NOT NULL," + columnIp
+ + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
+ + columnLastLogin + " BIGINT NOT NULL DEFAULT '"
+ + System.currentTimeMillis() + "'," + lastlocX
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocY
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocZ
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocWorld
+ + " VARCHAR(255) DEFAULT 'world'," + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com'," + columnLogged
+ + " SMALLINT NOT NULL DEFAULT '0',"
+ + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID
+ + "));";
sql.write(createDB);
String line;
String newline;
while ((line = br.readLine()) != null) {
- sql.newLine();
+ sql.newLine();
String[] args = line.split(":");
- if (args.length == 4)
- newline = "INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + lastlocX + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld + "," + columnEmail + "," + columnLogged + ") VALUES ('" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", 0.0, 0.0, 0.0, 'world', 'your@email.com', 0);";
- else if (args.length == 7)
- newline = "INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + lastlocX + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld + "," + columnEmail + "," + columnLogged + ") VALUES ('" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", 'world', 'your@email.com', 0);";
- else if (args.length == 8)
- newline = "INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + lastlocX + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld + "," + columnEmail + "," + columnLogged + ") VALUES ('" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", '" + args[7] + "', 'your@email.com', 0);";
- else if (args.length == 9)
- newline = "INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + lastlocX + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld + "," + columnEmail + "," + columnLogged + ") VALUES ('" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", '" + args[7] + "', '" + args[8] + "', 0);";
- else
- newline = "";
- if (newline != "")
- sql.write(newline);
+ if (args.length == 4) newline = "INSERT INTO " + tableName
+ + "(" + columnName + "," + columnPassword + ","
+ + columnIp + "," + columnLastLogin + "," + lastlocX
+ + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld
+ + "," + columnEmail + "," + columnLogged
+ + ") VALUES ('" + args[0] + "', '" + args[1] + "', '"
+ + args[2] + "', " + args[3]
+ + ", 0.0, 0.0, 0.0, 'world', 'your@email.com', 0);";
+ else if (args.length == 7) newline = "INSERT INTO " + tableName
+ + "(" + columnName + "," + columnPassword + ","
+ + columnIp + "," + columnLastLogin + "," + lastlocX
+ + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld
+ + "," + columnEmail + "," + columnLogged
+ + ") VALUES ('" + args[0] + "', '" + args[1] + "', '"
+ + args[2] + "', " + args[3] + ", " + args[4] + ", "
+ + args[5] + ", " + args[6]
+ + ", 'world', 'your@email.com', 0);";
+ else if (args.length == 8) newline = "INSERT INTO " + tableName
+ + "(" + columnName + "," + columnPassword + ","
+ + columnIp + "," + columnLastLogin + "," + lastlocX
+ + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld
+ + "," + columnEmail + "," + columnLogged
+ + ") VALUES ('" + args[0] + "', '" + args[1] + "', '"
+ + args[2] + "', " + args[3] + ", " + args[4] + ", "
+ + args[5] + ", " + args[6] + ", '" + args[7]
+ + "', 'your@email.com', 0);";
+ else if (args.length == 9) newline = "INSERT INTO " + tableName
+ + "(" + columnName + "," + columnPassword + ","
+ + columnIp + "," + columnLastLogin + "," + lastlocX
+ + "," + lastlocY + "," + lastlocZ + "," + lastlocWorld
+ + "," + columnEmail + "," + columnLogged
+ + ") VALUES ('" + args[0] + "', '" + args[1] + "', '"
+ + args[2] + "', " + args[3] + ", " + args[4] + ", "
+ + args[5] + ", " + args[6] + ", '" + args[7] + "', '"
+ + args[8] + "', 0);";
+ else newline = "";
+ if (newline != "") sql.write(newline);
}
sql.close();
br.close();
- ConsoleLogger.info("The FlatFile has been converted to authme.sql file");
+ ConsoleLogger
+ .info("The FlatFile has been converted to authme.sql file");
} catch (FileNotFoundException ex) {
ConsoleLogger.showError(ex.getMessage());
} catch (IOException ex) {
ConsoleLogger.showError(ex.getMessage());
}
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/FlatToSqlite.java b/src/main/java/fr/xephi/authme/converter/FlatToSqlite.java
index 6ac6ee6a..715b4833 100644
--- a/src/main/java/fr/xephi/authme/converter/FlatToSqlite.java
+++ b/src/main/java/fr/xephi/authme/converter/FlatToSqlite.java
@@ -18,9 +18,8 @@ import fr.xephi.authme.AuthMe;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.settings.Settings;
-
public class FlatToSqlite implements Converter {
-
+
public CommandSender sender;
public FlatToSqlite(CommandSender sender) {
@@ -37,13 +36,13 @@ public class FlatToSqlite implements Converter {
private static String lastlocZ;
private static String lastlocWorld;
private static String columnEmail;
- private static File source;
- private static String database;
- private static String columnID;
- private static Connection con;
+ private static File source;
+ private static String database;
+ private static String columnID;
+ private static Connection con;
- @Override
- public void run() {
+ @Override
+ public void run() {
database = Settings.getMySQLDatabase;
tableName = Settings.getMySQLTablename;
columnName = Settings.getMySQLColumnName;
@@ -56,60 +55,77 @@ public class FlatToSqlite implements Converter {
lastlocWorld = Settings.getMySQLlastlocWorld;
columnEmail = Settings.getMySQLColumnEmail;
columnID = Settings.getMySQLColumnId;
- ConsoleLogger.info("Converting FlatFile to SQLite ...");
- if (new File(AuthMe.getInstance().getDataFolder() + File.separator + database + ".db").exists()) {
- sender.sendMessage("The Database " + database + ".db can't be created cause the file already exist");
- return;
+ ConsoleLogger.info("Converting FlatFile to SQLite ...");
+ if (new File(AuthMe.getInstance().getDataFolder() + File.separator
+ + database + ".db").exists()) {
+ sender.sendMessage("The Database " + database
+ + ".db can't be created cause the file already exist");
+ return;
}
try {
- connect();
- setup();
- } catch (Exception e) {
- ConsoleLogger.showError("Problem while trying to convert to sqlite !");
- sender.sendMessage("Problem while trying to convert to sqlite !");
- return;
- }
- try {
- source = new File(AuthMe.getInstance().getDataFolder() + File.separator + "auths.db");
- source.createNewFile();
- BufferedReader br = new BufferedReader(new FileReader(source));
- String line;
- int i = 1;
- String newline;
- while ((line = br.readLine()) != null) {
- String[] args = line.split(":");
- if (args.length == 4)
- newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", 0, 0, 0, 'world', 'your@email.com');";
- else if (args.length == 7)
- newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", 'world', 'your@email.com');";
- else if (args.length == 8)
- newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", '" + args[7] + "', 'your@email.com');";
- else if (args.length == 9)
- newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", '" + args[7] + "', '" + args[8] + "');";
- else
- newline = "";
- if (newline != "")
- saveAuth(newline);
- i = i + 1;
- }
- br.close();
- ConsoleLogger.info("The FlatFile has been converted to " + database + ".db file");
- close();
- sender.sendMessage("The FlatFile has been converted to " + database + ".db file");
- return;
- } catch (FileNotFoundException ex) {
+ connect();
+ setup();
+ } catch (Exception e) {
+ ConsoleLogger
+ .showError("Problem while trying to convert to sqlite !");
+ sender.sendMessage("Problem while trying to convert to sqlite !");
+ return;
+ }
+ try {
+ source = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + "auths.db");
+ source.createNewFile();
+ BufferedReader br = new BufferedReader(new FileReader(source));
+ String line;
+ int i = 1;
+ String newline;
+ while ((line = br.readLine()) != null) {
+ String[] args = line.split(":");
+ if (args.length == 4) newline = "INSERT INTO " + tableName
+ + " VALUES (" + i + ", '" + args[0] + "', '" + args[1]
+ + "', '" + args[2] + "', " + args[3]
+ + ", 0, 0, 0, 'world', 'your@email.com');";
+ else if (args.length == 7) newline = "INSERT INTO " + tableName
+ + " VALUES (" + i + ", '" + args[0] + "', '" + args[1]
+ + "', '" + args[2] + "', " + args[3] + ", " + args[4]
+ + ", " + args[5] + ", " + args[6]
+ + ", 'world', 'your@email.com');";
+ else if (args.length == 8) newline = "INSERT INTO " + tableName
+ + " VALUES (" + i + ", '" + args[0] + "', '" + args[1]
+ + "', '" + args[2] + "', " + args[3] + ", " + args[4]
+ + ", " + args[5] + ", " + args[6] + ", '" + args[7]
+ + "', 'your@email.com');";
+ else if (args.length == 9) newline = "INSERT INTO " + tableName
+ + " VALUES (" + i + ", '" + args[0] + "', '" + args[1]
+ + "', '" + args[2] + "', " + args[3] + ", " + args[4]
+ + ", " + args[5] + ", " + args[6] + ", '" + args[7]
+ + "', '" + args[8] + "');";
+ else newline = "";
+ if (newline != "") saveAuth(newline);
+ i = i + 1;
+ }
+ br.close();
+ ConsoleLogger.info("The FlatFile has been converted to " + database
+ + ".db file");
+ close();
+ sender.sendMessage("The FlatFile has been converted to " + database
+ + ".db file");
+ return;
+ } catch (FileNotFoundException ex) {
ConsoleLogger.showError(ex.getMessage());
} catch (IOException ex) {
ConsoleLogger.showError(ex.getMessage());
}
sender.sendMessage("Errors appears while trying to convert to SQLite");
return;
- }
-
- private synchronized static void connect() throws ClassNotFoundException, SQLException {
+ }
+
+ private synchronized static void connect() throws ClassNotFoundException,
+ SQLException {
Class.forName("org.sqlite.JDBC");
ConsoleLogger.info("SQLite driver loaded");
- con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"+database+".db");
+ con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"
+ + database + ".db");
}
private synchronized static void setup() throws SQLException {
@@ -118,18 +134,19 @@ public class FlatToSqlite implements Converter {
try {
st = con.createStatement();
st.executeUpdate("CREATE TABLE IF NOT EXISTS " + tableName + " ("
- + columnID + " INTEGER AUTO_INCREMENT,"
- + columnName + " VARCHAR(255) NOT NULL UNIQUE,"
- + columnPassword + " VARCHAR(255) NOT NULL,"
- + columnIp + " VARCHAR(40) NOT NULL,"
- + columnLastLogin + " BIGINT,"
- + lastlocX + " smallint(6) DEFAULT '0',"
- + lastlocY + " smallint(6) DEFAULT '0',"
- + lastlocZ + " smallint(6) DEFAULT '0',"
- + lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
- + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
- + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
- rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
+ + columnID + " INTEGER AUTO_INCREMENT," + columnName
+ + " VARCHAR(255) NOT NULL UNIQUE," + columnPassword
+ + " VARCHAR(255) NOT NULL," + columnIp
+ + " VARCHAR(40) NOT NULL," + columnLastLogin + " BIGINT,"
+ + lastlocX + " smallint(6) DEFAULT '0'," + lastlocY
+ + " smallint(6) DEFAULT '0'," + lastlocZ
+ + " smallint(6) DEFAULT '0'," + lastlocWorld
+ + " VARCHAR(255) DEFAULT 'world'," + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com',"
+ + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID
+ + "));");
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnPassword);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnPassword + " VARCHAR(255) NOT NULL;");
@@ -141,7 +158,8 @@ public class FlatToSqlite implements Converter {
+ columnIp + " VARCHAR(40) NOT NULL;");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnLastLogin);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnLastLogin);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnLastLogin + " BIGINT;");
@@ -149,19 +167,29 @@ public class FlatToSqlite implements Converter {
rs.close();
rs = con.getMetaData().getColumns(null, null, tableName, lastlocX);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocX + " smallint(6) NOT NULL DEFAULT '0'; "
- + "ALTER TABLE " + tableName + " ADD COLUMN " + lastlocY + " smallint(6) NOT NULL DEFAULT '0'; "
- + "ALTER TABLE " + tableName + " ADD COLUMN " + lastlocZ + " smallint(6) NOT NULL DEFAULT '0';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocX + " smallint(6) NOT NULL DEFAULT '0'; "
+ + "ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocY + " smallint(6) NOT NULL DEFAULT '0'; "
+ + "ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocZ + " smallint(6) NOT NULL DEFAULT '0';");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, lastlocWorld);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ lastlocWorld);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocWorld + " VARCHAR(255) NOT NULL DEFAULT 'world' AFTER " + lastlocZ + ";");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocWorld
+ + " VARCHAR(255) NOT NULL DEFAULT 'world' AFTER "
+ + lastlocZ + ";");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnEmail);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnEmail);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com';");
}
} finally {
close(rs);
@@ -169,21 +197,21 @@ public class FlatToSqlite implements Converter {
}
ConsoleLogger.info("SQLite Setup finished");
}
-
+
private static synchronized boolean saveAuth(String s) {
- PreparedStatement pst = null;
- try {
- pst = con.prepareStatement(s);
- pst.executeUpdate();
- } catch (SQLException e) {
- ConsoleLogger.showError(e.getMessage());
- return false;
- } finally {
- close(pst);
- }
- return true;
+ PreparedStatement pst = null;
+ try {
+ pst = con.prepareStatement(s);
+ pst.executeUpdate();
+ } catch (SQLException e) {
+ ConsoleLogger.showError(e.getMessage());
+ return false;
+ } finally {
+ close(pst);
+ }
+ return true;
}
-
+
private static void close(Statement st) {
if (st != null) {
try {
@@ -203,7 +231,7 @@ public class FlatToSqlite implements Converter {
}
}
}
-
+
public synchronized static void close() {
try {
con.close();
diff --git a/src/main/java/fr/xephi/authme/converter/RakamakConverter.java b/src/main/java/fr/xephi/authme/converter/RakamakConverter.java
index 451d4d8a..f66b27ea 100644
--- a/src/main/java/fr/xephi/authme/converter/RakamakConverter.java
+++ b/src/main/java/fr/xephi/authme/converter/RakamakConverter.java
@@ -20,86 +20,91 @@ import fr.xephi.authme.security.PasswordSecurity;
import fr.xephi.authme.settings.Settings;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class RakamakConverter implements Converter {
- public AuthMe instance;
- public DataSource database;
- public CommandSender sender;
+ public AuthMe instance;
+ public DataSource database;
+ public CommandSender sender;
- public RakamakConverter (AuthMe instance, DataSource database, CommandSender sender) {
- this.instance = instance;
- this.database = database;
- this.sender = sender;
- }
+ public RakamakConverter(AuthMe instance, DataSource database,
+ CommandSender sender) {
+ this.instance = instance;
+ this.database = database;
+ this.sender = sender;
+ }
- public RakamakConverter getInstance() {
- return this;
- }
+ public RakamakConverter getInstance() {
+ return this;
+ }
- private static Boolean useIP;
- private static String fileName;
- private static String ipFileName;
- private static File source;
- private static File ipfiles;
+ private static Boolean useIP;
+ private static String fileName;
+ private static String ipFileName;
+ private static File source;
+ private static File ipfiles;
- @Override
- public void run() {
- HashAlgorithm hash = Settings.getPasswordHash;
- useIP = Settings.rakamakUseIp;
- fileName = Settings.rakamakUsers;
- ipFileName = Settings.rakamakUsersIp;
- HashMap playerIP = new HashMap();
- HashMap playerPSW = new HashMap();
+ @Override
+ public void run() {
+ HashAlgorithm hash = Settings.getPasswordHash;
+ useIP = Settings.rakamakUseIp;
+ fileName = Settings.rakamakUsers;
+ ipFileName = Settings.rakamakUsersIp;
+ HashMap playerIP = new HashMap();
+ HashMap playerPSW = new HashMap();
try {
- source = new File(AuthMe.getInstance().getDataFolder() + File.separator + fileName);
- ipfiles = new File(AuthMe.getInstance().getDataFolder() + File.separator + ipFileName);
+ source = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + fileName);
+ ipfiles = new File(AuthMe.getInstance().getDataFolder()
+ + File.separator + ipFileName);
source.createNewFile();
ipfiles.createNewFile();
- BufferedReader users = null;
- BufferedReader ipFile = null;
+ BufferedReader users = null;
+ BufferedReader ipFile = null;
ipFile = new BufferedReader(new FileReader(ipfiles));
- String line;
+ String line;
if (useIP) {
- String tempLine;
- while ((tempLine = ipFile.readLine()) != null) {
- if (tempLine.contains("=")) {
- String[] args = tempLine.split("=");
- playerIP.put(args[0], args[1]);
- }
- }
+ String tempLine;
+ while ((tempLine = ipFile.readLine()) != null) {
+ if (tempLine.contains("=")) {
+ String[] args = tempLine.split("=");
+ playerIP.put(args[0], args[1]);
+ }
+ }
}
ipFile.close();
users = new BufferedReader(new FileReader(source));
while ((line = users.readLine()) != null) {
- if (line.contains("=")) {
- String[] arguments = line.split("=");
- try {
- playerPSW.put(arguments[0],PasswordSecurity.getHash(hash, arguments[1], arguments[0]));
- } catch (NoSuchAlgorithmException e) {
- ConsoleLogger.showError(e.getMessage());
- }
- }
+ if (line.contains("=")) {
+ String[] arguments = line.split("=");
+ try {
+ playerPSW.put(arguments[0], PasswordSecurity.getHash(
+ hash, arguments[1], arguments[0]));
+ } catch (NoSuchAlgorithmException e) {
+ ConsoleLogger.showError(e.getMessage());
+ }
+ }
}
users.close();
- for (Entry m : playerPSW.entrySet()) {
- String player = m.getKey();
- String psw = playerPSW.get(player);
- String ip;
- if (useIP) {
- ip = playerIP.get(player);
- } else {
- ip = "127.0.0.1";
- }
- PlayerAuth auth = new PlayerAuth(player, psw, ip, System.currentTimeMillis());
- if (PasswordSecurity.userSalt.containsKey(player))
- auth.setSalt(PasswordSecurity.userSalt.get(player));
- database.saveAuth(auth);
- }
- ConsoleLogger.info("Rakamak database has been imported correctly");
- sender.sendMessage("Rakamak database has been imported correctly");
+ for (Entry m : playerPSW.entrySet()) {
+ String player = m.getKey();
+ String psw = playerPSW.get(player);
+ String ip;
+ if (useIP) {
+ ip = playerIP.get(player);
+ } else {
+ ip = "127.0.0.1";
+ }
+ PlayerAuth auth = new PlayerAuth(player, psw, ip,
+ System.currentTimeMillis());
+ if (PasswordSecurity.userSalt.containsKey(player)) auth
+ .setSalt(PasswordSecurity.userSalt.get(player));
+ database.saveAuth(auth);
+ }
+ ConsoleLogger.info("Rakamak database has been imported correctly");
+ sender.sendMessage("Rakamak database has been imported correctly");
} catch (FileNotFoundException ex) {
ConsoleLogger.showError(ex.getMessage());
sender.sendMessage("Error file not found");
@@ -107,5 +112,5 @@ public class RakamakConverter implements Converter {
ConsoleLogger.showError(ex.getMessage());
sender.sendMessage("Error IOException");
}
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/RoyalAuthConverter.java b/src/main/java/fr/xephi/authme/converter/RoyalAuthConverter.java
index 61271e4c..6d5ed7ad 100644
--- a/src/main/java/fr/xephi/authme/converter/RoyalAuthConverter.java
+++ b/src/main/java/fr/xephi/authme/converter/RoyalAuthConverter.java
@@ -10,14 +10,14 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.datasource.DataSource;
public class RoyalAuthConverter implements Converter {
-
- public AuthMe plugin;
- private DataSource data;
-
- public RoyalAuthConverter(AuthMe plugin) {
- this.plugin = plugin;
- this.data = plugin.database;
- }
+
+ public AuthMe plugin;
+ private DataSource data;
+
+ public RoyalAuthConverter(AuthMe plugin) {
+ this.plugin = plugin;
+ this.data = plugin.database;
+ }
@Override
public void run() {
@@ -25,16 +25,19 @@ public class RoyalAuthConverter implements Converter {
try {
String name = o.getName().toLowerCase();
String separator = File.separator;
- File file = new File("." + separator + "plugins" + separator + "RoyalAuth" + separator + "userdata" + separator + name + ".yml");
- if (data.isAuthAvailable(name))
- continue;
- if (!file.exists())
- continue;
+ File file = new File("." + separator + "plugins" + separator
+ + "RoyalAuth" + separator + "userdata" + separator
+ + name + ".yml");
+ if (data.isAuthAvailable(name)) continue;
+ if (!file.exists()) continue;
RoyalAuthYamlReader ra = new RoyalAuthYamlReader(file);
- PlayerAuth auth = new PlayerAuth(name, ra.getHash(), "127.0.0.1", ra.getLastLogin(), "your@email.com", o.getName());
+ PlayerAuth auth = new PlayerAuth(name, ra.getHash(),
+ "127.0.0.1", ra.getLastLogin(), "your@email.com",
+ o.getName());
data.saveAuth(auth);
} 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");
}
}
}
diff --git a/src/main/java/fr/xephi/authme/converter/RoyalAuthYamlReader.java b/src/main/java/fr/xephi/authme/converter/RoyalAuthYamlReader.java
index 05e309fd..cebbee0d 100644
--- a/src/main/java/fr/xephi/authme/converter/RoyalAuthYamlReader.java
+++ b/src/main/java/fr/xephi/authme/converter/RoyalAuthYamlReader.java
@@ -6,17 +6,17 @@ import fr.xephi.authme.settings.CustomConfiguration;
public class RoyalAuthYamlReader extends CustomConfiguration {
- public RoyalAuthYamlReader(File file) {
- super(file);
+ public RoyalAuthYamlReader(File file) {
+ super(file);
load();
save();
- }
+ }
- public long getLastLogin() {
- return getLong("timestamps.quit");
- }
-
- public String getHash() {
- return getString("login.password");
- }
+ public long getLastLogin() {
+ return getLong("timestamps.quit");
+ }
+
+ public String getHash() {
+ return getString("login.password");
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/newxAuthToFlat.java b/src/main/java/fr/xephi/authme/converter/newxAuthToFlat.java
index 51fd25d2..e159deb9 100644
--- a/src/main/java/fr/xephi/authme/converter/newxAuthToFlat.java
+++ b/src/main/java/fr/xephi/authme/converter/newxAuthToFlat.java
@@ -21,59 +21,63 @@ import fr.xephi.authme.datasource.DataSource;
public class newxAuthToFlat {
- public AuthMe instance;
- public DataSource database;
- public CommandSender sender;
+ public AuthMe instance;
+ public DataSource database;
+ public CommandSender sender;
- public newxAuthToFlat(AuthMe instance, DataSource database, CommandSender sender) {
- this.instance = instance;
- this.database = database;
- this.sender = sender;
- }
+ public newxAuthToFlat(AuthMe instance, DataSource database,
+ CommandSender sender) {
+ this.instance = instance;
+ this.database = database;
+ this.sender = sender;
+ }
- public boolean convert() {
- if (instance.getServer().getPluginManager().getPlugin("xAuth") == null) {
- sender.sendMessage("[AuthMe] xAuth plugin not found");
- return false;
- }
- if (!(new File("./plugins/xAuth/xAuth.h2.db").exists())) {
- sender.sendMessage("[AuthMe] xAuth H2 database not found, checking for MySQL or SQLite data...");
- }
- List players = getXAuthPlayers();
- if (players == null || players.isEmpty()) {
- sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
- return false;
- }
- sender.sendMessage("[AuthMe] Starting import...");
- try {
- for (int id : players) {
- String pl = getIdPlayer(id);
- String psw = getPassword(id);
- if (psw != null && !psw.isEmpty() && pl != null) {
- PlayerAuth auth = new PlayerAuth(pl, psw, "198.18.0.1", 0, "your@email.com", API.getPlayerRealName(pl));
- database.saveAuth(auth);
- }
- }
- sender.sendMessage("[AuthMe] Successfull convert from xAuth database");
- } catch (Exception e) {
- sender.sendMessage("[AuthMe] An error has been thrown while import xAuth database, the import hadn't fail but can be not complete ");
- }
- return true;
- }
+ public boolean convert() {
+ if (instance.getServer().getPluginManager().getPlugin("xAuth") == null) {
+ sender.sendMessage("[AuthMe] xAuth plugin not found");
+ return false;
+ }
+ if (!(new File("./plugins/xAuth/xAuth.h2.db").exists())) {
+ sender.sendMessage("[AuthMe] xAuth H2 database not found, checking for MySQL or SQLite data...");
+ }
+ List players = getXAuthPlayers();
+ if (players == null || players.isEmpty()) {
+ sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
+ return false;
+ }
+ sender.sendMessage("[AuthMe] Starting import...");
+ try {
+ for (int id : players) {
+ String pl = getIdPlayer(id);
+ String psw = getPassword(id);
+ if (psw != null && !psw.isEmpty() && pl != null) {
+ PlayerAuth auth = new PlayerAuth(pl, psw, "198.18.0.1", 0,
+ "your@email.com", API.getPlayerRealName(pl));
+ database.saveAuth(auth);
+ }
+ }
+ sender.sendMessage("[AuthMe] Successfull convert from xAuth database");
+ } catch (Exception e) {
+ sender.sendMessage("[AuthMe] An error has been thrown while import xAuth database, the import hadn't fail but can be not complete ");
+ }
+ return true;
+ }
- public String getIdPlayer(int id) {
- String realPass = "";
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public String getIdPlayer(int id) {
+ String realPass = "";
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT `playername` FROM `%s` WHERE `id` = ?",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format(
+ "SELECT `playername` FROM `%s` WHERE `id` = ?",
+ xAuth.getPlugin().getDatabaseController()
+ .getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
rs = ps.executeQuery();
- if (!rs.next())
- return null;
+ if (!rs.next()) return null;
realPass = rs.getString("playername").toLowerCase();
} catch (SQLException e) {
xAuthLog.severe("Failed to retrieve name for account: " + id, e);
@@ -81,20 +85,21 @@ public class newxAuthToFlat {
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return realPass;
- }
+ return realPass;
+ }
- public List getXAuthPlayers() {
- List xP = new ArrayList();
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public List getXAuthPlayers() {
+ List xP = new ArrayList();
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT * FROM `%s`",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format("SELECT * FROM `%s`", xAuth.getPlugin()
+ .getDatabaseController().getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
- while(rs.next()) {
+ while (rs.next()) {
xP.add(rs.getInt("id"));
}
} catch (SQLException e) {
@@ -103,29 +108,32 @@ public class newxAuthToFlat {
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return xP;
- }
+ return xP;
+ }
- public String getPassword(int accountId) {
- String realPass = "";
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public String getPassword(int accountId) {
+ String realPass = "";
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format(
+ "SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
+ xAuth.getPlugin().getDatabaseController()
+ .getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
ps.setInt(1, accountId);
rs = ps.executeQuery();
- if (!rs.next())
- return null;
+ if (!rs.next()) return null;
realPass = rs.getString("password");
} catch (SQLException e) {
- xAuthLog.severe("Failed to retrieve password hash for account: " + accountId, e);
+ xAuthLog.severe("Failed to retrieve password hash for account: "
+ + accountId, e);
return null;
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return realPass;
- }
+ return realPass;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/oldxAuthToFlat.java b/src/main/java/fr/xephi/authme/converter/oldxAuthToFlat.java
index e3fff991..bbaa13ee 100644
--- a/src/main/java/fr/xephi/authme/converter/oldxAuthToFlat.java
+++ b/src/main/java/fr/xephi/authme/converter/oldxAuthToFlat.java
@@ -19,66 +19,69 @@ import fr.xephi.authme.api.API;
import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.datasource.DataSource;
-
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class oldxAuthToFlat {
- public AuthMe instance;
- public DataSource database;
- public CommandSender sender;
+ public AuthMe instance;
+ public DataSource database;
+ public CommandSender sender;
- public oldxAuthToFlat(AuthMe instance, DataSource database, CommandSender sender) {
- this.instance = instance;
- this.database = database;
- this.sender = sender;
- }
+ public oldxAuthToFlat(AuthMe instance, DataSource database,
+ CommandSender sender) {
+ this.instance = instance;
+ this.database = database;
+ this.sender = sender;
+ }
- public boolean convert() {
- if (instance.getServer().getPluginManager().getPlugin("xAuth") == null) {
- sender.sendMessage("[AuthMe] xAuth plugin not found");
- return false;
- }
- if (!(new File("./plugins/xAuth/xAuth.h2.db").exists())) {
- sender.sendMessage("[AuthMe] xAuth H2 database not found, checking for MySQL or SQLite data...");
- }
- List players = getXAuthPlayers();
- if (players == null || players.isEmpty()) {
- sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
- return false;
- }
- sender.sendMessage("[AuthMe] Starting import...");
- try {
- for (int id : players) {
- String pl = getIdPlayer(id);
- String psw = getPassword(id);
- if (psw != null && !psw.isEmpty() && pl != null) {
- PlayerAuth auth = new PlayerAuth(pl, psw, "198.18.0.1", 0, "your@email.com", API.getPlayerRealName(pl));
- database.saveAuth(auth);
- }
- }
- sender.sendMessage("[AuthMe] Successfull convert from xAuth database");
- } catch (Exception e) {
- sender.sendMessage("[AuthMe] An error has been thrown while import xAuth database, the import hadn't fail but can be not complete ");
- }
- return true;
- }
+ public boolean convert() {
+ if (instance.getServer().getPluginManager().getPlugin("xAuth") == null) {
+ sender.sendMessage("[AuthMe] xAuth plugin not found");
+ return false;
+ }
+ if (!(new File("./plugins/xAuth/xAuth.h2.db").exists())) {
+ sender.sendMessage("[AuthMe] xAuth H2 database not found, checking for MySQL or SQLite data...");
+ }
+ List players = getXAuthPlayers();
+ if (players == null || players.isEmpty()) {
+ sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
+ return false;
+ }
+ sender.sendMessage("[AuthMe] Starting import...");
+ try {
+ for (int id : players) {
+ String pl = getIdPlayer(id);
+ String psw = getPassword(id);
+ if (psw != null && !psw.isEmpty() && pl != null) {
+ PlayerAuth auth = new PlayerAuth(pl, psw, "198.18.0.1", 0,
+ "your@email.com", API.getPlayerRealName(pl));
+ database.saveAuth(auth);
+ }
+ }
+ sender.sendMessage("[AuthMe] Successfull convert from xAuth database");
+ } catch (Exception e) {
+ sender.sendMessage("[AuthMe] An error has been thrown while import xAuth database, the import hadn't fail but can be not complete ");
+ }
+ return true;
+ }
- public String getIdPlayer(int id) {
- String realPass = "";
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public String getIdPlayer(int id) {
+ String realPass = "";
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT `playername` FROM `%s` WHERE `id` = ?",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format(
+ "SELECT `playername` FROM `%s` WHERE `id` = ?",
+ xAuth.getPlugin().getDatabaseController()
+ .getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
rs = ps.executeQuery();
- if (!rs.next())
- return null;
+ if (!rs.next()) return null;
realPass = rs.getString("playername").toLowerCase();
} catch (SQLException e) {
xAuthLog.severe("Failed to retrieve name for account: " + id, e);
@@ -86,20 +89,21 @@ public class oldxAuthToFlat {
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return realPass;
- }
+ return realPass;
+ }
- public List getXAuthPlayers() {
- List xP = new ArrayList();
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public List getXAuthPlayers() {
+ List xP = new ArrayList();
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT * FROM `%s`",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format("SELECT * FROM `%s`", xAuth.getPlugin()
+ .getDatabaseController().getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
- while(rs.next()) {
+ while (rs.next()) {
xP.add(rs.getInt("id"));
}
} catch (SQLException e) {
@@ -108,29 +112,32 @@ public class oldxAuthToFlat {
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return xP;
- }
+ return xP;
+ }
- public String getPassword(int accountId) {
- String realPass = "";
- Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
+ public String getPassword(int accountId) {
+ String realPass = "";
+ Connection conn = xAuth.getPlugin().getDatabaseController()
+ .getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
try {
- String sql = String.format("SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
- xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
+ String sql = String.format(
+ "SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
+ xAuth.getPlugin().getDatabaseController()
+ .getTable(Table.ACCOUNT));
ps = conn.prepareStatement(sql);
ps.setInt(1, accountId);
rs = ps.executeQuery();
- if (!rs.next())
- return null;
+ if (!rs.next()) return null;
realPass = rs.getString("password");
} catch (SQLException e) {
- xAuthLog.severe("Failed to retrieve password hash for account: " + accountId, e);
+ xAuthLog.severe("Failed to retrieve password hash for account: "
+ + accountId, e);
return null;
} finally {
xAuth.getPlugin().getDatabaseController().close(conn, ps, rs);
}
- return realPass;
- }
+ return realPass;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/converter/vAuthConverter.java b/src/main/java/fr/xephi/authme/converter/vAuthConverter.java
index df30fbd4..bc9bc8de 100644
--- a/src/main/java/fr/xephi/authme/converter/vAuthConverter.java
+++ b/src/main/java/fr/xephi/authme/converter/vAuthConverter.java
@@ -12,7 +12,8 @@ public class vAuthConverter implements Converter {
public DataSource database;
public CommandSender sender;
- public vAuthConverter(AuthMe plugin, DataSource database, CommandSender sender) {
+ public vAuthConverter(AuthMe plugin, DataSource database,
+ CommandSender sender) {
this.plugin = plugin;
this.database = database;
this.sender = sender;
diff --git a/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java b/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java
index a54ed43b..fb39e2d2 100644
--- a/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java
+++ b/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java
@@ -15,23 +15,25 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.datasource.DataSource;
public class vAuthFileReader {
-
+
public AuthMe plugin;
public DataSource database;
public CommandSender sender;
- public vAuthFileReader(AuthMe plugin, DataSource database, CommandSender sender) {
+ public vAuthFileReader(AuthMe plugin, DataSource database,
+ CommandSender sender) {
this.plugin = plugin;
this.database = database;
this.sender = sender;
}
-
+
public void convert() throws IOException {
- final File file = new File(plugin.getDataFolder().getParent() + "/vAuth/passwords.yml");
+ final File file = new File(plugin.getDataFolder().getParent()
+ + "/vAuth/passwords.yml");
Scanner scanner = null;
try {
scanner = new Scanner(file);
- while(scanner.hasNextLine()) {
+ while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String name = line.split(": ")[0];
String password = line.split(": ")[1];
@@ -39,29 +41,34 @@ public class vAuthFileReader {
if (isUUIDinstance(password)) {
String pname = null;
try {
- pname = Bukkit.getOfflinePlayer(UUID.fromString(name)).getName();
+ pname = Bukkit.getOfflinePlayer(UUID.fromString(name))
+ .getName();
} catch (Exception e) {
pname = getName(UUID.fromString(name));
} catch (NoSuchMethodError e) {
pname = getName(UUID.fromString(name));
}
if (pname == null) continue;
- auth = new PlayerAuth(pname.toLowerCase(), password, "127.0.0.1", System.currentTimeMillis(), "your@email.com", pname);
+ auth = new PlayerAuth(pname.toLowerCase(), password,
+ "127.0.0.1", System.currentTimeMillis(),
+ "your@email.com", pname);
} else {
- auth = new PlayerAuth(name, password, "127.0.0.1", System.currentTimeMillis(), "your@email.com", API.getPlayerRealName(name));
+ auth = new PlayerAuth(name, password, "127.0.0.1",
+ System.currentTimeMillis(), "your@email.com",
+ API.getPlayerRealName(name));
}
if (auth != null) database.saveAuth(auth);
}
} catch (Exception e) {
}
-
+
}
-
+
private boolean isUUIDinstance(String s) {
if (String.valueOf(s.charAt(8)).equalsIgnoreCase("-")) return true;
return true;
}
-
+
private String getName(UUID uuid) {
try {
for (OfflinePlayer op : Bukkit.getOfflinePlayers()) {
diff --git a/src/main/java/fr/xephi/authme/converter/xAuthConverter.java b/src/main/java/fr/xephi/authme/converter/xAuthConverter.java
index 1caa83cf..254a1aac 100644
--- a/src/main/java/fr/xephi/authme/converter/xAuthConverter.java
+++ b/src/main/java/fr/xephi/authme/converter/xAuthConverter.java
@@ -10,8 +10,9 @@ public class xAuthConverter implements Converter {
public AuthMe plugin;
public DataSource database;
public CommandSender sender;
-
- public xAuthConverter(AuthMe plugin, DataSource database, CommandSender sender) {
+
+ public xAuthConverter(AuthMe plugin, DataSource database,
+ CommandSender sender) {
this.plugin = plugin;
this.database = database;
this.sender = sender;
@@ -21,12 +22,14 @@ public class xAuthConverter implements Converter {
public void run() {
try {
Class.forName("com.cypherx.xauth.xAuth");
- oldxAuthToFlat converter = new oldxAuthToFlat(plugin, database, sender);
+ oldxAuthToFlat converter = new oldxAuthToFlat(plugin, database,
+ sender);
converter.convert();
} catch (ClassNotFoundException e) {
try {
Class.forName("de.luricos.bukkit.xAuth.xAuth");
- newxAuthToFlat converter = new newxAuthToFlat(plugin, database, sender);
+ newxAuthToFlat converter = new newxAuthToFlat(plugin, database,
+ sender);
converter.convert();
} catch (ClassNotFoundException ce) {
sender.sendMessage("xAuth has not been found, please put xAuth.jar in your plugin folder and restart!");
diff --git a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java
index 5483a712..8865bb64 100644
--- a/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java
+++ b/src/main/java/fr/xephi/authme/datasource/CacheDataSource.java
@@ -9,7 +9,6 @@ import fr.xephi.authme.AuthMe;
import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.cache.auth.PlayerCache;
-
public class CacheDataSource implements DataSource {
private DataSource source;
@@ -17,24 +16,23 @@ public class CacheDataSource implements DataSource {
private HashMap cache = new HashMap();
public CacheDataSource(AuthMe plugin, DataSource source) {
- this.plugin = plugin;
+ this.plugin = plugin;
this.source = source;
}
@Override
public synchronized boolean isAuthAvailable(String user) {
- if (cache.containsKey(user.toLowerCase())) return true;
- return source.isAuthAvailable(user.toLowerCase());
+ if (cache.containsKey(user.toLowerCase())) return true;
+ return source.isAuthAvailable(user.toLowerCase());
}
@Override
public synchronized PlayerAuth getAuth(String user) {
- if(cache.containsKey(user.toLowerCase())) {
+ if (cache.containsKey(user.toLowerCase())) {
return cache.get(user.toLowerCase());
} else {
PlayerAuth auth = source.getAuth(user.toLowerCase());
- if (auth != null)
- cache.put(user.toLowerCase(), auth);
+ if (auth != null) cache.put(user.toLowerCase(), auth);
return auth;
}
}
@@ -51,8 +49,8 @@ public class CacheDataSource implements DataSource {
@Override
public synchronized boolean updatePassword(PlayerAuth auth) {
if (source.updatePassword(auth)) {
- if (cache.containsKey(auth.getNickname().toLowerCase()))
- cache.get(auth.getNickname()).setHash(auth.getHash());
+ if (cache.containsKey(auth.getNickname().toLowerCase())) cache.get(
+ auth.getNickname()).setHash(auth.getHash());
return true;
}
return false;
@@ -61,10 +59,10 @@ public class CacheDataSource implements DataSource {
@Override
public boolean updateSession(PlayerAuth auth) {
if (source.updateSession(auth)) {
- if (cache.containsKey(auth.getNickname().toLowerCase())) {
- cache.get(auth.getNickname()).setIp(auth.getIp());
- cache.get(auth.getNickname()).setLastLogin(auth.getLastLogin());
- }
+ if (cache.containsKey(auth.getNickname().toLowerCase())) {
+ cache.get(auth.getNickname()).setIp(auth.getIp());
+ cache.get(auth.getNickname()).setLastLogin(auth.getLastLogin());
+ }
return true;
}
return false;
@@ -73,12 +71,12 @@ public class CacheDataSource implements DataSource {
@Override
public boolean updateQuitLoc(PlayerAuth auth) {
if (source.updateQuitLoc(auth)) {
- if (cache.containsKey(auth.getNickname().toLowerCase())) {
- cache.get(auth.getNickname()).setQuitLocX(auth.getQuitLocX());
- cache.get(auth.getNickname()).setQuitLocY(auth.getQuitLocY());
- cache.get(auth.getNickname()).setQuitLocZ(auth.getQuitLocZ());
- cache.get(auth.getNickname()).setWorld(auth.getWorld());
- }
+ if (cache.containsKey(auth.getNickname().toLowerCase())) {
+ cache.get(auth.getNickname()).setQuitLocX(auth.getQuitLocX());
+ cache.get(auth.getNickname()).setQuitLocY(auth.getQuitLocY());
+ cache.get(auth.getNickname()).setQuitLocZ(auth.getQuitLocZ());
+ cache.get(auth.getNickname()).setWorld(auth.getWorld());
+ }
return true;
}
return false;
@@ -94,7 +92,7 @@ public class CacheDataSource implements DataSource {
int cleared = source.purgeDatabase(until);
if (cleared > 0) {
for (PlayerAuth auth : cache.values()) {
- if(auth.getLastLogin() < until) {
+ if (auth.getLastLogin() < until) {
cache.remove(auth.getNickname());
}
}
@@ -107,7 +105,7 @@ public class CacheDataSource implements DataSource {
List cleared = source.autoPurgeDatabase(until);
if (cleared.size() > 0) {
for (PlayerAuth auth : cache.values()) {
- if(auth.getLastLogin() < until) {
+ if (auth.getLastLogin() < until) {
cache.remove(auth.getNickname());
}
}
@@ -131,88 +129,88 @@ public class CacheDataSource implements DataSource {
@Override
public void reload() {
- cache.clear();
- source.reload();
- for (Player player : plugin.getServer().getOnlinePlayers()) {
- String user = player.getName().toLowerCase();
- if (PlayerCache.getInstance().isAuthenticated(user)) {
- try {
+ cache.clear();
+ source.reload();
+ for (Player player : plugin.getServer().getOnlinePlayers()) {
+ String user = player.getName().toLowerCase();
+ if (PlayerCache.getInstance().isAuthenticated(user)) {
+ try {
PlayerAuth auth = source.getAuth(user);
cache.put(user, auth);
- } catch (NullPointerException npe) {
- }
+ } catch (NullPointerException npe) {
+ }
- }
- }
+ }
+ }
}
- @Override
- public synchronized boolean updateEmail(PlayerAuth auth) {
- if(source.updateEmail(auth)) {
- if (cache.containsKey(auth.getNickname().toLowerCase()))
- cache.get(auth.getNickname()).setEmail(auth.getEmail());
- return true;
- }
- return false;
- }
+ @Override
+ public synchronized boolean updateEmail(PlayerAuth auth) {
+ if (source.updateEmail(auth)) {
+ if (cache.containsKey(auth.getNickname().toLowerCase())) cache.get(
+ auth.getNickname()).setEmail(auth.getEmail());
+ return true;
+ }
+ return false;
+ }
- @Override
- public synchronized boolean updateSalt(PlayerAuth auth) {
- if(source.updateSalt(auth)) {
- if (cache.containsKey(auth.getNickname().toLowerCase()))
- cache.get(auth.getNickname()).setSalt(auth.getSalt());
- return true;
- }
- return false;
- }
+ @Override
+ public synchronized boolean updateSalt(PlayerAuth auth) {
+ if (source.updateSalt(auth)) {
+ if (cache.containsKey(auth.getNickname().toLowerCase())) cache.get(
+ auth.getNickname()).setSalt(auth.getSalt());
+ return true;
+ }
+ return false;
+ }
- @Override
- public synchronized List getAllAuthsByName(PlayerAuth auth) {
- return source.getAllAuthsByName(auth);
- }
+ @Override
+ public synchronized List getAllAuthsByName(PlayerAuth auth) {
+ return source.getAllAuthsByName(auth);
+ }
- @Override
- public synchronized List getAllAuthsByIp(String ip) {
- return source.getAllAuthsByIp(ip);
- }
+ @Override
+ public synchronized List getAllAuthsByIp(String ip) {
+ return source.getAllAuthsByIp(ip);
+ }
- @Override
- public synchronized List getAllAuthsByEmail(String email) {
- return source.getAllAuthsByEmail(email);
- }
+ @Override
+ public synchronized List getAllAuthsByEmail(String email) {
+ return source.getAllAuthsByEmail(email);
+ }
- @Override
- public synchronized void purgeBanned(List banned) {
- source.purgeBanned(banned);
- for (PlayerAuth auth : cache.values()) {
- if (banned.contains(auth.getNickname())) {
- cache.remove(auth.getNickname());
- }
- }
- }
+ @Override
+ public synchronized void purgeBanned(List banned) {
+ source.purgeBanned(banned);
+ for (PlayerAuth auth : cache.values()) {
+ if (banned.contains(auth.getNickname())) {
+ cache.remove(auth.getNickname());
+ }
+ }
+ }
- @Override
- public DataSourceType getType() {
- return source.getType();
- }
+ @Override
+ public DataSourceType getType() {
+ return source.getType();
+ }
- @Override
- public boolean isLogged(String user) {
- return source.isLogged(user);
- }
+ @Override
+ public boolean isLogged(String user) {
+ return source.isLogged(user);
+ }
- @Override
- public void setLogged(String user) {
- source.setLogged(user);
- }
+ @Override
+ public void setLogged(String user) {
+ source.setLogged(user);
+ }
- @Override
- public void setUnlogged(String user) {
- source.setUnlogged(user);
- }
+ @Override
+ public void setUnlogged(String user) {
+ source.setUnlogged(user);
+ }
- @Override
- public void purgeLogged() {
- source.purgeLogged();
- }
+ @Override
+ public void purgeLogged() {
+ source.purgeLogged();
+ }
}
diff --git a/src/main/java/fr/xephi/authme/datasource/DataSource.java b/src/main/java/fr/xephi/authme/datasource/DataSource.java
index 8fb9790f..cf776cfc 100644
--- a/src/main/java/fr/xephi/authme/datasource/DataSource.java
+++ b/src/main/java/fr/xephi/authme/datasource/DataSource.java
@@ -4,7 +4,6 @@ import java.util.List;
import fr.xephi.authme.cache.auth.PlayerAuth;
-
public interface DataSource {
public enum DataSourceType {
@@ -23,7 +22,7 @@ public interface DataSource {
boolean updatePassword(PlayerAuth auth);
int purgeDatabase(long until);
-
+
List autoPurgeDatabase(long until);
boolean removeAuth(String user);
@@ -47,15 +46,15 @@ public interface DataSource {
void reload();
void purgeBanned(List banned);
-
+
DataSourceType getType();
-
+
boolean isLogged(String user);
-
+
void setLogged(String user);
-
+
void setUnlogged(String user);
-
+
void purgeLogged();
}
diff --git a/src/main/java/fr/xephi/authme/datasource/FlatFileThread.java b/src/main/java/fr/xephi/authme/datasource/FlatFileThread.java
index df3580c1..19c94b57 100644
--- a/src/main/java/fr/xephi/authme/datasource/FlatFileThread.java
+++ b/src/main/java/fr/xephi/authme/datasource/FlatFileThread.java
@@ -17,36 +17,35 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.settings.PlayersLogs;
import fr.xephi.authme.settings.Settings;
-
public class FlatFileThread extends Thread implements DataSource {
- /* file layout:
- *
- * PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:LASTPOSX:LASTPOSY:LASTPOSZ:LASTPOSWORLD:EMAIL
- *
+ /*
+ * file layout:
+ *
+ * PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:LASTPOSX:LASTPOSY:LASTPOSZ:
+ * LASTPOSWORLD:EMAIL
+ *
* Old but compatible:
- * PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:LASTPOSX:LASTPOSY:LASTPOSZ:LASTPOSWORLD
- * PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS
- * PLAYERNAME:HASHSUM:IP
- * PLAYERNAME:HASHSUM
- *
+ * PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:LASTPOSX:LASTPOSY
+ * :LASTPOSZ:LASTPOSWORLD PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS
+ * PLAYERNAME:HASHSUM:IP PLAYERNAME:HASHSUM
*/
private File source;
public void run() {
source = new File(Settings.AUTH_FILE);
try {
- source.createNewFile();
- } catch (IOException e) {
+ source.createNewFile();
+ } catch (IOException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use FLAT FILE... SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
- }
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ ConsoleLogger.showError("Can't use FLAT FILE... SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
+ }
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- }
+ }
}
@Override
@@ -86,7 +85,11 @@ public class FlatFileThread extends Thread implements DataSource {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(source, true));
- bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + ":" + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":" + auth.getQuitLocZ() + ":" + auth.getWorld() + ":" + auth.getEmail() + "\n");
+ bw.write(auth.getNickname() + ":" + auth.getHash() + ":"
+ + auth.getIp() + ":" + auth.getLastLogin() + ":"
+ + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":"
+ + auth.getQuitLocZ() + ":" + auth.getWorld() + ":"
+ + auth.getEmail() + "\n");
} catch (IOException ex) {
ConsoleLogger.showError(ex.getMessage());
return false;
@@ -114,28 +117,51 @@ public class FlatFileThread extends Thread implements DataSource {
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
if (args[0].equals(auth.getNickname())) {
- switch (args.length) {
- case 4: {
- newAuth = new PlayerAuth(args[0], auth.getHash(), args[2], Long.parseLong(args[3]), 0, 0, 0, "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 7: {
- newAuth = new PlayerAuth(args[0], auth.getHash(), args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 8: {
- newAuth = new PlayerAuth(args[0], auth.getHash(), args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 9: {
- newAuth = new PlayerAuth(args[0], auth.getHash(), args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], args[8], API.getPlayerRealName(args[0]));
- break;
- }
- default: {
- newAuth = new PlayerAuth(args[0], auth.getHash(), args[2], 0, 0, 0, 0, "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- }
+ switch (args.length) {
+ case 4: {
+ newAuth = new PlayerAuth(args[0], auth.getHash(),
+ args[2], Long.parseLong(args[3]), 0, 0, 0,
+ "world", "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 7: {
+ newAuth = new PlayerAuth(args[0], auth.getHash(),
+ args[2], Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), "world",
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 8: {
+ newAuth = new PlayerAuth(args[0], auth.getHash(),
+ args[2], Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 9: {
+ newAuth = new PlayerAuth(args[0], auth.getHash(),
+ args[2], Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ args[8], API.getPlayerRealName(args[0]));
+ break;
+ }
+ default: {
+ newAuth = new PlayerAuth(args[0], auth.getHash(),
+ args[2], 0, 0, 0, 0, "world",
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ }
break;
}
}
@@ -172,26 +198,49 @@ public class FlatFileThread extends Thread implements DataSource {
String[] args = line.split(":");
if (args[0].equals(auth.getNickname())) {
switch (args.length) {
- case 4: {
- newAuth = new PlayerAuth(args[0], args[1], auth.getIp(), auth.getLastLogin(), 0, 0, 0, "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 7: {
- newAuth = new PlayerAuth(args[0], args[1], auth.getIp(), auth.getLastLogin(), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 8: {
- newAuth = new PlayerAuth(args[0], args[1], auth.getIp(), auth.getLastLogin(), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
- case 9: {
- newAuth = new PlayerAuth(args[0], args[1], auth.getIp(), auth.getLastLogin(), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], args[8], API.getPlayerRealName(args[0]));
- break;
- }
- default: {
- newAuth = new PlayerAuth(args[0], args[1], auth.getIp(), auth.getLastLogin(), 0, 0, 0, "world", "your@email.com", API.getPlayerRealName(args[0]));
- break;
- }
+ case 4: {
+ newAuth = new PlayerAuth(args[0], args[1],
+ auth.getIp(), auth.getLastLogin(), 0, 0, 0,
+ "world", "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 7: {
+ newAuth = new PlayerAuth(args[0], args[1],
+ auth.getIp(), auth.getLastLogin(),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), "world",
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 8: {
+ newAuth = new PlayerAuth(args[0], args[1],
+ auth.getIp(), auth.getLastLogin(),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
+ case 9: {
+ newAuth = new PlayerAuth(args[0], args[1],
+ auth.getIp(), auth.getLastLogin(),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ args[8], API.getPlayerRealName(args[0]));
+ break;
+ }
+ default: {
+ newAuth = new PlayerAuth(args[0], args[1],
+ auth.getIp(), auth.getLastLogin(), 0, 0, 0,
+ "world", "your@email.com",
+ API.getPlayerRealName(args[0]));
+ break;
+ }
}
break;
}
@@ -215,9 +264,9 @@ public class FlatFileThread extends Thread implements DataSource {
return true;
}
- @Override
- public boolean updateQuitLoc(PlayerAuth auth) {
- if (!isAuthAvailable(auth.getNickname())) {
+ @Override
+ public boolean updateQuitLoc(PlayerAuth auth) {
+ if (!isAuthAvailable(auth.getNickname())) {
return false;
}
PlayerAuth newAuth = null;
@@ -228,7 +277,11 @@ public class FlatFileThread extends Thread implements DataSource {
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
if (args[0].equals(auth.getNickname())) {
- newAuth = new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ(), auth.getWorld(), auth.getEmail(), API.getPlayerRealName(args[0]));
+ newAuth = new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]), auth.getQuitLocX(),
+ auth.getQuitLocY(), auth.getQuitLocZ(),
+ auth.getWorld(), auth.getEmail(),
+ API.getPlayerRealName(args[0]));
break;
}
}
@@ -278,7 +331,7 @@ public class FlatFileThread extends Thread implements DataSource {
} catch (IOException ex) {
}
}
- }
+ }
}
@Override
@@ -428,17 +481,40 @@ public class FlatFileThread extends Thread implements DataSource {
if (args[0].equals(user)) {
switch (args.length) {
case 2:
- return new PlayerAuth(args[0], args[1], "198.18.0.1", 0, "your@email.com", API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1],
+ "198.18.0.1", 0, "your@email.com",
+ API.getPlayerRealName(args[0]));
case 3:
- return new PlayerAuth(args[0], args[1], args[2], 0, "your@email.com", API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1], args[2], 0,
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
case 4:
- return new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), "your@email.com", API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]), "your@email.com",
+ API.getPlayerRealName(args[0]));
case 7:
- return new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), "unavailableworld", "your@email.com", API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]),
+ "unavailableworld", "your@email.com",
+ API.getPlayerRealName(args[0]));
case 8:
- return new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], "your@email.com", API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ "your@email.com",
+ API.getPlayerRealName(args[0]));
case 9:
- return new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], args[8], API.getPlayerRealName(args[0]));
+ return new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ args[8], API.getPlayerRealName(args[0]));
}
}
}
@@ -467,49 +543,54 @@ public class FlatFileThread extends Thread implements DataSource {
public void reload() {
}
- @Override
- public boolean updateEmail(PlayerAuth auth) {
- if (!isAuthAvailable(auth.getNickname())) {
- return false;
- }
- PlayerAuth newAuth = null;
- BufferedReader br = null;
- try {
- br = new BufferedReader(new FileReader(source));
- String line = "";
- while ((line = br.readLine()) != null) {
- String[] args = line.split(":");
- if (args[0].equals(auth.getNickname())) {
- newAuth = new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), Double.parseDouble(args[4]), Double.parseDouble(args[5]), Double.parseDouble(args[6]), args[7], auth.getEmail(), API.getPlayerRealName(args[0]));
- break;
- }
- }
- } catch (FileNotFoundException ex) {
- ConsoleLogger.showError(ex.getMessage());
- return false;
- } catch (IOException ex) {
- ConsoleLogger.showError(ex.getMessage());
- return false;
- } finally {
- if (br != null) {
- try {
- br.close();
- } catch (IOException ex) {
- }
- }
- }
- removeAuth(auth.getNickname());
- saveAuth(newAuth);
- return true;
- }
+ @Override
+ public boolean updateEmail(PlayerAuth auth) {
+ if (!isAuthAvailable(auth.getNickname())) {
+ return false;
+ }
+ PlayerAuth newAuth = null;
+ BufferedReader br = null;
+ try {
+ br = new BufferedReader(new FileReader(source));
+ String line = "";
+ while ((line = br.readLine()) != null) {
+ String[] args = line.split(":");
+ if (args[0].equals(auth.getNickname())) {
+ newAuth = new PlayerAuth(args[0], args[1], args[2],
+ Long.parseLong(args[3]),
+ Double.parseDouble(args[4]),
+ Double.parseDouble(args[5]),
+ Double.parseDouble(args[6]), args[7],
+ auth.getEmail(), API.getPlayerRealName(args[0]));
+ break;
+ }
+ }
+ } catch (FileNotFoundException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ return false;
+ } catch (IOException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ return false;
+ } finally {
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException ex) {
+ }
+ }
+ }
+ removeAuth(auth.getNickname());
+ saveAuth(newAuth);
+ return true;
+ }
- @Override
- public boolean updateSalt(PlayerAuth auth) {
- return false;
- }
+ @Override
+ public boolean updateSalt(PlayerAuth auth) {
+ return false;
+ }
- @Override
- public List getAllAuthsByName(PlayerAuth auth) {
+ @Override
+ public List getAllAuthsByName(PlayerAuth auth) {
BufferedReader br = null;
List countIp = new ArrayList();
try {
@@ -535,11 +616,11 @@ public class FlatFileThread extends Thread implements DataSource {
} catch (IOException ex) {
}
}
- }
- }
+ }
+ }
- @Override
- public List getAllAuthsByIp(String ip) {
+ @Override
+ public List getAllAuthsByIp(String ip) {
BufferedReader br = null;
List countIp = new ArrayList();
try {
@@ -566,10 +647,10 @@ public class FlatFileThread extends Thread implements DataSource {
}
}
}
- }
+ }
- @Override
- public List getAllAuthsByEmail(String email) {
+ @Override
+ public List getAllAuthsByEmail(String email) {
BufferedReader br = null;
List countEmail = new ArrayList();
try {
@@ -596,10 +677,10 @@ public class FlatFileThread extends Thread implements DataSource {
}
}
}
- }
+ }
- @Override
- public void purgeBanned(List banned) {
+ @Override
+ public void purgeBanned(List banned) {
BufferedReader br = null;
BufferedWriter bw = null;
ArrayList lines = new ArrayList();
@@ -609,11 +690,12 @@ public class FlatFileThread extends Thread implements DataSource {
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
try {
- if (banned.contains(args[0])) {
- lines.add(line);
- }
- } catch (NullPointerException npe) {}
- catch (ArrayIndexOutOfBoundsException aioobe) {}
+ if (banned.contains(args[0])) {
+ lines.add(line);
+ }
+ } catch (NullPointerException npe) {
+ } catch (ArrayIndexOutOfBoundsException aioobe) {
+ }
}
bw = new BufferedWriter(new FileWriter(source));
for (String l : lines) {
@@ -640,30 +722,30 @@ public class FlatFileThread extends Thread implements DataSource {
}
}
return;
- }
+ }
- @Override
- public DataSourceType getType() {
- return DataSourceType.FILE;
- }
+ @Override
+ public DataSourceType getType() {
+ return DataSourceType.FILE;
+ }
- @Override
- public boolean isLogged(String user) {
- return PlayersLogs.getInstance().players.contains(user.toLowerCase());
- }
+ @Override
+ public boolean isLogged(String user) {
+ return PlayersLogs.getInstance().players.contains(user.toLowerCase());
+ }
- @Override
- public void setLogged(String user) {
- PlayersLogs.getInstance().addPlayer(user);
- }
+ @Override
+ public void setLogged(String user) {
+ PlayersLogs.getInstance().addPlayer(user);
+ }
- @Override
- public void setUnlogged(String user) {
- PlayersLogs.getInstance().removePlayer(user);
- }
+ @Override
+ public void setUnlogged(String user) {
+ PlayersLogs.getInstance().removePlayer(user);
+ }
- @Override
- public void purgeLogged() {
- PlayersLogs.getInstance().clear();
- }
+ @Override
+ public void purgeLogged() {
+ PlayersLogs.getInstance().clear();
+ }
}
diff --git a/src/main/java/fr/xephi/authme/datasource/MiniConnectionPoolManager.java b/src/main/java/fr/xephi/authme/datasource/MiniConnectionPoolManager.java
index 9f8fe6c1..812e6725 100644
--- a/src/main/java/fr/xephi/authme/datasource/MiniConnectionPoolManager.java
+++ b/src/main/java/fr/xephi/authme/datasource/MiniConnectionPoolManager.java
@@ -1,12 +1,14 @@
-// Copyright 2007-2013 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
+// Copyright 2007-2013 Christian d'Heureuse, Inventec Informatik AG, Zurich,
+// Switzerland
// www.source-code.biz, www.inventec.ch/chdh
//
// This module is multi-licensed and may be used under the terms
// of any of the following licenses:
//
-// EPL, Eclipse Public License, http://www.eclipse.org/legal
-// LGPL, GNU Lesser General Public License, http://www.gnu.org/licenses/lgpl.html
-// MPL, Mozilla Public License 1.1, http://www.mozilla.org/MPL
+// EPL, Eclipse Public License, http://www.eclipse.org/legal
+// LGPL, GNU Lesser General Public License,
+// http://www.gnu.org/licenses/lgpl.html
+// MPL, Mozilla Public License 1.1, http://www.mozilla.org/MPL
//
// Please contact the author if you need another license.
// This module is provided "as is", without warranties of any kind.
@@ -25,302 +27,406 @@ import javax.sql.ConnectionPoolDataSource;
import javax.sql.PooledConnection;
/**
-* A lightweight standalone JDBC connection pool manager.
-*
-* The public methods of this class are thread-safe.
-*
-*
Home page: www.source-code.biz/miniconnectionpoolmanager
-* Author: Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
-* Multi-licensed: EPL / LGPL / MPL.
-*/
+ * A lightweight standalone JDBC connection pool manager.
+ *
+ *
+ * The public methods of this class are thread-safe.
+ *
+ *
+ * Home page: www.
+ * source-code.biz/miniconnectionpoolmanager
+ * Author: Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland
+ * Multi-licensed: EPL / LGPL / MPL.
+ */
public class MiniConnectionPoolManager {
-private ConnectionPoolDataSource dataSource;
-private int maxConnections;
-private long timeoutMs;
-private PrintWriter logWriter;
-private Semaphore semaphore;
-private PoolConnectionEventListener poolConnectionEventListener;
+ private ConnectionPoolDataSource dataSource;
+ private int maxConnections;
+ private long timeoutMs;
+ private PrintWriter logWriter;
+ private Semaphore semaphore;
+ private PoolConnectionEventListener poolConnectionEventListener;
-// The following variables must only be accessed within synchronized blocks.
-// @GuardedBy("this") could by used in the future.
-private LinkedList recycledConnections; // list of inactive PooledConnections
-private int activeConnections; // number of active (open) connections of this pool
-private boolean isDisposed; // true if this connection pool has been disposed
-private boolean doPurgeConnection; // flag to purge the connection currently beeing closed instead of recycling it
-private PooledConnection connectionInTransition; // a PooledConnection which is currently within a PooledConnection.getConnection() call, or null
+ // The following variables must only be accessed within synchronized blocks.
+ // @GuardedBy("this") could by used in the future.
+ private LinkedList recycledConnections; // list of
+ // inactive
+ // PooledConnections
+ private int activeConnections; // number of active (open) connections of
+ // this pool
+ private boolean isDisposed; // true if this connection pool has been
+ // disposed
+ private boolean doPurgeConnection; // flag to purge the connection currently
+ // beeing closed instead of recycling it
+ private PooledConnection connectionInTransition; // a PooledConnection which
+ // is currently within a
+ // PooledConnection.getConnection()
+ // call, or null
-/**
-* Thrown in {@link #getConnection()} or {@link #getValidConnection()} when no free connection becomes
-* available within timeout seconds.
-*/
-public static class TimeoutException extends RuntimeException {
- private static final long serialVersionUID = 1;
- public TimeoutException () {
- super("Timeout while waiting for a free database connection."); }
- public TimeoutException (String msg) {
- super(msg); }}
+ /**
+ * Thrown in {@link #getConnection()} or {@link #getValidConnection()} when
+ * no free connection becomes available within timeout seconds.
+ */
+ public static class TimeoutException extends RuntimeException {
+ private static final long serialVersionUID = 1;
-/**
-* Constructs a MiniConnectionPoolManager object with a timeout of 60 seconds.
-*
-* @param dataSource
-* the data source for the connections.
-* @param maxConnections
-* the maximum number of connections.
-*/
-public MiniConnectionPoolManager (ConnectionPoolDataSource dataSource, int maxConnections) {
- this(dataSource, maxConnections, 60); }
+ public TimeoutException() {
+ super("Timeout while waiting for a free database connection.");
+ }
-/**
-* Constructs a MiniConnectionPoolManager object.
-*
-* @param dataSource
-* the data source for the connections.
-* @param maxConnections
-* the maximum number of connections.
-* @param timeout
-* the maximum time in seconds to wait for a free connection.
-*/
-public MiniConnectionPoolManager (ConnectionPoolDataSource dataSource, int maxConnections, int timeout) {
- this.dataSource = dataSource;
- this.maxConnections = maxConnections;
- this.timeoutMs = timeout * 1000L;
- try {
- logWriter = dataSource.getLogWriter(); }
- catch (SQLException e) {}
- if (maxConnections < 1) {
- throw new IllegalArgumentException("Invalid maxConnections value."); }
- semaphore = new Semaphore(maxConnections,true);
- recycledConnections = new LinkedList();
- poolConnectionEventListener = new PoolConnectionEventListener(); }
+ public TimeoutException(String msg) {
+ super(msg);
+ }
+ }
-/**
-* Closes all unused pooled connections.
-*/
-public synchronized void dispose() throws SQLException {
- if (isDisposed) {
- return; }
- isDisposed = true;
- SQLException e = null;
- while (!recycledConnections.isEmpty()) {
- PooledConnection pconn = recycledConnections.remove();
- try {
- pconn.close(); }
- catch (SQLException e2) {
- if (e == null) {
- e = e2; }}}
- if (e != null) {
- throw e; }}
+ /**
+ * Constructs a MiniConnectionPoolManager object with a timeout of 60
+ * seconds.
+ *
+ * @param dataSource
+ * the data source for the connections.
+ * @param maxConnections
+ * the maximum number of connections.
+ */
+ public MiniConnectionPoolManager(ConnectionPoolDataSource dataSource,
+ int maxConnections) {
+ this(dataSource, maxConnections, 60);
+ }
-/**
-* Retrieves a connection from the connection pool.
-*
-* If maxConnections connections are already in use, the method
-* waits until a connection becomes available or timeout seconds elapsed.
-* When the application is finished using the connection, it must close it
-* in order to return it to the pool.
-*
-* @return
-* a new Connection object.
-* @throws TimeoutException
-* when no connection becomes available within timeout seconds.
-*/
-public Connection getConnection() throws SQLException {
- return getConnection2(timeoutMs); }
+ /**
+ * Constructs a MiniConnectionPoolManager object.
+ *
+ * @param dataSource
+ * the data source for the connections.
+ * @param maxConnections
+ * the maximum number of connections.
+ * @param timeout
+ * the maximum time in seconds to wait for a free connection.
+ */
+ public MiniConnectionPoolManager(ConnectionPoolDataSource dataSource,
+ int maxConnections, int timeout) {
+ this.dataSource = dataSource;
+ this.maxConnections = maxConnections;
+ this.timeoutMs = timeout * 1000L;
+ try {
+ logWriter = dataSource.getLogWriter();
+ } catch (SQLException e) {
+ }
+ if (maxConnections < 1) {
+ throw new IllegalArgumentException("Invalid maxConnections value.");
+ }
+ semaphore = new Semaphore(maxConnections, true);
+ recycledConnections = new LinkedList();
+ poolConnectionEventListener = new PoolConnectionEventListener();
+ }
-private Connection getConnection2 (long timeoutMs) throws SQLException {
- // This routine is unsynchronized, because semaphore.tryAcquire() may block.
- synchronized (this) {
- if (isDisposed) {
- throw new IllegalStateException("Connection pool has been disposed."); }}
- try {
- if (!semaphore.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
- throw new TimeoutException(); }}
- catch (InterruptedException e) {
- throw new RuntimeException("Interrupted while waiting for a database connection.",e); }
- boolean ok = false;
- try {
- Connection conn = getConnection3();
- ok = true;
- return conn; }
- finally {
- if (!ok) {
- semaphore.release(); }}}
+ /**
+ * Closes all unused pooled connections.
+ */
+ public synchronized void dispose() throws SQLException {
+ if (isDisposed) {
+ return;
+ }
+ isDisposed = true;
+ SQLException e = null;
+ while (!recycledConnections.isEmpty()) {
+ PooledConnection pconn = recycledConnections.remove();
+ try {
+ pconn.close();
+ } catch (SQLException e2) {
+ if (e == null) {
+ e = e2;
+ }
+ }
+ }
+ if (e != null) {
+ throw e;
+ }
+ }
-private synchronized Connection getConnection3() throws SQLException {
- if (isDisposed) {
- throw new IllegalStateException("Connection pool has been disposed."); }
- PooledConnection pconn;
- if (!recycledConnections.isEmpty()) {
- pconn = recycledConnections.remove(); }
- else {
- pconn = dataSource.getPooledConnection();
- pconn.addConnectionEventListener(poolConnectionEventListener); }
- Connection conn;
- try {
- // The JDBC driver may call ConnectionEventListener.connectionErrorOccurred()
- // from within PooledConnection.getConnection(). To detect this within
- // disposeConnection(), we temporarily set connectionInTransition.
- connectionInTransition = pconn;
- activeConnections++;
- conn = pconn.getConnection(); }
- finally {
- connectionInTransition = null; }
- assertInnerState();
- return conn; }
+ /**
+ * Retrieves a connection from the connection pool.
+ *
+ *
+ * If maxConnections connections are already in use, the method
+ * waits until a connection becomes available or timeout
+ * seconds elapsed. When the application is finished using the connection,
+ * it must close it in order to return it to the pool.
+ *
+ * @return a new Connection object.
+ * @throws TimeoutException
+ * when no connection becomes available within
+ * timeout seconds.
+ */
+ public Connection getConnection() throws SQLException {
+ return getConnection2(timeoutMs);
+ }
-/**
-* Retrieves a connection from the connection pool and ensures that it is valid
-* by calling {@link Connection#isValid(int)}.
-*
-*
If a connection is not valid, the method tries to get another connection
-* until one is valid (or a timeout occurs).
-*
-*
Pooled connections may become invalid when e.g. the database server is
-* restarted.
-*
-*
This method is slower than {@link #getConnection()} because the JDBC
-* driver has to send an extra command to the database server to test the connection.
-*
-*
This method requires Java 1.6 or newer.
-*
-* @throws TimeoutException
-* when no valid connection becomes available within timeout seconds.
-*/
-public Connection getValidConnection() {
- long time = System.currentTimeMillis();
- long timeoutTime = time + timeoutMs;
- int triesWithoutDelay = getInactiveConnections() + 1;
- while (true) {
- Connection conn = getValidConnection2(time, timeoutTime);
- if (conn != null) {
- return conn; }
- triesWithoutDelay--;
- if (triesWithoutDelay <= 0) {
- triesWithoutDelay = 0;
- try {
- Thread.sleep(250); }
- catch (InterruptedException e) {
- throw new RuntimeException("Interrupted while waiting for a valid database connection.", e); }}
- time = System.currentTimeMillis();
- if (time >= timeoutTime) {
- throw new TimeoutException("Timeout while waiting for a valid database connection."); }}}
+ private Connection getConnection2(long timeoutMs) throws SQLException {
+ // This routine is unsynchronized, because semaphore.tryAcquire() may
+ // block.
+ synchronized (this) {
+ if (isDisposed) {
+ throw new IllegalStateException(
+ "Connection pool has been disposed.");
+ }
+ }
+ try {
+ if (!semaphore.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
+ throw new TimeoutException();
+ }
+ } catch (InterruptedException e) {
+ throw new RuntimeException(
+ "Interrupted while waiting for a database connection.", e);
+ }
+ boolean ok = false;
+ try {
+ Connection conn = getConnection3();
+ ok = true;
+ return conn;
+ } finally {
+ if (!ok) {
+ semaphore.release();
+ }
+ }
+ }
-private Connection getValidConnection2 (long time, long timeoutTime) {
- long rtime = Math.max(1, timeoutTime - time);
- Connection conn;
- try {
- conn = getConnection2(rtime); }
- catch (SQLException e) {
- return null; }
- rtime = timeoutTime - System.currentTimeMillis();
- int rtimeSecs = Math.max(1, (int)((rtime+999)/1000));
- try {
- if (conn.isValid(rtimeSecs)) {
- return conn; }}
- catch (SQLException e) {}
- // This Exception should never occur. If it nevertheless occurs, it's because of an error in the
- // JDBC driver which we ignore and assume that the connection is not valid.
- // When isValid() returns false, the JDBC driver should have already called connectionErrorOccurred()
- // and the PooledConnection has been removed from the pool, i.e. the PooledConnection will
- // not be added to recycledConnections when Connection.close() is called.
- // But to be sure that this works even with a faulty JDBC driver, we call purgeConnection().
- purgeConnection(conn);
- return null; }
+ private synchronized Connection getConnection3() throws SQLException {
+ if (isDisposed) {
+ throw new IllegalStateException(
+ "Connection pool has been disposed.");
+ }
+ PooledConnection pconn;
+ if (!recycledConnections.isEmpty()) {
+ pconn = recycledConnections.remove();
+ } else {
+ pconn = dataSource.getPooledConnection();
+ pconn.addConnectionEventListener(poolConnectionEventListener);
+ }
+ Connection conn;
+ try {
+ // The JDBC driver may call
+ // ConnectionEventListener.connectionErrorOccurred()
+ // from within PooledConnection.getConnection(). To detect this
+ // within
+ // disposeConnection(), we temporarily set connectionInTransition.
+ connectionInTransition = pconn;
+ activeConnections++;
+ conn = pconn.getConnection();
+ } finally {
+ connectionInTransition = null;
+ }
+ assertInnerState();
+ return conn;
+ }
-// Purges the PooledConnection associated with the passed Connection from the connection pool.
-private synchronized void purgeConnection (Connection conn) {
- try {
- doPurgeConnection = true;
- // (A potential problem of this program logic is that setting the doPurgeConnection flag
- // has an effect only if the JDBC driver calls connectionClosed() synchronously within
- // Connection.close().)
- conn.close(); }
- catch (SQLException e) {}
- // ignore exception from close()
- finally {
- doPurgeConnection = false; }}
+ /**
+ * Retrieves a connection from the connection pool and ensures that it is
+ * valid by calling {@link Connection#isValid(int)}.
+ *
+ *
+ * If a connection is not valid, the method tries to get another connection
+ * until one is valid (or a timeout occurs).
+ *
+ *
+ * Pooled connections may become invalid when e.g. the database server is
+ * restarted.
+ *
+ *
+ * This method is slower than {@link #getConnection()} because the JDBC
+ * driver has to send an extra command to the database server to test the
+ * connection.
+ *
+ *
+ * This method requires Java 1.6 or newer.
+ *
+ * @throws TimeoutException
+ * when no valid connection becomes available within
+ * timeout seconds.
+ */
+ public Connection getValidConnection() {
+ long time = System.currentTimeMillis();
+ long timeoutTime = time + timeoutMs;
+ int triesWithoutDelay = getInactiveConnections() + 1;
+ while (true) {
+ Connection conn = getValidConnection2(time, timeoutTime);
+ if (conn != null) {
+ return conn;
+ }
+ triesWithoutDelay--;
+ if (triesWithoutDelay <= 0) {
+ triesWithoutDelay = 0;
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(
+ "Interrupted while waiting for a valid database connection.",
+ e);
+ }
+ }
+ time = System.currentTimeMillis();
+ if (time >= timeoutTime) {
+ throw new TimeoutException(
+ "Timeout while waiting for a valid database connection.");
+ }
+ }
+ }
-private synchronized void recycleConnection (PooledConnection pconn) {
- if (isDisposed || doPurgeConnection) {
- disposeConnection(pconn);
- return; }
- if (activeConnections <= 0) {
- throw new AssertionError("AuthMeDatabaseError"); }
- activeConnections--;
- semaphore.release();
- recycledConnections.add(pconn);
- assertInnerState(); }
+ private Connection getValidConnection2(long time, long timeoutTime) {
+ long rtime = Math.max(1, timeoutTime - time);
+ Connection conn;
+ try {
+ conn = getConnection2(rtime);
+ } catch (SQLException e) {
+ return null;
+ }
+ rtime = timeoutTime - System.currentTimeMillis();
+ int rtimeSecs = Math.max(1, (int) ((rtime + 999) / 1000));
+ try {
+ if (conn.isValid(rtimeSecs)) {
+ return conn;
+ }
+ } catch (SQLException e) {
+ }
+ // This Exception should never occur. If it nevertheless occurs, it's
+ // because of an error in the
+ // JDBC driver which we ignore and assume that the connection is not
+ // valid.
+ // When isValid() returns false, the JDBC driver should have already
+ // called connectionErrorOccurred()
+ // and the PooledConnection has been removed from the pool, i.e. the
+ // PooledConnection will
+ // not be added to recycledConnections when Connection.close() is
+ // called.
+ // But to be sure that this works even with a faulty JDBC driver, we
+ // call purgeConnection().
+ purgeConnection(conn);
+ return null;
+ }
-private synchronized void disposeConnection (PooledConnection pconn) {
- pconn.removeConnectionEventListener(poolConnectionEventListener);
- if (!recycledConnections.remove(pconn) && pconn != connectionInTransition) {
- // If the PooledConnection is not in the recycledConnections list
- // and is not currently within a PooledConnection.getConnection() call,
- // we assume that the connection was active.
- if (activeConnections <= 0) {
- throw new AssertionError("AuthMeDatabaseError"); }
- activeConnections--;
- semaphore.release(); }
- closeConnectionAndIgnoreException(pconn);
- assertInnerState(); }
+ // Purges the PooledConnection associated with the passed Connection from
+ // the connection pool.
+ private synchronized void purgeConnection(Connection conn) {
+ try {
+ doPurgeConnection = true;
+ // (A potential problem of this program logic is that setting the
+ // doPurgeConnection flag
+ // has an effect only if the JDBC driver calls connectionClosed()
+ // synchronously within
+ // Connection.close().)
+ conn.close();
+ } catch (SQLException e) {
+ }
+ // ignore exception from close()
+ finally {
+ doPurgeConnection = false;
+ }
+ }
-private void closeConnectionAndIgnoreException (PooledConnection pconn) {
- try {
- pconn.close(); }
- catch (SQLException e) {
- log("Error while closing database connection: "+e.toString()); }}
+ private synchronized void recycleConnection(PooledConnection pconn) {
+ if (isDisposed || doPurgeConnection) {
+ disposeConnection(pconn);
+ return;
+ }
+ if (activeConnections <= 0) {
+ throw new AssertionError("AuthMeDatabaseError");
+ }
+ activeConnections--;
+ semaphore.release();
+ recycledConnections.add(pconn);
+ assertInnerState();
+ }
-private void log (String msg) {
- String s = "MiniConnectionPoolManager: "+msg;
- try {
- if (logWriter == null) {
- System.err.println(s); }
- else {
- logWriter.println(s); }}
- catch (Exception e) {}}
+ private synchronized void disposeConnection(PooledConnection pconn) {
+ pconn.removeConnectionEventListener(poolConnectionEventListener);
+ if (!recycledConnections.remove(pconn)
+ && pconn != connectionInTransition) {
+ // If the PooledConnection is not in the recycledConnections list
+ // and is not currently within a PooledConnection.getConnection()
+ // call,
+ // we assume that the connection was active.
+ if (activeConnections <= 0) {
+ throw new AssertionError("AuthMeDatabaseError");
+ }
+ activeConnections--;
+ semaphore.release();
+ }
+ closeConnectionAndIgnoreException(pconn);
+ assertInnerState();
+ }
-private synchronized void assertInnerState() {
- if (activeConnections < 0) {
- throw new AssertionError("AuthMeDatabaseError"); }
- if (activeConnections + recycledConnections.size() > maxConnections) {
- throw new AssertionError("AuthMeDatabaseError"); }
- if (activeConnections + semaphore.availablePermits() > maxConnections) {
- throw new AssertionError("AuthMeDatabaseError"); }}
+ private void closeConnectionAndIgnoreException(PooledConnection pconn) {
+ try {
+ pconn.close();
+ } catch (SQLException e) {
+ log("Error while closing database connection: " + e.toString());
+ }
+ }
-private class PoolConnectionEventListener implements ConnectionEventListener {
- public void connectionClosed (ConnectionEvent event) {
- PooledConnection pconn = (PooledConnection)event.getSource();
- recycleConnection(pconn); }
- public void connectionErrorOccurred (ConnectionEvent event) {
- PooledConnection pconn = (PooledConnection)event.getSource();
- disposeConnection(pconn); }}
+ private void log(String msg) {
+ String s = "MiniConnectionPoolManager: " + msg;
+ try {
+ if (logWriter == null) {
+ System.err.println(s);
+ } else {
+ logWriter.println(s);
+ }
+ } catch (Exception e) {
+ }
+ }
-/**
-* Returns the number of active (open) connections of this pool.
-*
-*
This is the number of Connection objects that have been
-* issued by {@link #getConnection()}, for which Connection.close()
-* has not yet been called.
-*
-* @return
-* the number of active connections.
-**/
-public synchronized int getActiveConnections() {
- return activeConnections; }
+ private synchronized void assertInnerState() {
+ if (activeConnections < 0) {
+ throw new AssertionError("AuthMeDatabaseError");
+ }
+ if (activeConnections + recycledConnections.size() > maxConnections) {
+ throw new AssertionError("AuthMeDatabaseError");
+ }
+ if (activeConnections + semaphore.availablePermits() > maxConnections) {
+ throw new AssertionError("AuthMeDatabaseError");
+ }
+ }
-/**
-* Returns the number of inactive (unused) connections in this pool.
-*
-*
This is the number of internally kept recycled connections,
-* for which Connection.close() has been called and which
-* have not yet been reused.
-*
-* @return
-* the number of inactive connections.
-**/
-public synchronized int getInactiveConnections() {
- return recycledConnections.size(); }
+ private class PoolConnectionEventListener implements
+ ConnectionEventListener {
+ public void connectionClosed(ConnectionEvent event) {
+ PooledConnection pconn = (PooledConnection) event.getSource();
+ recycleConnection(pconn);
+ }
-} // end class MiniConnectionPoolManager
\ No newline at end of file
+ public void connectionErrorOccurred(ConnectionEvent event) {
+ PooledConnection pconn = (PooledConnection) event.getSource();
+ disposeConnection(pconn);
+ }
+ }
+
+ /**
+ * Returns the number of active (open) connections of this pool.
+ *
+ *
+ * This is the number of Connection objects that have been
+ * issued by {@link #getConnection()}, for which
+ * Connection.close() has not yet been called.
+ *
+ * @return the number of active connections.
+ **/
+ public synchronized int getActiveConnections() {
+ return activeConnections;
+ }
+
+ /**
+ * Returns the number of inactive (unused) connections in this pool.
+ *
+ *
+ * This is the number of internally kept recycled connections, for which
+ * Connection.close() has been called and which have not yet
+ * been reused.
+ *
+ * @return the number of inactive connections.
+ **/
+ public synchronized int getInactiveConnections() {
+ return recycledConnections.size();
+ }
+
+} // end class MiniConnectionPoolManager
diff --git a/src/main/java/fr/xephi/authme/datasource/MySQLThread.java b/src/main/java/fr/xephi/authme/datasource/MySQLThread.java
index 68317cc1..426812b1 100644
--- a/src/main/java/fr/xephi/authme/datasource/MySQLThread.java
+++ b/src/main/java/fr/xephi/authme/datasource/MySQLThread.java
@@ -65,39 +65,43 @@ public class MySQLThread extends Thread implements DataSource {
this.columnID = Settings.getMySQLColumnId;
this.columnLogged = Settings.getMySQLColumnLogged;
try {
- this.connect();
- this.setup();
- } catch (ClassNotFoundException e) {
+ this.connect();
+ this.setup();
+ } catch (ClassNotFoundException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger
+ .showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- } catch (SQLException e) {
+ } catch (SQLException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger
+ .showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- } catch (TimeoutException e) {
+ } catch (TimeoutException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger
+ .showError("Can't use MySQL... Please input correct MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- }
+ }
}
- private synchronized void connect() throws ClassNotFoundException, SQLException, TimeoutException {
+ private synchronized void connect() throws ClassNotFoundException,
+ SQLException, TimeoutException {
Class.forName("com.mysql.jdbc.Driver");
ConsoleLogger.info("MySQL driver loaded");
MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource();
@@ -118,19 +122,22 @@ public class MySQLThread extends Thread implements DataSource {
con = makeSureConnectionIsReady();
st = con.createStatement();
st.executeUpdate("CREATE TABLE IF NOT EXISTS " + tableName + " ("
- + columnID + " INTEGER AUTO_INCREMENT,"
- + columnName + " VARCHAR(255) NOT NULL UNIQUE,"
- + columnPassword + " VARCHAR(255) NOT NULL,"
- + columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
- + columnLastLogin + " BIGINT NOT NULL DEFAULT '" + System.currentTimeMillis() + "',"
- + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
- + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
- + columnLogged + " SMALLINT NOT NULL DEFAULT '0',"
- + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
- rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
+ + columnID + " INTEGER AUTO_INCREMENT," + columnName
+ + " VARCHAR(255) NOT NULL UNIQUE," + columnPassword
+ + " VARCHAR(255) NOT NULL," + columnIp
+ + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
+ + columnLastLogin + " BIGINT NOT NULL DEFAULT '"
+ + System.currentTimeMillis() + "'," + lastlocX
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocY
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocZ
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocWorld
+ + " VARCHAR(255) DEFAULT 'world'," + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com'," + columnLogged
+ + " SMALLINT NOT NULL DEFAULT '0',"
+ + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID
+ + "));");
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnPassword);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnPassword + " VARCHAR(255) NOT NULL;");
@@ -142,7 +149,8 @@ public class MySQLThread extends Thread implements DataSource {
+ columnIp + " VARCHAR(40) NOT NULL;");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnLastLogin);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnLastLogin);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnLastLogin + " BIGINT;");
@@ -150,28 +158,48 @@ public class MySQLThread extends Thread implements DataSource {
rs.close();
rs = con.getMetaData().getColumns(null, null, tableName, lastlocX);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0' AFTER "
- + columnLastLogin +" , ADD " + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0' AFTER " + lastlocX + " , ADD " + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0' AFTER " + lastlocY + ";");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0' AFTER "
+ + columnLastLogin + " , ADD " + lastlocY
+ + " DOUBLE NOT NULL DEFAULT '0.0' AFTER " + lastlocX
+ + " , ADD " + lastlocZ
+ + " DOUBLE NOT NULL DEFAULT '0.0' AFTER " + lastlocY
+ + ";");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, lastlocWorld);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ lastlocWorld);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocWorld + " VARCHAR(255) NOT NULL DEFAULT 'world' AFTER " + lastlocZ + ";");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocWorld
+ + " VARCHAR(255) NOT NULL DEFAULT 'world' AFTER "
+ + lastlocZ + ";");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnEmail);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnEmail);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com' AFTER " + lastlocWorld +";");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com' AFTER "
+ + lastlocWorld + ";");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnLogged);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnLogged);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + columnLogged + " SMALLINT NOT NULL DEFAULT '0' AFTER " + columnEmail +";");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + columnLogged
+ + " SMALLINT NOT NULL DEFAULT '0' AFTER " + columnEmail
+ + ";");
}
rs.close();
rs = con.getMetaData().getColumns(null, null, tableName, lastlocX);
if (rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " MODIFY " + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0', MODIFY " + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0', MODIFY " + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0';");
+ st.executeUpdate("ALTER TABLE " + tableName + " MODIFY "
+ + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0', MODIFY "
+ + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0', MODIFY "
+ + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0';");
}
} finally {
close(rs);
@@ -188,8 +216,8 @@ public class MySQLThread extends Thread implements DataSource {
try {
con = makeSureConnectionIsReady();
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
- + columnName + "=?;");
-
+ + columnName + "=?;");
+
pst.setString(1, user);
rs = pst.executeQuery();
return rs.next();
@@ -220,21 +248,56 @@ public class MySQLThread extends Thread implements DataSource {
pst.setString(1, user);
rs = pst.executeQuery();
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), API.getPlayerRealName(rs.getString(columnName)));
+ 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), API.getPlayerRealName(rs
+ .getString(columnName)));
} 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), API.getPlayerRealName(rs.getString(columnName)));
- 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), API.getPlayerRealName(rs.getString(columnName)));
- } 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), API.getPlayerRealName(rs.getString(columnName)));
- }
- }
+ 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),
+ API.getPlayerRealName(rs.getString(columnName)));
+ 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),
+ API.getPlayerRealName(rs.getString(columnName)));
+ } 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),
+ API.getPlayerRealName(rs.getString(columnName)));
+ }
+ }
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {
rs.close();
- pst = con.prepareStatement("SELECT * FROM xf_user_authenticate WHERE " + columnID + "=?;");
+ pst = con
+ .prepareStatement("SELECT * FROM xf_user_authenticate WHERE "
+ + columnID + "=?;");
pst.setInt(1, id);
rs = pst.executeQuery();
if (rs.next()) {
@@ -266,15 +329,21 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- if ((columnSalt == null || columnSalt.isEmpty()) || (auth.getSalt() == null || auth.getSalt().isEmpty())) {
- pst = con.prepareStatement("INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + ") VALUES (?,?,?,?);");
+ if ((columnSalt == null || columnSalt.isEmpty())
+ || (auth.getSalt() == null || auth.getSalt().isEmpty())) {
+ pst = con.prepareStatement("INSERT INTO " + tableName + "("
+ + columnName + "," + columnPassword + "," + columnIp
+ + "," + columnLastLogin + ") VALUES (?,?,?,?);");
pst.setString(1, auth.getNickname());
pst.setString(2, auth.getHash());
pst.setString(3, auth.getIp());
pst.setLong(4, auth.getLastLogin());
pst.executeUpdate();
} else {
- pst = con.prepareStatement("INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + columnSalt + ") VALUES (?,?,?,?,?);");
+ pst = con.prepareStatement("INSERT INTO " + tableName + "("
+ + columnName + "," + columnPassword + "," + columnIp
+ + "," + columnLastLogin + "," + columnSalt
+ + ") VALUES (?,?,?,?,?);");
pst.setString(1, auth.getNickname());
pst.setString(2, auth.getHash());
pst.setString(3, auth.getIp());
@@ -283,139 +352,189 @@ public class MySQLThread extends Thread implements DataSource {
pst.executeUpdate();
}
if (!columnOthers.isEmpty()) {
- for(String column : columnOthers) {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + column + "=? WHERE " + columnName + "=?;");
+ for (String column : columnOthers) {
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + column + "=? WHERE " + columnName + "=?;");
pst.setString(1, auth.getRealname());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
- }
+ }
}
if (Settings.getPasswordHash == HashAlgorithm.PHPBB) {
- int id;
+ int id;
ResultSet rs = null;
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("SELECT * FROM " + tableName
+ + " WHERE " + columnName + "=?;");
pst.setString(1, auth.getNickname());
rs = pst.executeQuery();
if (rs.next()) {
- id = rs.getInt(columnID);
- // Insert player in phpbb_user_group
- pst = con.prepareStatement("INSERT INTO " + Settings.getPhpbbPrefix + "user_group (group_id, user_id, group_leader, user_pending) VALUES (?,?,?,?);");
- pst.setInt(1, Settings.getPhpbbGroup);
- pst.setInt(2, id);
- pst.setInt(3, 0);
- pst.setInt(4, 0);
- pst.executeUpdate();
- // Update player group in phpbb_users
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + tableName + ".group_id=? WHERE " + columnName + "=?;");
+ id = rs.getInt(columnID);
+ // Insert player in phpbb_user_group
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getPhpbbPrefix
+ + "user_group (group_id, user_id, group_leader, user_pending) VALUES (?,?,?,?);");
+ pst.setInt(1, Settings.getPhpbbGroup);
+ pst.setInt(2, id);
+ pst.setInt(3, 0);
+ pst.setInt(4, 0);
+ pst.executeUpdate();
+ // Update player group in phpbb_users
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + tableName + ".group_id=? WHERE " + columnName
+ + "=?;");
pst.setInt(1, Settings.getPhpbbGroup);
pst.setString(2, auth.getNickname());
pst.executeUpdate();
// Get current time without ms
- long time = System.currentTimeMillis()/1000;
+ long time = System.currentTimeMillis() / 1000;
// Update user_regdate
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + tableName + ".user_regdate=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + tableName + ".user_regdate=? WHERE " + columnName
+ + "=?;");
pst.setLong(1, time);
pst.setString(2, auth.getNickname());
pst.executeUpdate();
// Update user_lastvisit
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + tableName + ".user_lastvisit=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + tableName + ".user_lastvisit=? WHERE "
+ + columnName + "=?;");
pst.setLong(1, time);
pst.setString(2, auth.getNickname());
pst.executeUpdate();
}
}
if (Settings.getPasswordHash == HashAlgorithm.WORDPRESS) {
- int id;
+ int id;
ResultSet rs = null;
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("SELECT * FROM " + tableName
+ + " WHERE " + columnName + "=?;");
pst.setString(1, auth.getNickname());
rs = pst.executeQuery();
if (rs.next()) {
- id = rs.getInt(columnID);
- // First Name
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "first_name");
- pst.setString(3, "");
- pst.executeUpdate();
- // Last Name
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "last_name");
- pst.setString(3, "");
- pst.executeUpdate();
- // Nick Name
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "nickname");
- pst.setString(3, auth.getNickname());
- pst.executeUpdate();
- // Description
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "description");
- pst.setString(3, "");
- pst.executeUpdate();
- // Rich_Editing
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "rich_editing");
- pst.setString(3, "true");
- pst.executeUpdate();
- // Comments_Shortcuts
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "comment_shortcuts");
- pst.setString(3, "false");
- pst.executeUpdate();
- // admin_color
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "admin_color");
- pst.setString(3, "fresh");
- pst.executeUpdate();
- // use_ssl
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "use_ssl");
- pst.setString(3, "0");
- pst.executeUpdate();
- // show_admin_bar_front
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "show_admin_bar_front");
- pst.setString(3, "true");
- pst.executeUpdate();
- // wp_capabilities
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "wp_capabilities");
- pst.setString(3, "a:1:{s:10:\"subscriber\";b:1;}");
- pst.executeUpdate();
- // wp_user_level
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "wp_user_level");
- pst.setString(3, "0");
- pst.executeUpdate();
- // default_password_nag
- pst = con.prepareStatement("INSERT INTO " + Settings.getWordPressPrefix + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
- pst.setInt(1, id);
- pst.setString(2, "default_password_nag");
- pst.setString(3, "");
- pst.executeUpdate();
+ id = rs.getInt(columnID);
+ // First Name
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "first_name");
+ pst.setString(3, "");
+ pst.executeUpdate();
+ // Last Name
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "last_name");
+ pst.setString(3, "");
+ pst.executeUpdate();
+ // Nick Name
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "nickname");
+ pst.setString(3, auth.getNickname());
+ pst.executeUpdate();
+ // Description
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "description");
+ pst.setString(3, "");
+ pst.executeUpdate();
+ // Rich_Editing
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "rich_editing");
+ pst.setString(3, "true");
+ pst.executeUpdate();
+ // Comments_Shortcuts
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "comment_shortcuts");
+ pst.setString(3, "false");
+ pst.executeUpdate();
+ // admin_color
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "admin_color");
+ pst.setString(3, "fresh");
+ pst.executeUpdate();
+ // use_ssl
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "use_ssl");
+ pst.setString(3, "0");
+ pst.executeUpdate();
+ // show_admin_bar_front
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "show_admin_bar_front");
+ pst.setString(3, "true");
+ pst.executeUpdate();
+ // wp_capabilities
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "wp_capabilities");
+ pst.setString(3, "a:1:{s:10:\"subscriber\";b:1;}");
+ pst.executeUpdate();
+ // wp_user_level
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "wp_user_level");
+ pst.setString(3, "0");
+ pst.executeUpdate();
+ // default_password_nag
+ pst = con
+ .prepareStatement("INSERT INTO "
+ + Settings.getWordPressPrefix
+ + "usermeta (user_id, meta_key, meta_value) VALUES (?,?,?);");
+ pst.setInt(1, id);
+ pst.setString(2, "default_password_nag");
+ pst.setString(3, "");
+ pst.executeUpdate();
}
}
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {
int id;
ResultSet rs = null;
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("SELECT * FROM " + tableName
+ + " WHERE " + columnName + "=?;");
pst.setString(1, auth.getNickname());
rs = pst.executeQuery();
if (rs.next()) {
id = rs.getInt(columnID);
// Insert password in the correct table
- pst = con.prepareStatement("INSERT INTO xf_user_authenticate (user_id, scheme_class, data) VALUES (?,?,?);");
+ pst = con
+ .prepareStatement("INSERT INTO xf_user_authenticate (user_id, scheme_class, data) VALUES (?,?,?);");
pst.setInt(1, id);
pst.setString(2, "XenForo_Authentication_Core12");
byte[] bytes = auth.getHash().getBytes();
@@ -444,28 +563,34 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnPassword + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnPassword + "=? WHERE " + columnName + "=?;");
pst.setString(1, auth.getHash());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {
- int id;
+ int id;
ResultSet rs = null;
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("SELECT * FROM " + tableName
+ + " WHERE " + columnName + "=?;");
pst.setString(1, auth.getNickname());
rs = pst.executeQuery();
if (rs.next()) {
- id = rs.getInt(columnID);
- // Insert password in the correct table
- pst = con.prepareStatement("UPDATE xf_user_authenticate SET data=? WHERE " + columnID + "=?;");
+ id = rs.getInt(columnID);
+ // Insert password in the correct table
+ pst = con
+ .prepareStatement("UPDATE xf_user_authenticate SET data=? WHERE "
+ + columnID + "=?;");
byte[] bytes = auth.getHash().getBytes();
Blob blob = con.createBlob();
blob.setBytes(1, bytes);
pst.setBlob(1, blob);
- pst.setInt(2, id);
- pst.executeUpdate();
- pst = con.prepareStatement("UPDATE xf_user_authenticate SET scheme_class=? WHERE " + columnID + "=?;");
- pst.setString(1, "XenForo_Authentication_Core12");
+ pst.setInt(2, id);
+ pst.executeUpdate();
+ pst = con
+ .prepareStatement("UPDATE xf_user_authenticate SET scheme_class=? WHERE "
+ + columnID + "=?;");
+ pst.setString(1, "XenForo_Authentication_Core12");
pst.setInt(2, id);
pst.executeUpdate();
}
@@ -489,7 +614,9 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnIp + "=?, " + columnLastLogin + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnIp + "=?, " + columnLastLogin + "=? WHERE "
+ + columnName + "=?;");
pst.setString(1, auth.getIp());
pst.setLong(2, auth.getLastLogin());
pst.setString(3, auth.getNickname());
@@ -513,7 +640,8 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnLastLogin + ";");
+ pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE "
+ + columnLastLogin + ";");
pst.setLong(1, until);
return pst.executeUpdate();
} catch (SQLException ex) {
@@ -536,13 +664,15 @@ public class MySQLThread extends Thread implements DataSource {
List list = new ArrayList();
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnLastLogin + ";");
+ pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ + columnLastLogin + ";");
pst.setLong(1, until);
rs = pst.executeQuery();
while (rs.next()) {
- list.add(rs.getString(columnName));
+ list.add(rs.getString(columnName));
}
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnLastLogin + ";");
+ pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE "
+ + columnLastLogin + ";");
pst.setLong(1, until);
pst.executeUpdate();
return list;
@@ -553,7 +683,7 @@ public class MySQLThread extends Thread implements DataSource {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
} finally {
- close(rs);
+ close(rs);
close(pst);
close(con);
}
@@ -566,19 +696,23 @@ public class MySQLThread extends Thread implements DataSource {
try {
con = makeSureConnectionIsReady();
if (Settings.getPasswordHash == HashAlgorithm.XENFORO) {
- int id;
+ int id;
ResultSet rs = null;
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("SELECT * FROM " + tableName
+ + " WHERE " + columnName + "=?;");
pst.setString(1, user);
rs = pst.executeQuery();
if (rs.next()) {
- id = rs.getInt(columnID);
- // Remove data
- pst = con.prepareStatement("DELETE FROM xf_user_authenticate WHERE " + columnID + "=?;");
- pst.setInt(1, id);
+ id = rs.getInt(columnID);
+ // Remove data
+ pst = con
+ .prepareStatement("DELETE FROM xf_user_authenticate WHERE "
+ + columnID + "=?;");
+ pst.setInt(1, id);
}
}
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE "
+ + columnName + "=?;");
pst.setString(1, user);
pst.executeUpdate();
} catch (SQLException ex) {
@@ -600,7 +734,9 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET "+ lastlocX + " =?, "+ lastlocY +"=?, "+ lastlocZ +"=?, " + lastlocWorld + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + lastlocX + " =?, " + lastlocY + "=?, " + lastlocZ
+ + "=?, " + lastlocWorld + "=? WHERE " + columnName + "=?;");
pst.setDouble(1, auth.getQuitLocX());
pst.setDouble(2, auth.getQuitLocY());
pst.setDouble(3, auth.getQuitLocZ());
@@ -625,17 +761,17 @@ public class MySQLThread extends Thread implements DataSource {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
- int countIp=0;
+ int countIp = 0;
try {
con = makeSureConnectionIsReady();
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ columnIp + "=?;");
pst.setString(1, ip);
rs = pst.executeQuery();
- while(rs.next()) {
- countIp++;
- }
- return countIp;
+ while (rs.next()) {
+ countIp++;
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return 0;
@@ -646,7 +782,7 @@ public class MySQLThread extends Thread implements DataSource {
close(rs);
close(pst);
close(con);
- }
+ }
}
@Override
@@ -655,7 +791,8 @@ public class MySQLThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET "+ columnEmail + " =? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnEmail + " =? WHERE " + columnName + "=?;");
pst.setString(1, auth.getEmail());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
@@ -673,15 +810,16 @@ public class MySQLThread extends Thread implements DataSource {
}
@Override
- public synchronized boolean updateSalt(PlayerAuth auth) {
- if (columnSalt.isEmpty()) {
- return false;
- }
+ public synchronized boolean updateSalt(PlayerAuth auth) {
+ if (columnSalt.isEmpty()) {
+ return false;
+ }
Connection con = null;
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET "+ columnSalt + " =? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnSalt + " =? WHERE " + columnName + "=?;");
pst.setString(1, auth.getSalt());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
@@ -709,17 +847,18 @@ public class MySQLThread extends Thread implements DataSource {
@Override
public void reload() {
- try {
- reconnect(true);
- } catch (Exception e) {
+ try {
+ reconnect(true);
+ } catch (Exception e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger
+ .showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
- }
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
+ }
}
private void close(Statement st) {
@@ -753,7 +892,7 @@ public class MySQLThread extends Thread implements DataSource {
}
@Override
- public synchronized List getAllAuthsByName(PlayerAuth auth) {
+ public synchronized List getAllAuthsByName(PlayerAuth auth) {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
@@ -764,10 +903,10 @@ public class MySQLThread extends Thread implements DataSource {
+ columnIp + "=?;");
pst.setString(1, auth.getIp());
rs = pst.executeQuery();
- while(rs.next()) {
- countIp.add(rs.getString(columnName));
- }
- return countIp;
+ while (rs.next()) {
+ countIp.add(rs.getString(columnName));
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -778,11 +917,11 @@ public class MySQLThread extends Thread implements DataSource {
close(rs);
close(pst);
close(con);
- }
- }
+ }
+ }
@Override
- public synchronized List getAllAuthsByIp(String ip) {
+ public synchronized List getAllAuthsByIp(String ip) {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
@@ -793,10 +932,10 @@ public class MySQLThread extends Thread implements DataSource {
+ columnIp + "=?;");
pst.setString(1, ip);
rs = pst.executeQuery();
- while(rs.next()) {
- countIp.add(rs.getString(columnName));
- }
- return countIp;
+ while (rs.next()) {
+ countIp.add(rs.getString(columnName));
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -807,11 +946,11 @@ public class MySQLThread extends Thread implements DataSource {
close(rs);
close(pst);
close(con);
- }
- }
+ }
+ }
@Override
- public synchronized List getAllAuthsByEmail(String email) {
+ public synchronized List getAllAuthsByEmail(String email) {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
@@ -822,10 +961,10 @@ public class MySQLThread extends Thread implements DataSource {
+ columnEmail + "=?;");
pst.setString(1, email);
rs = pst.executeQuery();
- while(rs.next()) {
- countEmail.add(rs.getString(columnName));
- }
- return countEmail;
+ while (rs.next()) {
+ countEmail.add(rs.getString(columnName));
+ }
+ return countEmail;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -836,69 +975,73 @@ public class MySQLThread extends Thread implements DataSource {
close(rs);
close(pst);
close(con);
- }
- }
+ }
+ }
@Override
- public synchronized void purgeBanned(List banned) {
+ public synchronized void purgeBanned(List banned) {
Connection con = null;
PreparedStatement pst = null;
try {
- for (String name : banned) {
- con = makeSureConnectionIsReady();
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
- pst.setString(1, name);
- pst.executeUpdate();
- }
+ for (String name : banned) {
+ con = makeSureConnectionIsReady();
+ pst = con.prepareStatement("DELETE FROM " + tableName
+ + " WHERE " + columnName + "=?;");
+ pst.setString(1, name);
+ pst.executeUpdate();
+ }
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
} finally {
close(pst);
close(con);
}
- }
-
- private synchronized Connection makeSureConnectionIsReady() {
- Connection con = null;
- try {
- con = conPool.getValidConnection();
- } catch (Exception te) {
- try {
- con = null;
- reconnect(false);
- } catch (Exception e) {
- ConsoleLogger.showError(e.getMessage());
- if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
- }
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
- }
- } catch (AssertionError ae) {
- // Make sure assertionerror is caused by the connectionpoolmanager, else re-throw it
- if (!ae.getMessage().equalsIgnoreCase("AuthMeDatabaseError"))
- throw new AssertionError(ae.getMessage());
- try {
- con = null;
- reconnect(false);
- } catch (Exception e) {
- ConsoleLogger.showError(e.getMessage());
- if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
- }
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
- }
- }
- if (con == null)
- con = conPool.getValidConnection();
- return con;
}
- private synchronized void reconnect(boolean reload) throws ClassNotFoundException, SQLException, TimeoutException {
- conPool.dispose();
+ private synchronized Connection makeSureConnectionIsReady() {
+ Connection con = null;
+ try {
+ con = conPool.getValidConnection();
+ } catch (Exception te) {
+ try {
+ con = null;
+ reconnect(false);
+ } catch (Exception e) {
+ ConsoleLogger.showError(e.getMessage());
+ if (Settings.isStopEnabled) {
+ ConsoleLogger
+ .showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
+ }
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
+ }
+ } catch (AssertionError ae) {
+ // Make sure assertionerror is caused by the connectionpoolmanager,
+ // else re-throw it
+ if (!ae.getMessage().equalsIgnoreCase("AuthMeDatabaseError")) throw new AssertionError(
+ ae.getMessage());
+ try {
+ con = null;
+ reconnect(false);
+ } catch (Exception e) {
+ ConsoleLogger.showError(e.getMessage());
+ if (Settings.isStopEnabled) {
+ ConsoleLogger
+ .showError("Can't reconnect to MySQL database... Please check your MySQL informations ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
+ }
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
+ }
+ }
+ if (con == null) con = conPool.getValidConnection();
+ return con;
+ }
+
+ private synchronized void reconnect(boolean reload)
+ throws ClassNotFoundException, SQLException, TimeoutException {
+ conPool.dispose();
Class.forName("com.mysql.jdbc.Driver");
MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource();
dataSource.setDatabaseName(database);
@@ -907,17 +1050,17 @@ public class MySQLThread extends Thread implements DataSource {
dataSource.setUser(username);
dataSource.setPassword(password);
conPool = new MiniConnectionPoolManager(dataSource, 10);
- if (!reload)
- ConsoleLogger.info("ConnectionPool was unavailable... Reconnected!");
+ if (!reload) ConsoleLogger
+ .info("ConnectionPool was unavailable... Reconnected!");
}
- @Override
- public DataSourceType getType() {
- return DataSourceType.MYSQL;
- }
+ @Override
+ public DataSourceType getType() {
+ return DataSourceType.MYSQL;
+ }
- @Override
- public boolean isLogged(String user) {
+ @Override
+ public boolean isLogged(String user) {
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
@@ -927,8 +1070,7 @@ public class MySQLThread extends Thread implements DataSource {
+ columnName + "=?;");
pst.setString(1, user);
rs = pst.executeQuery();
- if (rs.next())
- return (rs.getInt(columnLogged) == 1);
+ if (rs.next()) return (rs.getInt(columnLogged) == 1);
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return false;
@@ -941,15 +1083,16 @@ public class MySQLThread extends Thread implements DataSource {
close(con);
}
return false;
- }
+ }
- @Override
- public void setLogged(String user) {
+ @Override
+ public void setLogged(String user) {
Connection con = null;
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnLogged + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnLogged + "=? WHERE " + columnName + "=?;");
pst.setInt(1, 1);
pst.setString(2, user);
pst.executeUpdate();
@@ -964,15 +1107,16 @@ public class MySQLThread extends Thread implements DataSource {
close(con);
}
return;
- }
+ }
- @Override
- public void setUnlogged(String user) {
+ @Override
+ public void setUnlogged(String user) {
Connection con = null;
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnLogged + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnLogged + "=? WHERE " + columnName + "=?;");
pst.setInt(1, 0);
pst.setString(2, user);
pst.executeUpdate();
@@ -987,15 +1131,16 @@ public class MySQLThread extends Thread implements DataSource {
close(con);
}
return;
- }
+ }
- @Override
- public void purgeLogged() {
+ @Override
+ public void purgeLogged() {
Connection con = null;
PreparedStatement pst = null;
try {
con = makeSureConnectionIsReady();
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnLogged + "=? WHERE " + columnLogged + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnLogged + "=? WHERE " + columnLogged + "=?;");
pst.setInt(1, 0);
pst.setInt(2, 1);
pst.executeUpdate();
@@ -1010,6 +1155,6 @@ public class MySQLThread extends Thread implements DataSource {
close(con);
}
return;
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/datasource/SQLiteThread.java b/src/main/java/fr/xephi/authme/datasource/SQLiteThread.java
index 6cecd953..ca2114d6 100644
--- a/src/main/java/fr/xephi/authme/datasource/SQLiteThread.java
+++ b/src/main/java/fr/xephi/authme/datasource/SQLiteThread.java
@@ -17,7 +17,6 @@ import fr.xephi.authme.datasource.MiniConnectionPoolManager.TimeoutException;
import fr.xephi.authme.settings.PlayersLogs;
import fr.xephi.authme.settings.Settings;
-
public class SQLiteThread extends Thread implements DataSource {
private String database;
@@ -53,33 +52,35 @@ public class SQLiteThread extends Thread implements DataSource {
this.columnID = Settings.getMySQLColumnId;
try {
- this.connect();
- this.setup();
- } catch (ClassNotFoundException e) {
+ this.connect();
+ this.setup();
+ } catch (ClassNotFoundException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use SQLITE... ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger.showError("Can't use SQLITE... ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- } catch (SQLException e) {
+ } catch (SQLException e) {
ConsoleLogger.showError(e.getMessage());
if (Settings.isStopEnabled) {
- ConsoleLogger.showError("Can't use SQLITE... ! SHUTDOWN...");
- AuthMe.getInstance().getServer().shutdown();
+ ConsoleLogger.showError("Can't use SQLITE... ! SHUTDOWN...");
+ AuthMe.getInstance().getServer().shutdown();
}
- if (!Settings.isStopEnabled)
- AuthMe.getInstance().getServer().getPluginManager().disablePlugin(AuthMe.getInstance());
+ if (!Settings.isStopEnabled) AuthMe.getInstance().getServer()
+ .getPluginManager().disablePlugin(AuthMe.getInstance());
return;
- }
+ }
}
- private synchronized void connect() throws ClassNotFoundException, SQLException {
+ private synchronized void connect() throws ClassNotFoundException,
+ SQLException {
Class.forName("org.sqlite.JDBC");
ConsoleLogger.info("SQLite driver loaded");
- this.con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"+database+".db");
+ this.con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"
+ + database + ".db");
}
@@ -89,18 +90,19 @@ public class SQLiteThread extends Thread implements DataSource {
try {
st = con.createStatement();
st.executeUpdate("CREATE TABLE IF NOT EXISTS " + tableName + " ("
- + columnID + " INTEGER AUTO_INCREMENT,"
- + columnName + " VARCHAR(255) NOT NULL UNIQUE,"
- + columnPassword + " VARCHAR(255) NOT NULL,"
- + columnIp + " VARCHAR(40) NOT NULL,"
- + columnLastLogin + " BIGINT,"
- + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
- + lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
- + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
- + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
- rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
+ + columnID + " INTEGER AUTO_INCREMENT," + columnName
+ + " VARCHAR(255) NOT NULL UNIQUE," + columnPassword
+ + " VARCHAR(255) NOT NULL," + columnIp
+ + " VARCHAR(40) NOT NULL," + columnLastLogin + " BIGINT,"
+ + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocY
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocZ
+ + " DOUBLE NOT NULL DEFAULT '0.0'," + lastlocWorld
+ + " VARCHAR(255) DEFAULT 'world'," + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com',"
+ + "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID
+ + "));");
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnPassword);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnPassword + " VARCHAR(255) NOT NULL;");
@@ -112,7 +114,8 @@ public class SQLiteThread extends Thread implements DataSource {
+ columnIp + " VARCHAR(40) NOT NULL;");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnLastLogin);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnLastLogin);
if (!rs.next()) {
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ columnLastLogin + " BIGINT;");
@@ -120,19 +123,28 @@ public class SQLiteThread extends Thread implements DataSource {
rs.close();
rs = con.getMetaData().getColumns(null, null, tableName, lastlocX);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0';");
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0';");
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocX + " DOUBLE NOT NULL DEFAULT '0.0';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocY + " DOUBLE NOT NULL DEFAULT '0.0';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0';");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, lastlocWorld);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ lastlocWorld);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + lastlocWorld + " VARCHAR(255) NOT NULL DEFAULT 'world';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + lastlocWorld
+ + " VARCHAR(255) NOT NULL DEFAULT 'world';");
}
rs.close();
- rs = con.getMetaData().getColumns(null, null, tableName, columnEmail);
+ rs = con.getMetaData().getColumns(null, null, tableName,
+ columnEmail);
if (!rs.next()) {
- st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + columnEmail + " VARCHAR(255) DEFAULT 'your@email.com';");
+ st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
+ + columnEmail
+ + " VARCHAR(255) DEFAULT 'your@email.com';");
}
} finally {
close(rs);
@@ -146,7 +158,8 @@ public class SQLiteThread extends Thread implements DataSource {
PreparedStatement pst = null;
ResultSet rs = null;
try {
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnName + "=?");
+ pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ + columnName + "=?");
pst.setString(1, user);
rs = pst.executeQuery();
return rs.next();
@@ -169,15 +182,38 @@ public class SQLiteThread extends Thread implements DataSource {
pst.setString(1, user);
rs = pst.executeQuery();
if (rs.next()) {
- if (rs.getString(columnIp).isEmpty() ) {
- return 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), API.getPlayerRealName(rs.getString(columnName)));
+ if (rs.getString(columnIp).isEmpty()) {
+ return 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), API.getPlayerRealName(rs
+ .getString(columnName)));
} else {
- if(!columnSalt.isEmpty()){
- return 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), API.getPlayerRealName(rs.getString(columnName)));
- } else {
- return 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), API.getPlayerRealName(rs.getString(columnName)));
- }
- }
+ if (!columnSalt.isEmpty()) {
+ return 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),
+ API.getPlayerRealName(rs.getString(columnName)));
+ } else {
+ return 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),
+ API.getPlayerRealName(rs.getString(columnName)));
+ }
+ }
} else {
return null;
}
@@ -195,14 +231,19 @@ public class SQLiteThread extends Thread implements DataSource {
PreparedStatement pst = null;
try {
if (columnSalt.isEmpty() && auth.getSalt().isEmpty()) {
- pst = con.prepareStatement("INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + ") VALUES (?,?,?,?);");
+ pst = con.prepareStatement("INSERT INTO " + tableName + "("
+ + columnName + "," + columnPassword + "," + columnIp
+ + "," + columnLastLogin + ") VALUES (?,?,?,?);");
pst.setString(1, auth.getNickname());
pst.setString(2, auth.getHash());
pst.setString(3, auth.getIp());
pst.setLong(4, auth.getLastLogin());
pst.executeUpdate();
} else {
- pst = con.prepareStatement("INSERT INTO " + tableName + "(" + columnName + "," + columnPassword + "," + columnIp + "," + columnLastLogin + "," + columnSalt + ") VALUES (?,?,?,?,?);");
+ pst = con.prepareStatement("INSERT INTO " + tableName + "("
+ + columnName + "," + columnPassword + "," + columnIp
+ + "," + columnLastLogin + "," + columnSalt
+ + ") VALUES (?,?,?,?,?);");
pst.setString(1, auth.getNickname());
pst.setString(2, auth.getHash());
pst.setString(3, auth.getIp());
@@ -223,7 +264,8 @@ public class SQLiteThread extends Thread implements DataSource {
public synchronized boolean updatePassword(PlayerAuth auth) {
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnPassword + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnPassword + "=? WHERE " + columnName + "=?;");
pst.setString(1, auth.getHash());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
@@ -240,7 +282,9 @@ public class SQLiteThread extends Thread implements DataSource {
public boolean updateSession(PlayerAuth auth) {
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnIp + "=?, " + columnLastLogin + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnIp + "=?, " + columnLastLogin + "=? WHERE "
+ + columnName + "=?;");
pst.setString(1, auth.getIp());
pst.setLong(2, auth.getLastLogin());
pst.setString(3, auth.getNickname());
@@ -258,8 +302,9 @@ public class SQLiteThread extends Thread implements DataSource {
public int purgeDatabase(long until) {
PreparedStatement pst = null;
try {
-
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnLastLogin + ";");
+
+ pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE "
+ + columnLastLogin + ";");
pst.setLong(1, until);
return pst.executeUpdate();
} catch (SQLException ex) {
@@ -276,18 +321,19 @@ public class SQLiteThread extends Thread implements DataSource {
ResultSet rs = null;
List list = new ArrayList();
try {
- pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE " + columnLastLogin + ";");
+ pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ + columnLastLogin + ";");
pst.setLong(1, until);
rs = pst.executeQuery();
while (rs.next()) {
- list.add(rs.getString(columnName));
+ list.add(rs.getString(columnName));
}
return list;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
} finally {
- close(rs);
+ close(rs);
close(pst);
}
}
@@ -296,7 +342,8 @@ public class SQLiteThread extends Thread implements DataSource {
public synchronized boolean removeAuth(String user) {
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE "
+ + columnName + "=?;");
pst.setString(1, user);
pst.executeUpdate();
} catch (SQLException ex) {
@@ -312,7 +359,9 @@ public class SQLiteThread extends Thread implements DataSource {
public boolean updateQuitLoc(PlayerAuth auth) {
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + lastlocX + "=?, "+ lastlocY +"=?, "+ lastlocZ +"=?, " + lastlocWorld + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + lastlocX + "=?, " + lastlocY + "=?, " + lastlocZ + "=?, "
+ + lastlocWorld + "=? WHERE " + columnName + "=?;");
pst.setDouble(1, auth.getQuitLocX());
pst.setDouble(2, auth.getQuitLocY());
pst.setDouble(3, auth.getQuitLocZ());
@@ -332,30 +381,31 @@ public class SQLiteThread extends Thread implements DataSource {
public int getIps(String ip) {
PreparedStatement pst = null;
ResultSet rs = null;
- int countIp=0;
+ int countIp = 0;
try {
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ columnIp + "=?;");
pst.setString(1, ip);
rs = pst.executeQuery();
- while(rs.next()) {
- countIp++;
- }
- return countIp;
+ while (rs.next()) {
+ countIp++;
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return 0;
- } finally {
+ } finally {
close(rs);
close(pst);
- }
+ }
}
- @Override
- public boolean updateEmail(PlayerAuth auth) {
+ @Override
+ public boolean updateEmail(PlayerAuth auth) {
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnEmail + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnEmail + "=? WHERE " + columnName + "=?;");
pst.setString(1, auth.getEmail());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
@@ -368,14 +418,15 @@ public class SQLiteThread extends Thread implements DataSource {
return true;
}
- @Override
- public boolean updateSalt(PlayerAuth auth) {
- if(columnSalt.isEmpty()) {
- return false;
- }
+ @Override
+ public boolean updateSalt(PlayerAuth auth) {
+ if (columnSalt.isEmpty()) {
+ return false;
+ }
PreparedStatement pst = null;
try {
- pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnSalt + "=? WHERE " + columnName + "=?;");
+ pst = con.prepareStatement("UPDATE " + tableName + " SET "
+ + columnSalt + "=? WHERE " + columnName + "=?;");
pst.setString(1, auth.getSalt());
pst.setString(2, auth.getNickname());
pst.executeUpdate();
@@ -421,8 +472,8 @@ public class SQLiteThread extends Thread implements DataSource {
}
}
- @Override
- public List getAllAuthsByName(PlayerAuth auth) {
+ @Override
+ public List getAllAuthsByName(PlayerAuth auth) {
PreparedStatement pst = null;
ResultSet rs = null;
List countIp = new ArrayList();
@@ -431,10 +482,10 @@ public class SQLiteThread extends Thread implements DataSource {
+ columnIp + "=?;");
pst.setString(1, auth.getIp());
rs = pst.executeQuery();
- while(rs.next()) {
- countIp.add(rs.getString(columnName));
- }
- return countIp;
+ while (rs.next()) {
+ countIp.add(rs.getString(columnName));
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -442,15 +493,15 @@ public class SQLiteThread extends Thread implements DataSource {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
} catch (NullPointerException npe) {
- return new ArrayList();
+ return new ArrayList();
} finally {
close(rs);
close(pst);
- }
- }
+ }
+ }
- @Override
- public List getAllAuthsByIp(String ip) {
+ @Override
+ public List getAllAuthsByIp(String ip) {
PreparedStatement pst = null;
ResultSet rs = null;
List countIp = new ArrayList();
@@ -459,10 +510,10 @@ public class SQLiteThread extends Thread implements DataSource {
+ columnIp + "=?;");
pst.setString(1, ip);
rs = pst.executeQuery();
- while(rs.next()) {
- countIp.add(rs.getString(columnName));
- }
- return countIp;
+ while (rs.next()) {
+ countIp.add(rs.getString(columnName));
+ }
+ return countIp;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -470,15 +521,15 @@ public class SQLiteThread extends Thread implements DataSource {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
} catch (NullPointerException npe) {
- return new ArrayList();
+ return new ArrayList();
} finally {
close(rs);
close(pst);
- }
- }
+ }
+ }
- @Override
- public List getAllAuthsByEmail(String email) {
+ @Override
+ public List getAllAuthsByEmail(String email) {
PreparedStatement pst = null;
ResultSet rs = null;
List countEmail = new ArrayList();
@@ -487,10 +538,10 @@ public class SQLiteThread extends Thread implements DataSource {
+ columnEmail + "=?;");
pst.setString(1, email);
rs = pst.executeQuery();
- while(rs.next()) {
- countEmail.add(rs.getString(columnName));
- }
- return countEmail;
+ while (rs.next()) {
+ countEmail.add(rs.getString(columnName));
+ }
+ return countEmail;
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
@@ -498,51 +549,52 @@ public class SQLiteThread extends Thread implements DataSource {
ConsoleLogger.showError(ex.getMessage());
return new ArrayList();
} catch (NullPointerException npe) {
- return new ArrayList();
+ return new ArrayList();
} finally {
close(rs);
close(pst);
- }
- }
+ }
+ }
- @Override
- public void purgeBanned(List banned) {
+ @Override
+ public void purgeBanned(List banned) {
PreparedStatement pst = null;
try {
- for (String name : banned) {
- pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
- pst.setString(1, name);
- pst.executeUpdate();
- }
+ for (String name : banned) {
+ pst = con.prepareStatement("DELETE FROM " + tableName
+ + " WHERE " + columnName + "=?;");
+ pst.setString(1, name);
+ pst.executeUpdate();
+ }
} catch (SQLException ex) {
ConsoleLogger.showError(ex.getMessage());
} finally {
close(pst);
}
- }
+ }
- @Override
- public DataSourceType getType() {
- return DataSourceType.SQLITE;
- }
+ @Override
+ public DataSourceType getType() {
+ return DataSourceType.SQLITE;
+ }
- @Override
- public boolean isLogged(String user) {
- return PlayersLogs.getInstance().players.contains(user.toLowerCase());
- }
+ @Override
+ public boolean isLogged(String user) {
+ return PlayersLogs.getInstance().players.contains(user.toLowerCase());
+ }
- @Override
- public void setLogged(String user) {
- PlayersLogs.getInstance().addPlayer(user);
- }
+ @Override
+ public void setLogged(String user) {
+ PlayersLogs.getInstance().addPlayer(user);
+ }
- @Override
- public void setUnlogged(String user) {
- PlayersLogs.getInstance().removePlayer(user);
- }
+ @Override
+ public void setUnlogged(String user) {
+ PlayersLogs.getInstance().removePlayer(user);
+ }
- @Override
- public void purgeLogged() {
- PlayersLogs.getInstance().clear();
- }
+ @Override
+ public void purgeLogged() {
+ PlayersLogs.getInstance().clear();
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/AuthMeTeleportEvent.java b/src/main/java/fr/xephi/authme/events/AuthMeTeleportEvent.java
index 3427c7bd..fff80d5a 100644
--- a/src/main/java/fr/xephi/authme/events/AuthMeTeleportEvent.java
+++ b/src/main/java/fr/xephi/authme/events/AuthMeTeleportEvent.java
@@ -4,31 +4,35 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class AuthMeTeleportEvent extends CustomEvent {
- private Player player;
- private Location to;
- private Location from;
+ private Player player;
+ private Location to;
+ private Location from;
- public AuthMeTeleportEvent(Player player, Location to) {
- this.player = player;
- this.from = player.getLocation();
- this.to = to;
- }
- public Player getPlayer() {
- return player;
- }
- public void setTo(Location to) {
- this.to = to;
- }
- public Location getTo() {
- return to;
- }
- public Location getFrom() {
- return from;
- }
+ public AuthMeTeleportEvent(Player player, Location to) {
+ this.player = player;
+ this.from = player.getLocation();
+ this.to = to;
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public void setTo(Location to) {
+ this.to = to;
+ }
+
+ public Location getTo() {
+ return to;
+ }
+
+ public Location getFrom() {
+ return from;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/CustomEvent.java b/src/main/java/fr/xephi/authme/events/CustomEvent.java
index 0661ecd2..5d717a68 100644
--- a/src/main/java/fr/xephi/authme/events/CustomEvent.java
+++ b/src/main/java/fr/xephi/authme/events/CustomEvent.java
@@ -6,33 +6,33 @@ import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class CustomEvent extends Event implements Cancellable {
- private boolean isCancelled;
- private static final HandlerList handlers = new HandlerList();
- private static Server s;
+ private boolean isCancelled;
+ private static final HandlerList handlers = new HandlerList();
+ private static Server s;
- public HandlerList getHandlers() {
- return handlers;
- }
+ public HandlerList getHandlers() {
+ return handlers;
+ }
public static HandlerList getHandlerList() {
return handlers;
}
- public boolean isCancelled() {
- return this.isCancelled;
- }
+ public boolean isCancelled() {
+ return this.isCancelled;
+ }
- public void setCancelled(boolean cancelled) {
- this.isCancelled = cancelled;
- }
+ public void setCancelled(boolean cancelled) {
+ this.isCancelled = cancelled;
+ }
- public static Server getServer() {
- return s;
- }
+ public static Server getServer() {
+ return s;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/ProtectInventoryEvent.java b/src/main/java/fr/xephi/authme/events/ProtectInventoryEvent.java
index 0ff9f6ea..1c91931c 100644
--- a/src/main/java/fr/xephi/authme/events/ProtectInventoryEvent.java
+++ b/src/main/java/fr/xephi/authme/events/ProtectInventoryEvent.java
@@ -4,51 +4,52 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class ProtectInventoryEvent extends CustomEvent {
- private ItemStack[] storedinventory;
- private ItemStack[] storedarmor;
- private ItemStack[] emptyInventory = null;
- private ItemStack[] emptyArmor = null;
- private Player player;
+ private ItemStack[] storedinventory;
+ private ItemStack[] storedarmor;
+ private ItemStack[] emptyInventory = null;
+ private ItemStack[] emptyArmor = null;
+ private Player player;
- public ProtectInventoryEvent(Player player, ItemStack[] storedinventory, ItemStack[] storedarmor) {
- this.player = player;
- this.storedinventory = storedinventory;
- this.storedarmor = storedarmor;
- this.emptyInventory = new ItemStack[36];
- this.emptyArmor = new ItemStack[4];
- }
+ public ProtectInventoryEvent(Player player, ItemStack[] storedinventory,
+ ItemStack[] storedarmor) {
+ this.player = player;
+ this.storedinventory = storedinventory;
+ this.storedarmor = storedarmor;
+ this.emptyInventory = new ItemStack[36];
+ this.emptyArmor = new ItemStack[4];
+ }
- public ItemStack[] getStoredInventory() {
- return this.storedinventory;
- }
+ public ItemStack[] getStoredInventory() {
+ return this.storedinventory;
+ }
- public ItemStack[] getStoredArmor() {
- return this.storedarmor;
- }
+ public ItemStack[] getStoredArmor() {
+ return this.storedarmor;
+ }
- public Player getPlayer() {
- return this.player;
- }
+ public Player getPlayer() {
+ return this.player;
+ }
- public void setNewInventory(ItemStack[] emptyInventory) {
- this.emptyInventory = emptyInventory;
- }
+ public void setNewInventory(ItemStack[] emptyInventory) {
+ this.emptyInventory = emptyInventory;
+ }
- public ItemStack[] getEmptyInventory() {
- return this.emptyInventory;
- }
+ public ItemStack[] getEmptyInventory() {
+ return this.emptyInventory;
+ }
- public void setNewArmor(ItemStack[] emptyArmor) {
- this.emptyArmor = emptyArmor;
- }
+ public void setNewArmor(ItemStack[] emptyArmor) {
+ this.emptyArmor = emptyArmor;
+ }
- public ItemStack[] getEmptyArmor() {
- return this.emptyArmor;
- }
+ public ItemStack[] getEmptyArmor() {
+ return this.emptyArmor;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/RegisterTeleportEvent.java b/src/main/java/fr/xephi/authme/events/RegisterTeleportEvent.java
index 5185eb2d..aa6ed3f9 100644
--- a/src/main/java/fr/xephi/authme/events/RegisterTeleportEvent.java
+++ b/src/main/java/fr/xephi/authme/events/RegisterTeleportEvent.java
@@ -4,31 +4,35 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class RegisterTeleportEvent extends CustomEvent {
- private Player player;
- private Location to;
- private Location from;
+ private Player player;
+ private Location to;
+ private Location from;
- public RegisterTeleportEvent(Player player, Location to) {
- this.player = player;
- this.from = player.getLocation();
- this.to = to;
- }
- public Player getPlayer() {
- return player;
- }
- public void setTo(Location to) {
- this.to = to;
- }
- public Location getTo() {
- return to;
- }
- public Location getFrom() {
- return from;
- }
+ public RegisterTeleportEvent(Player player, Location to) {
+ this.player = player;
+ this.from = player.getLocation();
+ this.to = to;
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public void setTo(Location to) {
+ this.to = to;
+ }
+
+ public Location getTo() {
+ return to;
+ }
+
+ public Location getFrom() {
+ return from;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/ResetInventoryEvent.java b/src/main/java/fr/xephi/authme/events/ResetInventoryEvent.java
index 1a8c2361..3d664664 100644
--- a/src/main/java/fr/xephi/authme/events/ResetInventoryEvent.java
+++ b/src/main/java/fr/xephi/authme/events/ResetInventoryEvent.java
@@ -3,23 +3,23 @@ package fr.xephi.authme.events;
import org.bukkit.entity.Player;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class ResetInventoryEvent extends CustomEvent {
- private Player player;
+ private Player player;
- public ResetInventoryEvent(Player player) {
- this.player = player;
- }
+ public ResetInventoryEvent(Player player) {
+ this.player = player;
+ }
- public Player getPlayer() {
- return this.player;
- }
+ public Player getPlayer() {
+ return this.player;
+ }
- public void setPlayer(Player player) {
- this.player = player;
- }
+ public void setPlayer(Player player) {
+ this.player = player;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/RestoreInventoryEvent.java b/src/main/java/fr/xephi/authme/events/RestoreInventoryEvent.java
index 5ae4334a..394f92a2 100644
--- a/src/main/java/fr/xephi/authme/events/RestoreInventoryEvent.java
+++ b/src/main/java/fr/xephi/authme/events/RestoreInventoryEvent.java
@@ -4,43 +4,44 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class RestoreInventoryEvent extends CustomEvent {
- private ItemStack[] inventory;
- private ItemStack[] armor;
- private Player player;
+ private ItemStack[] inventory;
+ private ItemStack[] armor;
+ private Player player;
- public RestoreInventoryEvent(Player player, ItemStack[] inventory, ItemStack[] armor) {
- this.player = player;
- this.inventory = inventory;
- this.armor = armor;
- }
+ public RestoreInventoryEvent(Player player, ItemStack[] inventory,
+ ItemStack[] armor) {
+ this.player = player;
+ this.inventory = inventory;
+ this.armor = armor;
+ }
- public ItemStack[] getInventory() {
- return this.inventory;
- }
+ public ItemStack[] getInventory() {
+ return this.inventory;
+ }
- public void setInventory(ItemStack[] inventory) {
- this.inventory = inventory;
- }
+ public void setInventory(ItemStack[] inventory) {
+ this.inventory = inventory;
+ }
- public ItemStack[] getArmor() {
- return this.armor;
- }
+ public ItemStack[] getArmor() {
+ return this.armor;
+ }
- public void setArmor(ItemStack[] armor) {
- this.armor = armor;
- }
+ public void setArmor(ItemStack[] armor) {
+ this.armor = armor;
+ }
- public Player getPlayer() {
- return this.player;
- }
+ public Player getPlayer() {
+ return this.player;
+ }
- public void setPlayer(Player player) {
- this.player = player;
- }
+ public void setPlayer(Player player) {
+ this.player = player;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/SessionEvent.java b/src/main/java/fr/xephi/authme/events/SessionEvent.java
index 8cefc846..f78ed378 100644
--- a/src/main/java/fr/xephi/authme/events/SessionEvent.java
+++ b/src/main/java/fr/xephi/authme/events/SessionEvent.java
@@ -3,29 +3,29 @@ package fr.xephi.authme.events;
import fr.xephi.authme.cache.auth.PlayerAuth;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class SessionEvent extends CustomEvent {
- private PlayerAuth player;
- private boolean isLogin;
+ private PlayerAuth player;
+ private boolean isLogin;
- public SessionEvent(PlayerAuth auth, boolean isLogin) {
- this.player = auth;
- this.isLogin = isLogin;
- }
+ public SessionEvent(PlayerAuth auth, boolean isLogin) {
+ this.player = auth;
+ this.isLogin = isLogin;
+ }
- public PlayerAuth getPlayerAuth() {
- return this.player;
- }
+ public PlayerAuth getPlayerAuth() {
+ return this.player;
+ }
- public void setPlayer(PlayerAuth player) {
- this.player = player;
- }
+ public void setPlayer(PlayerAuth player) {
+ this.player = player;
+ }
- public boolean isLogin() {
- return isLogin;
- }
+ public boolean isLogin() {
+ return isLogin;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/SpawnTeleportEvent.java b/src/main/java/fr/xephi/authme/events/SpawnTeleportEvent.java
index 3685b36a..ef85c778 100644
--- a/src/main/java/fr/xephi/authme/events/SpawnTeleportEvent.java
+++ b/src/main/java/fr/xephi/authme/events/SpawnTeleportEvent.java
@@ -4,36 +4,42 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class SpawnTeleportEvent extends CustomEvent {
- private Player player;
- private Location to;
- private Location from;
- private boolean isAuthenticated;
+ private Player player;
+ private Location to;
+ private Location from;
+ private boolean isAuthenticated;
- public SpawnTeleportEvent(Player player, Location from, Location to, boolean isAuthenticated) {
- this.player = player;
- this.from = from;
- this.to = to;
- this.isAuthenticated = isAuthenticated;
- }
- public Player getPlayer() {
- return player;
- }
- public void setTo(Location to) {
- this.to = to;
- }
- public Location getTo() {
- return to;
- }
- public Location getFrom() {
- return from;
- }
- public boolean isAuthenticated() {
- return isAuthenticated;
- }
+ public SpawnTeleportEvent(Player player, Location from, Location to,
+ boolean isAuthenticated) {
+ this.player = player;
+ this.from = from;
+ this.to = to;
+ this.isAuthenticated = isAuthenticated;
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public void setTo(Location to) {
+ this.to = to;
+ }
+
+ public Location getTo() {
+ return to;
+ }
+
+ public Location getFrom() {
+ return from;
+ }
+
+ public boolean isAuthenticated() {
+ return isAuthenticated;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/events/StoreInventoryEvent.java b/src/main/java/fr/xephi/authme/events/StoreInventoryEvent.java
index 82463378..13cd0942 100644
--- a/src/main/java/fr/xephi/authme/events/StoreInventoryEvent.java
+++ b/src/main/java/fr/xephi/authme/events/StoreInventoryEvent.java
@@ -5,51 +5,52 @@ import org.bukkit.inventory.ItemStack;
import fr.xephi.authme.cache.backup.FileCache;
-
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class StoreInventoryEvent extends CustomEvent {
- private ItemStack[] inventory;
- private ItemStack[] armor;
- private Player player;
+ private ItemStack[] inventory;
+ private ItemStack[] armor;
+ private Player player;
- public StoreInventoryEvent(Player player) {
- this.player = player;
- this.inventory = player.getInventory().getContents();
- this.armor = player.getInventory().getArmorContents();
- }
+ public StoreInventoryEvent(Player player) {
+ this.player = player;
+ this.inventory = player.getInventory().getContents();
+ this.armor = player.getInventory().getArmorContents();
+ }
- public StoreInventoryEvent(Player player, FileCache fileCache) {
- this.player = player;
- this.inventory = fileCache.readCache(player.getName().toLowerCase()).getInventory();
- this.armor = fileCache.readCache(player.getName().toLowerCase()).getArmour();
- }
+ public StoreInventoryEvent(Player player, FileCache fileCache) {
+ this.player = player;
+ this.inventory = fileCache.readCache(player.getName().toLowerCase())
+ .getInventory();
+ this.armor = fileCache.readCache(player.getName().toLowerCase())
+ .getArmour();
+ }
- public ItemStack[] getInventory() {
- return this.inventory;
- }
+ public ItemStack[] getInventory() {
+ return this.inventory;
+ }
- public void setInventory(ItemStack[] inventory) {
- this.inventory = inventory;
- }
+ public void setInventory(ItemStack[] inventory) {
+ this.inventory = inventory;
+ }
- public ItemStack[] getArmor() {
- return this.armor;
- }
+ public ItemStack[] getArmor() {
+ return this.armor;
+ }
- public void setArmor(ItemStack[] armor) {
- this.armor = armor;
- }
+ public void setArmor(ItemStack[] armor) {
+ this.armor = armor;
+ }
- public Player getPlayer() {
- return this.player;
- }
+ public Player getPlayer() {
+ return this.player;
+ }
- public void setPlayer(Player player) {
- this.player = player;
- }
+ public void setPlayer(Player player) {
+ this.player = player;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/gui/Clickable.java b/src/main/java/fr/xephi/authme/gui/Clickable.java
index 5321a238..943bee51 100644
--- a/src/main/java/fr/xephi/authme/gui/Clickable.java
+++ b/src/main/java/fr/xephi/authme/gui/Clickable.java
@@ -3,5 +3,5 @@ package fr.xephi.authme.gui;
import org.getspout.spoutapi.event.screen.ButtonClickEvent;
public interface Clickable {
- public void handleClick(ButtonClickEvent event);
+ public void handleClick(ButtonClickEvent event);
}
diff --git a/src/main/java/fr/xephi/authme/gui/CustomButton.java b/src/main/java/fr/xephi/authme/gui/CustomButton.java
index 8bf5002a..ad9dfde5 100644
--- a/src/main/java/fr/xephi/authme/gui/CustomButton.java
+++ b/src/main/java/fr/xephi/authme/gui/CustomButton.java
@@ -3,26 +3,21 @@ package fr.xephi.authme.gui;
import org.getspout.spoutapi.event.screen.ButtonClickEvent;
import org.getspout.spoutapi.gui.GenericButton;
-public class CustomButton extends GenericButton
-{
- public Clickable handleRef = null;
+public class CustomButton extends GenericButton {
+ public Clickable handleRef = null;
- public CustomButton(Clickable c) {
- handleRef = c;
- }
+ public CustomButton(Clickable c) {
+ handleRef = c;
+ }
- @Override
- public void onButtonClick(ButtonClickEvent event) {
- handleRef.handleClick(event);
- }
+ @Override
+ public void onButtonClick(ButtonClickEvent event) {
+ handleRef.handleClick(event);
+ }
- public CustomButton setMidPos(int x, int y)
- {
- this.setX(x)
- .setY(y)
- .shiftXPos(-(width / 2))
- .shiftYPos(-(height / 2));
- return this;
- }
+ public CustomButton setMidPos(int x, int y) {
+ this.setX(x).setY(y).shiftXPos(-(width / 2)).shiftYPos(-(height / 2));
+ return this;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/gui/screens/LoginScreen.java b/src/main/java/fr/xephi/authme/gui/screens/LoginScreen.java
index c5758890..3c787c32 100644
--- a/src/main/java/fr/xephi/authme/gui/screens/LoginScreen.java
+++ b/src/main/java/fr/xephi/authme/gui/screens/LoginScreen.java
@@ -20,112 +20,86 @@ import fr.xephi.authme.gui.Clickable;
import fr.xephi.authme.gui.CustomButton;
import fr.xephi.authme.settings.SpoutCfg;
+public class LoginScreen extends GenericPopup implements Clickable {
-public class LoginScreen extends GenericPopup implements Clickable{
+ public AuthMe plugin = AuthMe.getInstance();
+ private SpoutCfg spoutCfg = SpoutCfg.getInstance();
+ private CustomButton exitBtn;
+ private CustomButton loginBtn;
+ private GenericTextField passBox;
+ private GenericLabel titleLbl;
+ private GenericLabel textLbl;
+ private GenericLabel errorLbl;
- public AuthMe plugin = AuthMe.getInstance();
- private SpoutCfg spoutCfg = SpoutCfg.getInstance();
- private CustomButton exitBtn;
- private CustomButton loginBtn;
- private GenericTextField passBox;
- private GenericLabel titleLbl;
- private GenericLabel textLbl;
- private GenericLabel errorLbl;
-
- String exitTxt = spoutCfg.getString("LoginScreen.exit button");
- String loginTxt = spoutCfg.getString("LoginScreen.login button");
- String exitMsg = spoutCfg.getString("LoginScreen.exit message");
- String title = spoutCfg.getString("LoginScreen.title");
- @SuppressWarnings("unchecked")
- List textlines = (List) spoutCfg.getList("LoginScreen.text");
- public SpoutPlayer splayer;
+ String exitTxt = spoutCfg.getString("LoginScreen.exit button");
+ String loginTxt = spoutCfg.getString("LoginScreen.login button");
+ String exitMsg = spoutCfg.getString("LoginScreen.exit message");
+ String title = spoutCfg.getString("LoginScreen.title");
+ @SuppressWarnings("unchecked")
+ List textlines = (List) spoutCfg
+ .getList("LoginScreen.text");
+ public SpoutPlayer splayer;
- public LoginScreen(SpoutPlayer player) {
- this.splayer = player;
- createScreen();
- }
+ public LoginScreen(SpoutPlayer player) {
+ this.splayer = player;
+ createScreen();
+ }
- private void createScreen() {
- int objects = textlines.size() + 4;
- int part = !(textlines.size() <= 5) ? 195 / objects : 20;
- int h = 3*part/4, w = 8*part;
- titleLbl = new GenericLabel();
- titleLbl
- .setText(title)
- .setTextColor(new Color(1.0F, 0, 0, 1.0F))
- .setAlign(WidgetAnchor.TOP_CENTER)
- .setHeight(h)
- .setWidth(w)
- .setX(maxWidth / 2 )
- .setY(25);
- this.attachWidget(plugin, titleLbl);
- int ystart = 25 + h + part/2;
- for (int x=0; x gameMode = new HashMap();
public static HashMap joinMessage = new HashMap();
- private Utils utils = Utils.getInstance();
+ private Utils utils = Utils.getInstance();
private Messages m = Messages.getInstance();
public AuthMe plugin;
private DataSource data;
@@ -82,69 +81,61 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
- if (!data.isAuthAvailable(name))
- if (!Settings.isForcedRegistrationEnabled)
- return;
+ if (!data.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return;
String msg = event.getMessage();
- //WorldEdit GUI Shit
- if (msg.equalsIgnoreCase("/worldedit cui"))
- return;
+ // WorldEdit GUI Shit
+ if (msg.equalsIgnoreCase("/worldedit cui")) return;
String cmd = msg.split(" ")[0];
- if (cmd.equalsIgnoreCase("/login") || cmd.equalsIgnoreCase("/register") || cmd.equalsIgnoreCase("/passpartu") || cmd.equalsIgnoreCase("/l") || cmd.equalsIgnoreCase("/reg") || cmd.equalsIgnoreCase("/email") || cmd.equalsIgnoreCase("/captcha"))
- return;
- if (Settings.useEssentialsMotd && cmd.equalsIgnoreCase("/motd"))
- return;
- if (Settings.allowCommands.contains(cmd))
- return;
+ if (cmd.equalsIgnoreCase("/login") || cmd.equalsIgnoreCase("/register")
+ || cmd.equalsIgnoreCase("/passpartu")
+ || cmd.equalsIgnoreCase("/l") || cmd.equalsIgnoreCase("/reg")
+ || cmd.equalsIgnoreCase("/email")
+ || cmd.equalsIgnoreCase("/captcha")) return;
+ if (Settings.useEssentialsMotd && cmd.equalsIgnoreCase("/motd")) return;
+ if (Settings.allowCommands.contains(cmd)) return;
event.setMessage("/notloggedin");
event.setCancelled(true);
}
- @EventHandler( priority = EventPriority.NORMAL)
+ @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerNormalChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
- m._(player, "reg_email_msg");
+ m._(player, "reg_email_msg");
return;
- } else {
- m._(player, "reg_msg");
+ } else {
+ m._(player, "reg_msg");
return;
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -152,36 +143,33 @@ public class AuthMePlayerListener implements Listener {
}
}
- @EventHandler( priority = EventPriority.HIGH)
+ @EventHandler(priority = EventPriority.HIGH)
public void onPlayerHighChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
m._(player, "reg_email_msg");
return;
- } else {
+ } else {
m._(player, "reg_msg");
return;
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -189,36 +177,33 @@ public class AuthMePlayerListener implements Listener {
}
}
- @EventHandler( priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
m._(player, "reg_email_msg");
return;
- } else {
+ } else {
m._(player, "reg_msg");
return;
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -226,36 +211,33 @@ public class AuthMePlayerListener implements Listener {
}
}
- @EventHandler( priority = EventPriority.HIGHEST)
+ @EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerHighestChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
m._(player, "reg_email_msg");
return;
- } else {
+ } else {
m._(player, "reg_msg");
return;
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -263,36 +245,33 @@ public class AuthMePlayerListener implements Listener {
}
}
- @EventHandler( priority = EventPriority.LOWEST)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerEarlyChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
m._(player, "reg_email_msg");
return;
- } else {
+ } else {
m._(player, "reg_msg");
return;
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -300,34 +279,31 @@ public class AuthMePlayerListener implements Listener {
}
}
- @EventHandler( priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW)
public void onPlayerLowChat(AsyncPlayerChatEvent event) {
- if (event.isCancelled() || event.getPlayer() == null)
- return;
+ if (event.isCancelled() || event.getPlayer() == null) return;
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
String cmd = event.getMessage().split(" ")[0];
-
- if (data.isAuthAvailable(name)) {
- m._(player, "login_msg");
- } else {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
- }
+
+ if (data.isAuthAvailable(name)) {
+ m._(player, "login_msg");
+ } else {
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
+ }
if (Settings.emailRegistration) {
m._(player, "reg_email_msg");
- } else {
+ } else {
m._(player, "reg_msg");
- }
- }
+ }
+ }
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
event.setCancelled(true);
@@ -344,7 +320,9 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer();
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;
}
@@ -369,10 +347,10 @@ public class AuthMePlayerListener implements Listener {
Location spawn = plugin.getSpawnLocation(player);
if (!event.getPlayer().getWorld().equals(spawn.getWorld())) {
- event.getPlayer().teleport(spawn);
- return;
+ event.getPlayer().teleport(spawn);
+ return;
}
- if ((spawn.distance(player.getLocation()) > radius) ) {
+ if ((spawn.distance(player.getLocation()) > radius)) {
event.getPlayer().teleport(spawn);
return;
}
@@ -384,54 +362,75 @@ public class AuthMePlayerListener implements Listener {
final Player player = event.getPlayer();
final 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;
}
if (!Settings.countriesBlacklist.isEmpty()) {
- String code = plugin.getCountryCode(event.getAddress().getHostAddress());
- if (((code == null) || (Settings.countriesBlacklist.contains(code) && !API.isRegistered(name))) && !plugin.authmePermissible(player, "authme.bypassantibot")) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("country_banned")[0]);
- return;
- }
+ String code = plugin.getCountryCode(event.getAddress()
+ .getHostAddress());
+ if (((code == null) || (Settings.countriesBlacklist.contains(code) && !API
+ .isRegistered(name)))
+ && !plugin
+ .authmePermissible(player, "authme.bypassantibot")) {
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("country_banned")[0]);
+ return;
+ }
}
if (Settings.enableProtection && !Settings.countries.isEmpty()) {
- String code = plugin.getCountryCode(event.getAddress().getHostAddress());
- if (((code == null) || (!Settings.countries.contains(code) && !API.isRegistered(name))) && !plugin.authmePermissible(player, "authme.bypassantibot")) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("country_banned")[0]);
- return;
- }
+ String code = plugin.getCountryCode(event.getAddress()
+ .getHostAddress());
+ if (((code == null) || (!Settings.countries.contains(code) && !API
+ .isRegistered(name)))
+ && !plugin
+ .authmePermissible(player, "authme.bypassantibot")) {
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("country_banned")[0]);
+ return;
+ }
}
if (Settings.isKickNonRegisteredEnabled) {
- if (!data.isAuthAvailable(name)) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("reg_only")[0]);
+ if (!data.isAuthAvailable(name)) {
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("reg_only")[0]);
return;
}
}
if (player.isOnline() && Settings.isForceSingleSessionEnabled) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick")[0]);
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("same_nick")[0]);
return;
}
- if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
- if(!Settings.isSessionsEnabled) {
- } else if(PlayerCache.getInstance().isAuthenticated(name)) {
- if(!Settings.sessionExpireOnIpChange)
- if(LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
- LimboCache.getInstance().deleteLimboPlayer(name);
- }
- }
+ if (data.isAuthAvailable(name)
+ && !LimboCache.getInstance().hasLimboPlayer(name)) {
+ if (!Settings.isSessionsEnabled) {
+ } else if (PlayerCache.getInstance().isAuthenticated(name)) {
+ if (!Settings.sessionExpireOnIpChange) if (LimboCache
+ .getInstance().hasLimboPlayer(
+ player.getName().toLowerCase())) {
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ }
+ }
}
- //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().toLowerCase());
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick")[0]);
- if(PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
- utils.addNormal(player, limbo.getGroup());
- LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
- }
+ // 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().toLowerCase());
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("same_nick")[0]);
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
+ utils.addNormal(player, limbo.getGroup());
+ LimboCache.getInstance().deleteLimboPlayer(
+ player.getName().toLowerCase());
+ }
return;
}
@@ -441,33 +440,39 @@ public class AuthMePlayerListener implements Listener {
if (name.length() > max || name.length() < min) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("name_len")[0]);
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("name_len")[0]);
return;
}
try {
if (!player.getName().matches(regex) || name.equals("Player")) {
try {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("regex")[0].replace("REG_EX", regex));
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("regex")[0].replace("REG_EX", regex));
} catch (Exception exc) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "allowed char : " + regex);
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ "allowed char : " + regex);
}
return;
}
} catch (PatternSyntaxException pse) {
- if (regex == null || regex.isEmpty()) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Your nickname do not match");
- return;
- }
+ if (regex == null || regex.isEmpty()) {
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ "Your nickname do not match");
+ return;
+ }
try {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("regex")[0].replace("REG_EX", regex));
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ m._("regex")[0].replace("REG_EX", regex));
} catch (Exception exc) {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "allowed char : " + regex);
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ "allowed char : " + regex);
}
return;
}
if (event.getResult() == PlayerLoginEvent.Result.ALLOWED) {
- checkAntiBotMod(event);
+ checkAntiBotMod(event);
if (Settings.bungee) {
final ByteArrayOutputStream b = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(b);
@@ -478,61 +483,64 @@ public class AuthMePlayerListener implements Listener {
}
player.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
}
- return;
+ return;
}
if (event.getResult() != PlayerLoginEvent.Result.KICK_FULL) return;
if (player.isBanned()) return;
if (!plugin.authmePermissible(player, "authme.vip")) {
- event.disallow(Result.KICK_FULL, m._("kick_fullserver")[0]);
- return;
+ event.disallow(Result.KICK_FULL, m._("kick_fullserver")[0]);
+ return;
}
- if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
- event.allow();
- return;
+ if (plugin.getServer().getOnlinePlayers().length > plugin.getServer()
+ .getMaxPlayers()) {
+ event.allow();
+ return;
} else {
- final Player pl = plugin.generateKickPlayer(plugin.getServer().getOnlinePlayers());
- if (pl != null) {
- pl.kickPlayer(m._("kick_forvip")[0]);
- event.allow();
- return;
- } else {
- ConsoleLogger.info("The player " + player.getName() + " wants to join, but the server is full");
- event.disallow(Result.KICK_FULL, m._("kick_fullserver")[0]);
- return;
- }
+ final Player pl = plugin.generateKickPlayer(plugin.getServer()
+ .getOnlinePlayers());
+ if (pl != null) {
+ pl.kickPlayer(m._("kick_forvip")[0]);
+ event.allow();
+ return;
+ } else {
+ ConsoleLogger.info("The player " + player.getName()
+ + " wants to join, but the server is full");
+ event.disallow(Result.KICK_FULL, m._("kick_fullserver")[0]);
+ return;
+ }
}
}
private void checkAntiBotMod(final PlayerLoginEvent event) {
- if (plugin.delayedAntiBot || plugin.antibotMod)
- return;
- if (plugin.authmePermissible(event.getPlayer(), "authme.bypassantibot"))
- return;
- if (antibot.keySet().size() > Settings.antiBotSensibility) {
- plugin.switchAntiBotMod(true);
- for (String s : m._("antibot_auto_enabled"))
- Bukkit.broadcastMessage(s);
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
- @Override
- public void run() {
- if (plugin.antibotMod) {
- plugin.switchAntiBotMod(false);
- antibot.clear();
- for (String s : m._("antibot_auto_disabled"))
- Bukkit.broadcastMessage(s.replace("%m", "" + Settings.antiBotDuration));
- }
- }
- }, Settings.antiBotDuration * 1200);
- return;
- }
- antibot.put(event.getPlayer().getName().toLowerCase(), event);
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
- @Override
- public void run() {
- antibot.remove(event.getPlayer().getName().toLowerCase());
- }
- }, 300);
+ if (plugin.delayedAntiBot || plugin.antibotMod) return;
+ if (plugin.authmePermissible(event.getPlayer(), "authme.bypassantibot")) return;
+ if (antibot.keySet().size() > Settings.antiBotSensibility) {
+ plugin.switchAntiBotMod(true);
+ for (String s : m._("antibot_auto_enabled"))
+ Bukkit.broadcastMessage(s);
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ if (plugin.antibotMod) {
+ plugin.switchAntiBotMod(false);
+ antibot.clear();
+ for (String s : m._("antibot_auto_disabled"))
+ Bukkit.broadcastMessage(s.replace("%m", ""
+ + Settings.antiBotDuration));
+ }
+ }
+ }, Settings.antiBotDuration * 1200);
+ return;
+ }
+ antibot.put(event.getPlayer().getName().toLowerCase(), event);
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ antibot.remove(event.getPlayer().getName().toLowerCase());
+ }
+ }, 300);
}
@EventHandler(priority = EventPriority.HIGHEST)
@@ -547,32 +555,37 @@ public class AuthMePlayerListener implements Listener {
gameMode.put(name, gm);
BukkitScheduler sched = plugin.getServer().getScheduler();
- 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;
}
if (plugin.ess != null && Settings.disableSocialSpy) {
- try {
- plugin.ess.getUser(player.getName()).setSocialSpyEnabled(false);
- } catch (Exception e) {}
+ try {
+ plugin.ess.getUser(player.getName()).setSocialSpyEnabled(false);
+ } catch (Exception e) {
+ }
}
String ip = plugin.getIP(player);
- if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
+ if (Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
GameMode gM = gameMode.get(name);
this.causeByAuthMe = true;
- player.setGameMode(gM);
- this.causeByAuthMe = false;
+ player.setGameMode(gM);
+ this.causeByAuthMe = false;
player.kickPlayer("You are not the Owner of this account, please try another name!");
- if (Settings.banUnsafeIp)
- plugin.getServer().banIP(ip);
- return;
+ if (Settings.banUnsafeIp) plugin.getServer().banIP(ip);
+ return;
}
- if(Settings.getMaxJoinPerIp > 0 && !plugin.authmePermissible(player, "authme.allow2accounts") && !ip.equalsIgnoreCase("127.0.0.1") && !ip.equalsIgnoreCase("localhost")) {
- if (plugin.hasJoinedIp(player.getName(), ip)) {
- player.kickPlayer("A player with the same IP is already in game!");
- return;
- }
+ if (Settings.getMaxJoinPerIp > 0
+ && !plugin.authmePermissible(player, "authme.allow2accounts")
+ && !ip.equalsIgnoreCase("127.0.0.1")
+ && !ip.equalsIgnoreCase("localhost")) {
+ if (plugin.hasJoinedIp(player.getName(), ip)) {
+ player.kickPlayer("A player with the same IP is already in game!");
+ return;
+ }
}
if (data.isAuthAvailable(name)) {
if (Settings.isSessionsEnabled) {
@@ -580,142 +593,168 @@ public class AuthMePlayerListener implements Listener {
long timeout = Settings.getSessionTimeout * 60000;
long lastLogin = auth.getLastLogin();
long cur = new Date().getTime();
- if((cur - lastLogin < timeout || timeout == 0) && !auth.getIp().equals("198.18.0.1") ) {
- if (auth.getNickname().equalsIgnoreCase(name) && auth.getIp().equals(ip) ) {
- if(PlayerCache.getInstance().getAuth(name) != null) {
- PlayerCache.getInstance().updatePlayer(auth);
- } else {
- PlayerCache.getInstance().addPlayer(auth);
- data.setLogged(name);
- }
- m._(player, "valid_session");
- // Restore Permission Group
- utils.setGroup(player, Utils.groupType.LOGGEDIN);
- plugin.getServer().getPluginManager().callEvent(new SessionEvent(auth, true));
- return;
- } else if (!Settings.sessionExpireOnIpChange){
- GameMode gM = gameMode.get(name);
- this.causeByAuthMe = true;
- player.setGameMode(gM);
- this.causeByAuthMe = false;
- player.kickPlayer(m._("unvalid_session")[0]);
- return;
- } else if (auth.getNickname().equalsIgnoreCase(name)){
- if (Settings.isForceSurvivalModeEnabled && !Settings.forceOnlyAfterLogin) {
- this.causeByAuthMe = true;
- Utils.forceGM(player);
- this.causeByAuthMe = false;
- }
- //Player change his IP between 2 relog-in
- PlayerCache.getInstance().removePlayer(name);
- data.setUnlogged(name);
- } else {
- GameMode gM = gameMode.get(name);
- this.causeByAuthMe = true;
- player.setGameMode(gM);
- this.causeByAuthMe = false;
- player.kickPlayer(m._("unvalid_session")[0]);
- return;
- }
- } else {
- //Session is ended correctly
- PlayerCache.getInstance().removePlayer(name);
- data.setUnlogged(name);
- }
- }
- // isent in session or session was ended correctly
- if (Settings.isForceSurvivalModeEnabled && !Settings.forceOnlyAfterLogin) {
- this.causeByAuthMe = true;
- Utils.forceGM(player);
- this.causeByAuthMe = false;
- }
- if (!Settings.noTeleport)
- if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, PlayerCache.getInstance().isAuthenticated(name));
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (player != null && player.isOnline() && tpEvent.getTo() != null) {
- player.teleport(tpEvent.getTo());
+ if ((cur - lastLogin < timeout || timeout == 0)
+ && !auth.getIp().equals("198.18.0.1")) {
+ if (auth.getNickname().equalsIgnoreCase(name)
+ && auth.getIp().equals(ip)) {
+ if (PlayerCache.getInstance().getAuth(name) != null) {
+ PlayerCache.getInstance().updatePlayer(auth);
+ } else {
+ PlayerCache.getInstance().addPlayer(auth);
+ data.setLogged(name);
}
+ m._(player, "valid_session");
+ // Restore Permission Group
+ utils.setGroup(player, Utils.groupType.LOGGEDIN);
+ plugin.getServer().getPluginManager()
+ .callEvent(new SessionEvent(auth, true));
+ return;
+ } else if (!Settings.sessionExpireOnIpChange) {
+ GameMode gM = gameMode.get(name);
+ this.causeByAuthMe = true;
+ player.setGameMode(gM);
+ this.causeByAuthMe = false;
+ player.kickPlayer(m._("unvalid_session")[0]);
+ return;
+ } else if (auth.getNickname().equalsIgnoreCase(name)) {
+ if (Settings.isForceSurvivalModeEnabled
+ && !Settings.forceOnlyAfterLogin) {
+ this.causeByAuthMe = true;
+ Utils.forceGM(player);
+ this.causeByAuthMe = false;
+ }
+ // Player change his IP between 2 relog-in
+ PlayerCache.getInstance().removePlayer(name);
+ data.setUnlogged(name);
+ } else {
+ GameMode gM = gameMode.get(name);
+ this.causeByAuthMe = true;
+ player.setGameMode(gM);
+ this.causeByAuthMe = false;
+ player.kickPlayer(m._("unvalid_session")[0]);
+ return;
+ }
+ } else {
+ // Session is ended correctly
+ PlayerCache.getInstance().removePlayer(name);
+ data.setUnlogged(name);
+ }
+ }
+ // isent in session or session was ended correctly
+ if (Settings.isForceSurvivalModeEnabled
+ && !Settings.forceOnlyAfterLogin) {
+ this.causeByAuthMe = true;
+ Utils.forceGM(player);
+ this.causeByAuthMe = false;
+ }
+ if (!Settings.noTeleport) if (Settings.isTeleportToSpawnEnabled
+ || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds
+ .contains(player.getWorld().getName()))) {
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player,
+ player.getLocation(), spawnLoc, PlayerCache
+ .getInstance().isAuthenticated(name));
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (player != null && player.isOnline()
+ && tpEvent.getTo() != null) {
+ player.teleport(tpEvent.getTo());
}
}
+ }
placePlayerSafely(player, spawnLoc);
LimboCache.getInstance().updateLimboPlayer(player);
- DataFileCache dataFile = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(),LimboCache.getInstance().getLimboPlayer(name).getArmour());
- playerBackup.createCache(name, dataFile, LimboCache.getInstance().getLimboPlayer(name).getGroup(),LimboCache.getInstance().getLimboPlayer(name).getOperator(),LimboCache.getInstance().getLimboPlayer(name).isFlying());
+ DataFileCache dataFile = new DataFileCache(LimboCache.getInstance()
+ .getLimboPlayer(name).getInventory(), LimboCache
+ .getInstance().getLimboPlayer(name).getArmour());
+ playerBackup.createCache(name, dataFile, LimboCache.getInstance()
+ .getLimboPlayer(name).getGroup(), LimboCache.getInstance()
+ .getLimboPlayer(name).getOperator(), LimboCache
+ .getInstance().getLimboPlayer(name).isFlying());
} else {
- if (Settings.isForceSurvivalModeEnabled && !Settings.forceOnlyAfterLogin) {
- this.causeByAuthMe = true;
- Utils.forceGM(player);
- this.causeByAuthMe = false;
+ if (Settings.isForceSurvivalModeEnabled
+ && !Settings.forceOnlyAfterLogin) {
+ this.causeByAuthMe = true;
+ Utils.forceGM(player);
+ this.causeByAuthMe = false;
}
- if(!Settings.unRegisteredGroup.isEmpty()){
- utils.setGroup(player, Utils.groupType.UNREGISTERED);
+ if (!Settings.unRegisteredGroup.isEmpty()) {
+ utils.setGroup(player, Utils.groupType.UNREGISTERED);
}
- if (!Settings.noTeleport)
- if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, PlayerCache.getInstance().isAuthenticated(name));
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (player != null && player.isOnline() && tpEvent.getTo() != null) {
- player.teleport(tpEvent.getTo());
- }
+ if (!Settings.noTeleport) if (Settings.isTeleportToSpawnEnabled
+ || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds
+ .contains(player.getWorld().getName()))) {
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player,
+ player.getLocation(), spawnLoc, PlayerCache
+ .getInstance().isAuthenticated(name));
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (player != null && player.isOnline()
+ && tpEvent.getTo() != null) {
+ player.teleport(tpEvent.getTo());
}
}
+ }
if (!Settings.isForcedRegistrationEnabled) {
return;
}
-
+
}
- if(Settings.protectInventoryBeforeLogInEnabled) {
- try {
- 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()) {
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info("ProtectInventoryEvent has been cancelled for " + player.getName() + " ...");
- } else {
- API.setPlayerInventory(player, ev.getEmptyInventory(), ev.getEmptyArmor());
- }
- } catch (NullPointerException ex) {
- }
+ if (Settings.protectInventoryBeforeLogInEnabled) {
+ try {
+ 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()) {
+ if (!Settings.noConsoleSpam) ConsoleLogger
+ .info("ProtectInventoryEvent has been cancelled for "
+ + player.getName() + " ...");
+ } else {
+ API.setPlayerInventory(player, ev.getEmptyInventory(),
+ ev.getEmptyArmor());
+ }
+ } catch (NullPointerException ex) {
+ }
}
String[] msg;
- if(Settings.emailRegistration) {
- msg = data.isAuthAvailable(name) ? m._("login_msg") : m._("reg_email_msg");
+ if (Settings.emailRegistration) {
+ msg = data.isAuthAvailable(name) ? m._("login_msg") : m
+ ._("reg_email_msg");
} else {
- msg = data.isAuthAvailable(name) ? m._("login_msg") : m._("reg_msg");
+ msg = data.isAuthAvailable(name) ? m._("login_msg") : m
+ ._("reg_msg");
}
int time = Settings.getRegistrationTimeout * 20;
int msgInterval = Settings.getWarnMessageInterval;
if (time != 0) {
- int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), time);
- if(!LimboCache.getInstance().hasLimboPlayer(name))
- LimboCache.getInstance().addLimboPlayer(player);
+ int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(
+ plugin, name), time);
+ if (!LimboCache.getInstance().hasLimboPlayer(name)) LimboCache
+ .getInstance().addLimboPlayer(player);
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
}
- if(!LimboCache.getInstance().hasLimboPlayer(name))
- LimboCache.getInstance().addLimboPlayer(player);
+ if (!LimboCache.getInstance().hasLimboPlayer(name)) LimboCache
+ .getInstance().addLimboPlayer(player);
if (data.isAuthAvailable(name)) {
- utils.setGroup(player, groupType.NOTLOGGEDIN);
+ utils.setGroup(player, groupType.NOTLOGGEDIN);
} else {
- utils.setGroup(player, groupType.UNREGISTERED);
+ utils.setGroup(player, groupType.UNREGISTERED);
}
- if(player.isOp())
- player.setOp(false);
+ if (player.isOp()) player.setOp(false);
if (!Settings.isMovementAllowed) {
player.setAllowFlight(true);
player.setFlying(true);
}
- int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, msg, msgInterval));
+ int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(
+ plugin, name, msg, msgInterval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
player.setNoDamageTicks(Settings.getRegistrationTimeout * 20);
- if (Settings.useEssentialsMotd)
- player.performCommand("motd");
- if (Settings.applyBlindEffect)
- player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
-
+ if (Settings.useEssentialsMotd) player.performCommand("motd");
+ if (Settings.applyBlindEffect) player.addPotionEffect(new PotionEffect(
+ PotionEffectType.BLINDNESS,
+ Settings.getRegistrationTimeout * 20, 2));
+
// Remove the join message while the player isn't logging in
if (Settings.enableProtection || Settings.delayJoinMessage) {
joinMessage.put(name, event.getJoinMessage());
@@ -723,25 +762,32 @@ public class AuthMePlayerListener implements Listener {
}
}
- private void placePlayerSafely(Player player, Location spawnLoc) {
- if (!Settings.noTeleport) return;
- if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
- return;
- Block b = player.getLocation().getBlock();
- if (b.getType() == Material.PORTAL || b.getType() == Material.ENDER_PORTAL || b.getType() == Material.LAVA || b.getType() == Material.STATIONARY_LAVA) {
- m._(player, "unsafe_spawn");
- player.teleport(spawnLoc);
- return;
- }
- Block c = player.getLocation().add(0D, 1D, 0D).getBlock();
- if (c.getType() == Material.PORTAL || c.getType() == Material.ENDER_PORTAL || c.getType() == Material.LAVA || c.getType() == Material.STATIONARY_LAVA) {
- m._(player, "unsafe_spawn");
- player.teleport(spawnLoc);
- return;
- }
- }
+ private void placePlayerSafely(Player player, Location spawnLoc) {
+ if (!Settings.noTeleport) return;
+ if (Settings.isTeleportToSpawnEnabled
+ || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds
+ .contains(player.getWorld().getName()))) return;
+ Block b = player.getLocation().getBlock();
+ if (b.getType() == Material.PORTAL
+ || b.getType() == Material.ENDER_PORTAL
+ || b.getType() == Material.LAVA
+ || b.getType() == Material.STATIONARY_LAVA) {
+ m._(player, "unsafe_spawn");
+ player.teleport(spawnLoc);
+ return;
+ }
+ Block c = player.getLocation().add(0D, 1D, 0D).getBlock();
+ if (c.getType() == Material.PORTAL
+ || c.getType() == Material.ENDER_PORTAL
+ || c.getType() == Material.LAVA
+ || c.getType() == Material.STATIONARY_LAVA) {
+ m._(player, "unsafe_spawn");
+ player.teleport(spawnLoc);
+ return;
+ }
+ }
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer() == null) {
return;
@@ -751,142 +797,171 @@ public class AuthMePlayerListener implements Listener {
String name = player.getName().toLowerCase();
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)) {
return;
}
String ip = plugin.getIP(player);
if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
- if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
- final PlayerAuth auth = new PlayerAuth(name,loc.getX(),loc.getY(),loc.getZ(),loc.getWorld().getName());
- try {
- data.updateQuitLoc(auth);
- } catch (NullPointerException npe) { }
- }
- PlayerAuth auth = new PlayerAuth(name, ip, System.currentTimeMillis());
- data.updateSession(auth);
+ if (Settings.isSaveQuitLocationEnabled
+ && data.isAuthAvailable(name)) {
+ final PlayerAuth auth = new PlayerAuth(name, loc.getX(),
+ loc.getY(), loc.getZ(), loc.getWorld().getName());
+ try {
+ data.updateQuitLoc(auth);
+ } catch (NullPointerException npe) {
+ }
+ }
+ PlayerAuth auth = new PlayerAuth(name, ip,
+ System.currentTimeMillis());
+ data.updateSession(auth);
}
- if (data.getAuth(name) != null && !PlayerCache.getInstance().isAuthenticated(name) && Settings.enableProtection)
- event.setQuitMessage(null);
+ if (data.getAuth(name) != null
+ && !PlayerCache.getInstance().isAuthenticated(name)
+ && Settings.enableProtection) event.setQuitMessage(null);
if (LimboCache.getInstance().hasLimboPlayer(name)) {
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if(Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
- RestoreInventoryEvent ev = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
- plugin.getServer().getPluginManager().callEvent(ev);
- if (!ev.isCancelled()) {
- API.setPlayerInventory(player, ev.getInventory(), ev.getArmor());
- }
+ if (Settings.protectInventoryBeforeLogInEnabled
+ && player.hasPlayedBefore()) {
+ RestoreInventoryEvent ev = new RestoreInventoryEvent(player,
+ limbo.getInventory(), limbo.getArmour());
+ plugin.getServer().getPluginManager().callEvent(ev);
+ if (!ev.isCancelled()) {
+ API.setPlayerInventory(player, ev.getInventory(),
+ ev.getArmor());
+ }
}
utils.addNormal(player, limbo.getGroup());
player.setOp(limbo.getOperator());
- if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
+ if (player.getGameMode() != GameMode.CREATIVE
+ && !Settings.isMovementAllowed) {
player.setAllowFlight(limbo.isFlying());
player.setFlying(limbo.isFlying());
}
- this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- this.plugin.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
+ this.plugin.getServer().getScheduler()
+ .cancelTask(limbo.getTimeoutTaskId());
+ this.plugin.getServer().getScheduler()
+ .cancelTask(limbo.getMessageTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
- if(playerBackup.doesCacheExist(name)) {
- playerBackup.removeCache(name);
+ if (playerBackup.doesCacheExist(name)) {
+ playerBackup.removeCache(name);
}
}
- PlayerCache.getInstance().removePlayer(name);
- data.setUnlogged(name);
+ PlayerCache.getInstance().removePlayer(name);
+ data.setUnlogged(name);
try {
- player.getVehicle().eject();
+ player.getVehicle().eject();
} catch (NullPointerException ex) {
}
if (gameMode.containsKey(name)) gameMode.remove(name);
player.saveData();
}
- @EventHandler(priority=EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
- if (event.getPlayer() == null) {
- return;
- }
- if (event.isCancelled()) {
- return;
- }
+ if (event.getPlayer() == null) {
+ return;
+ }
+ if (event.isCancelled()) {
+ return;
+ }
- Player player = event.getPlayer();
- Location loc = player.getLocation();
+ Player player = event.getPlayer();
+ Location loc = player.getLocation();
- if ((plugin.getCitizensCommunicator().isNPC(player, plugin)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) {
- return;
- }
+ if ((plugin.getCitizensCommunicator().isNPC(player, plugin))
+ || (Utils.getInstance().isUnrestricted(player))
+ || (CombatTagComunicator.isNPC(player))) {
+ return;
+ }
- if ((Settings.isForceSingleSessionEnabled) &&
- (event.getReason().contains("You logged in from another location"))) {
- event.setCancelled(true);
- return;
- }
+ if ((Settings.isForceSingleSessionEnabled)
+ && (event.getReason()
+ .contains("You logged in from another location"))) {
+ event.setCancelled(true);
+ return;
+ }
- String name = player.getName().toLowerCase();
+ String name = player.getName().toLowerCase();
- String ip = plugin.getIP(player);
- if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead())) {
- if ((Settings.isSaveQuitLocationEnabled) && data.isAuthAvailable(name)){
- final PlayerAuth auth = new PlayerAuth(name, loc.getX(), loc.getY(), loc.getZ(),loc.getWorld().getName());
- try {
- data.updateQuitLoc(auth);
- } catch (NullPointerException npe) { }
- }
- PlayerAuth auth = new PlayerAuth(name, ip, System.currentTimeMillis());
- data.updateSession(auth);
- }
+ String ip = plugin.getIP(player);
+ if ((PlayerCache.getInstance().isAuthenticated(name))
+ && (!player.isDead())) {
+ if ((Settings.isSaveQuitLocationEnabled)
+ && data.isAuthAvailable(name)) {
+ final PlayerAuth auth = new PlayerAuth(name, loc.getX(),
+ loc.getY(), loc.getZ(), loc.getWorld().getName());
+ try {
+ data.updateQuitLoc(auth);
+ } catch (NullPointerException npe) {
+ }
+ }
+ PlayerAuth auth = new PlayerAuth(name, ip,
+ System.currentTimeMillis());
+ data.updateSession(auth);
+ }
- if (data.getAuth(name) != null && !PlayerCache.getInstance().isAuthenticated(name) && Settings.enableProtection)
- event.setLeaveMessage(null);
+ if (data.getAuth(name) != null
+ && !PlayerCache.getInstance().isAuthenticated(name)
+ && Settings.enableProtection) event.setLeaveMessage(null);
- if (LimboCache.getInstance().hasLimboPlayer(name))
- {
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if (Settings.protectInventoryBeforeLogInEnabled) {
- try {
- RestoreInventoryEvent ev = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
- plugin.getServer().getPluginManager().callEvent(ev);
- if (!ev.isCancelled()) {
- API.setPlayerInventory(player, ev.getInventory(), ev.getArmor());
- }
- } catch (NullPointerException npe){
- ConsoleLogger.showError("Problem while restore " + name + " inventory after a kick");
- }
- }
- if (!Settings.noTeleport)
- try {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (player != null && player.isOnline() && tpEvent.getTo() != null) {
- player.teleport(tpEvent.getTo());
- }
- }
- } catch (NullPointerException npe) {
- }
- this.utils.addNormal(player, limbo.getGroup());
- player.setOp(limbo.getOperator());
- if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
- player.setAllowFlight(limbo.isFlying());
- player.setFlying(limbo.isFlying());
- }
- this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- this.plugin.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
- LimboCache.getInstance().deleteLimboPlayer(name);
- if (this.playerBackup.doesCacheExist(name)) {
- this.playerBackup.removeCache(name);
- }
- }
- PlayerCache.getInstance().removePlayer(name);
- data.setUnlogged(name);
- if (gameMode.containsKey(name)) gameMode.remove(name);
- try {
- player.getVehicle().eject();
- } catch (NullPointerException ex) {}
- player.saveData();
+ if (LimboCache.getInstance().hasLimboPlayer(name)) {
+ LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
+ if (Settings.protectInventoryBeforeLogInEnabled) {
+ try {
+ RestoreInventoryEvent ev = new RestoreInventoryEvent(
+ player, limbo.getInventory(), limbo.getArmour());
+ plugin.getServer().getPluginManager().callEvent(ev);
+ if (!ev.isCancelled()) {
+ API.setPlayerInventory(player, ev.getInventory(),
+ ev.getArmor());
+ }
+ } catch (NullPointerException npe) {
+ ConsoleLogger.showError("Problem while restore " + name
+ + " inventory after a kick");
+ }
+ }
+ if (!Settings.noTeleport) try {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player,
+ limbo.getLoc());
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (player != null && player.isOnline()
+ && tpEvent.getTo() != null) {
+ player.teleport(tpEvent.getTo());
+ }
+ }
+ } catch (NullPointerException npe) {
+ }
+ this.utils.addNormal(player, limbo.getGroup());
+ player.setOp(limbo.getOperator());
+ if (player.getGameMode() != GameMode.CREATIVE
+ && !Settings.isMovementAllowed) {
+ player.setAllowFlight(limbo.isFlying());
+ player.setFlying(limbo.isFlying());
+ }
+ this.plugin.getServer().getScheduler()
+ .cancelTask(limbo.getTimeoutTaskId());
+ this.plugin.getServer().getScheduler()
+ .cancelTask(limbo.getMessageTaskId());
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ if (this.playerBackup.doesCacheExist(name)) {
+ this.playerBackup.removeCache(name);
+ }
+ }
+ PlayerCache.getInstance().removePlayer(name);
+ data.setUnlogged(name);
+ if (gameMode.containsKey(name)) gameMode.remove(name);
+ try {
+ player.getVehicle().eject();
+ } catch (NullPointerException ex) {
+ }
+ player.saveData();
}
@EventHandler(priority = EventPriority.MONITOR)
@@ -902,16 +977,16 @@ public class AuthMePlayerListener implements Listener {
return;
}
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
if (!data.isAuthAvailable(name)) {
- if (!Settings.isForcedRegistrationEnabled) {
- return;
+ if (!Settings.isForcedRegistrationEnabled) {
+ return;
}
}
@@ -929,10 +1004,10 @@ public class AuthMePlayerListener implements Listener {
return;
}
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -941,8 +1016,9 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
- if (event.getClickedBlock() != null && event.getClickedBlock().getType() != Material.AIR)
- event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
+ if (event.getClickedBlock() != null
+ && event.getClickedBlock().getType() != Material.AIR) event
+ .setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
event.setUseItemInHand(org.bukkit.event.Event.Result.DENY);
event.setCancelled(true);
}
@@ -957,10 +1033,10 @@ public class AuthMePlayerListener implements Listener {
return;
}
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -984,10 +1060,10 @@ public class AuthMePlayerListener implements Listener {
return;
}
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -1009,11 +1085,14 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer();
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;
}
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -1033,14 +1112,15 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
+ if (Utils.getInstance().isUnrestricted(player)
+ || CombatTagComunicator.isNPC(player)) {
return;
}
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -1064,7 +1144,8 @@ public class AuthMePlayerListener implements Listener {
return;
}
- if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
+ if (PlayerCache.getInstance().isAuthenticated(
+ player.getName().toLowerCase())) {
return;
}
@@ -1106,60 +1187,49 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)
+ || CombatTagComunicator.isNPC(player)) return;
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
+
+ if (!data.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return;
- if (!data.isAuthAvailable(name))
- if (!Settings.isForcedRegistrationEnabled)
- return;
-
Location spawn = plugin.getSpawnLocation(player);
- if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
- final PlayerAuth auth = new PlayerAuth(name,spawn.getX(),spawn.getY(),spawn.getZ(),spawn.getWorld().getName());
- try {
- data.updateQuitLoc(auth);
- } catch (NullPointerException npe) { }
- }
+ if (Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
+ final PlayerAuth auth = new PlayerAuth(name, spawn.getX(),
+ spawn.getY(), spawn.getZ(), spawn.getWorld().getName());
+ try {
+ data.updateQuitLoc(auth);
+ } catch (NullPointerException npe) {
+ }
+ }
event.setRespawnLocation(spawn);
}
- @EventHandler (priority = EventPriority.HIGHEST)
+ @EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerGameModeChange(PlayerGameModeChangeEvent event) {
- if (event.isCancelled())
- return;
- if (event.getPlayer() == null || event == null)
- return;
- if (!Settings.isForceSurvivalModeEnabled)
- return;
+ if (event.isCancelled()) return;
+ if (event.getPlayer() == null || event == null) return;
+ if (!Settings.isForceSurvivalModeEnabled) return;
Player player = event.getPlayer();
-
- if (plugin.authmePermissible(player, "authme.bypassforcesurvival"))
- return;
+
+ if (plugin.authmePermissible(player, "authme.bypassforcesurvival")) return;
String name = player.getName().toLowerCase();
- if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player))
- return;
+ if (Utils.getInstance().isUnrestricted(player)
+ || CombatTagComunicator.isNPC(player)) return;
- if(plugin.getCitizensCommunicator().isNPC(player, plugin))
- return;
+ if (plugin.getCitizensCommunicator().isNPC(player, plugin)) return;
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
- if (!data.isAuthAvailable(name))
- if (!Settings.isForcedRegistrationEnabled)
- return;
-
- if (this.causeByAuthMe)
- return;
+ if (!data.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return;
+
+ if (this.causeByAuthMe) return;
event.setCancelled(true);
}
}
diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java
index 42eed321..29dbcf48 100644
--- a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java
+++ b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java
@@ -18,80 +18,80 @@ public class AuthMeServerListener implements Listener {
private Messages m = Messages.getInstance();
public AuthMeServerListener(AuthMe plugin) {
- this.plugin = plugin;
+ this.plugin = plugin;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onServerPing(ServerListPingEvent event) {
- if (!Settings.enableProtection) return;
- if (Settings.countries.isEmpty()) return;
- if (!Settings.countriesBlacklist.isEmpty()) {
- if(Settings.countriesBlacklist.contains(plugin.getCountryCode(event.getAddress().getHostAddress())))
- event.setMotd(m._("country_banned")[0]);
- }
- if(Settings.countries.contains(plugin.getCountryCode(event.getAddress().getHostAddress()))) {
- event.setMotd(plugin.getServer().getMotd());
- } else {
- event.setMotd(m._("country_banned")[0]);
- }
+ if (!Settings.enableProtection) return;
+ if (Settings.countries.isEmpty()) return;
+ if (!Settings.countriesBlacklist.isEmpty()) {
+ if (Settings.countriesBlacklist.contains(plugin
+ .getCountryCode(event.getAddress().getHostAddress()))) event
+ .setMotd(m._("country_banned")[0]);
+ }
+ if (Settings.countries.contains(plugin.getCountryCode(event
+ .getAddress().getHostAddress()))) {
+ event.setMotd(plugin.getServer().getMotd());
+ } else {
+ event.setMotd(m._("country_banned")[0]);
+ }
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPluginDisable(PluginDisableEvent event) {
- String pluginName = event.getPlugin().getName();
- if(pluginName.equalsIgnoreCase("Essentials")) {
- plugin.ess = null;
- ConsoleLogger.info("Essentials has been disabled, unhook!");
- return;
- }
- if(pluginName.equalsIgnoreCase("EssentialsSpawn")) {
- plugin.essentialsSpawn = null;
- ConsoleLogger.info("EssentialsSpawn has been disabled, unhook!");
- return;
- }
- if(pluginName.equalsIgnoreCase("Multiverse-Core")) {
- plugin.multiverse = null;
- ConsoleLogger.info("Multiverse-Core has been disabled, unhook!");
- return;
- }
- if(pluginName.equalsIgnoreCase("Notifications")) {
- plugin.notifications = null;
- ConsoleLogger.info("Notifications has been disabled, unhook!");
- }
- if(pluginName.equalsIgnoreCase("ChestShop")) {
- plugin.ChestShop = 0;
- ConsoleLogger.info("ChestShop has been disabled, unhook!");
- }
- if(pluginName.equalsIgnoreCase("CombatTag")) {
- plugin.CombatTag = 0;
- ConsoleLogger.info("CombatTag has been disabled, unhook!");
- }
- if(pluginName.equalsIgnoreCase("Citizens")) {
- plugin.CitizensVersion = 0;
- ConsoleLogger.info("Citizens has been disabled, unhook!");
- }
- if(pluginName.equalsIgnoreCase("Vault")) {
- plugin.permission = null;
- ConsoleLogger.showError("Vault has been disabled, unhook permissions!");
- }
+ String pluginName = event.getPlugin().getName();
+ if (pluginName.equalsIgnoreCase("Essentials")) {
+ plugin.ess = null;
+ ConsoleLogger.info("Essentials has been disabled, unhook!");
+ return;
+ }
+ if (pluginName.equalsIgnoreCase("EssentialsSpawn")) {
+ plugin.essentialsSpawn = null;
+ ConsoleLogger.info("EssentialsSpawn has been disabled, unhook!");
+ return;
+ }
+ if (pluginName.equalsIgnoreCase("Multiverse-Core")) {
+ plugin.multiverse = null;
+ ConsoleLogger.info("Multiverse-Core has been disabled, unhook!");
+ return;
+ }
+ if (pluginName.equalsIgnoreCase("Notifications")) {
+ plugin.notifications = null;
+ ConsoleLogger.info("Notifications has been disabled, unhook!");
+ }
+ if (pluginName.equalsIgnoreCase("ChestShop")) {
+ plugin.ChestShop = 0;
+ ConsoleLogger.info("ChestShop has been disabled, unhook!");
+ }
+ if (pluginName.equalsIgnoreCase("CombatTag")) {
+ plugin.CombatTag = 0;
+ ConsoleLogger.info("CombatTag has been disabled, unhook!");
+ }
+ if (pluginName.equalsIgnoreCase("Citizens")) {
+ plugin.CitizensVersion = 0;
+ ConsoleLogger.info("Citizens has been disabled, unhook!");
+ }
+ if (pluginName.equalsIgnoreCase("Vault")) {
+ plugin.permission = null;
+ ConsoleLogger
+ .showError("Vault has been disabled, unhook permissions!");
+ }
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPluginEnable(PluginEnableEvent event) {
- String pluginName = event.getPlugin().getName();
- if(pluginName.equalsIgnoreCase("Essentials") || pluginName.equalsIgnoreCase("EssentialsSpawn"))
- plugin.checkEssentials();
- if(pluginName.equalsIgnoreCase("Multiverse-Core"))
- plugin.checkMultiverse();
- if(pluginName.equalsIgnoreCase("Notifications"))
- plugin.checkNotifications();
- if(pluginName.equalsIgnoreCase("ChestShop"))
- plugin.checkChestShop();
- if(pluginName.equalsIgnoreCase("CombatTag"))
- plugin.combatTag();
- if(pluginName.equalsIgnoreCase("Citizens"))
- plugin.citizensVersion();
- if(pluginName.equalsIgnoreCase("Vault"))
- plugin.checkVault();
+ String pluginName = event.getPlugin().getName();
+ if (pluginName.equalsIgnoreCase("Essentials")
+ || pluginName.equalsIgnoreCase("EssentialsSpawn")) plugin
+ .checkEssentials();
+ if (pluginName.equalsIgnoreCase("Multiverse-Core")) plugin
+ .checkMultiverse();
+ if (pluginName.equalsIgnoreCase("Notifications")) plugin
+ .checkNotifications();
+ if (pluginName.equalsIgnoreCase("ChestShop")) plugin.checkChestShop();
+ if (pluginName.equalsIgnoreCase("CombatTag")) plugin.combatTag();
+ if (pluginName.equalsIgnoreCase("Citizens")) plugin.citizensVersion();
+ if (pluginName.equalsIgnoreCase("Vault")) plugin.checkVault();
}
}
diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeSpoutListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeSpoutListener.java
index 8d7776c1..fe29b711 100644
--- a/src/main/java/fr/xephi/authme/listener/AuthMeSpoutListener.java
+++ b/src/main/java/fr/xephi/authme/listener/AuthMeSpoutListener.java
@@ -10,18 +10,21 @@ import fr.xephi.authme.gui.screens.LoginScreen;
import fr.xephi.authme.settings.SpoutCfg;
public class AuthMeSpoutListener implements Listener {
- private DataSource data;
+ private DataSource data;
public AuthMeSpoutListener(DataSource data) {
- this.data = data;
+ this.data = data;
}
- @EventHandler
- public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) {
- if(SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) {
- if (data.isAuthAvailable(event.getPlayer().getName().toLowerCase()) && !PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase()) ) {
- event.getPlayer().getMainScreen().attachPopupScreen(new LoginScreen(event.getPlayer()));
- }
- }
- }
+ @EventHandler
+ public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) {
+ if (SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) {
+ if (data.isAuthAvailable(event.getPlayer().getName().toLowerCase())
+ && !PlayerCache.getInstance().isAuthenticated(
+ event.getPlayer().getName().toLowerCase())) {
+ event.getPlayer().getMainScreen()
+ .attachPopupScreen(new LoginScreen(event.getPlayer()));
+ }
+ }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/plugin/manager/BungeeCordMessage.java b/src/main/java/fr/xephi/authme/plugin/manager/BungeeCordMessage.java
index 8d533eb3..f7ad284c 100644
--- a/src/main/java/fr/xephi/authme/plugin/manager/BungeeCordMessage.java
+++ b/src/main/java/fr/xephi/authme/plugin/manager/BungeeCordMessage.java
@@ -13,25 +13,27 @@ public class BungeeCordMessage implements PluginMessageListener {
public AuthMe plugin;
- public BungeeCordMessage(AuthMe plugin)
- {
+ public BungeeCordMessage(AuthMe plugin) {
this.plugin = plugin;
}
@Override
- public void onPluginMessageReceived(String channel, Player player, byte[] message) {
+ public void onPluginMessageReceived(String channel, Player player,
+ byte[] message) {
if (!channel.equals("BungeeCord")) {
return;
}
try {
- final DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
+ final DataInputStream in = new DataInputStream(
+ new ByteArrayInputStream(message));
String subchannel = in.readUTF();
- if (subchannel.equals("IP")) { //We need only the IP channel
- String ip = in.readUTF();
- plugin.realIp.put(player.getName().toLowerCase(), ip); //Put the IP (only the ip not the port) in the hashmap
+ if (subchannel.equals("IP")) { // We need only the IP channel
+ String ip = in.readUTF();
+ plugin.realIp.put(player.getName().toLowerCase(), ip);
+ // Put the IP (only the ip not the port) in the hashmap
}
} catch (IOException ex) {
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java b/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java
index a2c67a20..a1ec110b 100644
--- a/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java
+++ b/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java
@@ -12,22 +12,22 @@ public class CitizensCommunicator {
public AuthMe instance;
public CitizensCommunicator(AuthMe instance) {
- this.instance = instance;
+ this.instance = instance;
}
public boolean isNPC(final Entity player, AuthMe instance) {
- try {
- if (instance.CitizensVersion == 1) {
- return CitizensManager.isNPC(player);
- } else if (instance.CitizensVersion == 2) {
- return CitizensAPI.getNPCRegistry().isNPC(player);
- } else {
- return false;
- }
- } catch (NoClassDefFoundError ncdfe) {
- return false;
- } catch (Exception npe) {
- return false;
- }
+ try {
+ if (instance.CitizensVersion == 1) {
+ return CitizensManager.isNPC(player);
+ } else if (instance.CitizensVersion == 2) {
+ return CitizensAPI.getNPCRegistry().isNPC(player);
+ } else {
+ return false;
+ }
+ } catch (NoClassDefFoundError ncdfe) {
+ return false;
+ } catch (Exception npe) {
+ return false;
+ }
}
}
diff --git a/src/main/java/fr/xephi/authme/plugin/manager/CombatTagComunicator.java b/src/main/java/fr/xephi/authme/plugin/manager/CombatTagComunicator.java
index f3c57651..e16baf20 100644
--- a/src/main/java/fr/xephi/authme/plugin/manager/CombatTagComunicator.java
+++ b/src/main/java/fr/xephi/authme/plugin/manager/CombatTagComunicator.java
@@ -12,13 +12,15 @@ public abstract class CombatTagComunicator {
/**
* Returns if the entity is an NPC
+ *
* @param player
* @return true if the player is an NPC
*/
public static boolean isNPC(Entity player) {
try {
- if(Bukkit.getServer().getPluginManager().getPlugin("CombatTag") != null){
- combatApi = new CombatTagApi((CombatTag) Bukkit.getServer().getPluginManager().getPlugin("CombatTag"));
+ if (Bukkit.getServer().getPluginManager().getPlugin("CombatTag") != null) {
+ combatApi = new CombatTagApi((CombatTag) Bukkit.getServer()
+ .getPluginManager().getPlugin("CombatTag"));
try {
combatApi.getClass().getMethod("isNPC");
} catch (Exception e) {
diff --git a/src/main/java/fr/xephi/authme/plugin/manager/EssSpawn.java b/src/main/java/fr/xephi/authme/plugin/manager/EssSpawn.java
index 0b593a4e..7ab5a089 100644
--- a/src/main/java/fr/xephi/authme/plugin/manager/EssSpawn.java
+++ b/src/main/java/fr/xephi/authme/plugin/manager/EssSpawn.java
@@ -9,32 +9,39 @@ import fr.xephi.authme.settings.CustomConfiguration;
public class EssSpawn extends CustomConfiguration {
- private static EssSpawn spawn;
+ private static EssSpawn spawn;
- public EssSpawn() {
- super(new File("./plugins/Essentials/spawn.yml"));
- spawn = this;
- load();
- }
+ public EssSpawn() {
+ super(new File("./plugins/Essentials/spawn.yml"));
+ spawn = this;
+ load();
+ }
- public static EssSpawn getInstance() {
+ public static EssSpawn getInstance() {
if (spawn == null) {
spawn = new EssSpawn();
- }
+ }
return spawn;
}
- public Location getLocation() {
- try {
- if (!this.contains("spawns.default.world")) return null;
- if (this.getString("spawns.default.world").isEmpty() || this.getString("spawns.default.world") == "") return null;
- Location location = new Location(Bukkit.getWorld(this.getString("spawns.default.world")), this.getDouble("spawns.default.x"), this.getDouble("spawns.default.y"), this.getDouble("spawns.default.z"), Float.parseFloat(this.getString("spawns.default.yaw")), Float.parseFloat(this.getString("spawns.default.pitch")));
- return location;
- } catch (NullPointerException npe) {
- return null;
- } catch (NumberFormatException nfe) {
- return null;
- }
- }
+ public Location getLocation() {
+ try {
+ if (!this.contains("spawns.default.world")) return null;
+ if (this.getString("spawns.default.world").isEmpty()
+ || this.getString("spawns.default.world") == "") return null;
+ Location location = new Location(Bukkit.getWorld(this
+ .getString("spawns.default.world")),
+ this.getDouble("spawns.default.x"),
+ this.getDouble("spawns.default.y"),
+ this.getDouble("spawns.default.z"), Float.parseFloat(this
+ .getString("spawns.default.yaw")),
+ Float.parseFloat(this.getString("spawns.default.pitch")));
+ return location;
+ } catch (NullPointerException npe) {
+ return null;
+ } catch (NumberFormatException nfe) {
+ return null;
+ }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/process/Management.java b/src/main/java/fr/xephi/authme/process/Management.java
index 5f463908..fc52dd74 100644
--- a/src/main/java/fr/xephi/authme/process/Management.java
+++ b/src/main/java/fr/xephi/authme/process/Management.java
@@ -12,7 +12,8 @@ import fr.xephi.authme.settings.Settings;
/**
*
- * @authors Xephi59, Possible
+ * @authors Xephi59, Possible
*
*/
public class Management extends Thread {
@@ -30,11 +31,15 @@ public class Management extends Thread {
public void run() {
}
- public void performLogin(final Player player, final String password, final boolean forceLogin) {
- new AsyncronousLogin(player, password, forceLogin, plugin, database).process();
+ public void performLogin(final Player player, final String password,
+ final boolean forceLogin) {
+ new AsyncronousLogin(player, password, forceLogin, plugin, database)
+ .process();
}
- public void performRegister(final Player player, final String password, final String email) {
- new AsyncronousRegister(player, password, email, plugin, database).process();
+ public void performRegister(final Player player, final String password,
+ final String email) {
+ new AsyncronousRegister(player, password, email, plugin, database)
+ .process();
}
}
diff --git a/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java b/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java
index d3b9f691..a72a5051 100644
--- a/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java
+++ b/src/main/java/fr/xephi/authme/process/login/AsyncronousLogin.java
@@ -32,7 +32,8 @@ public class AsyncronousLogin {
private static RandomString rdm = new RandomString(Settings.captchaLength);
private Messages m = Messages.getInstance();
- public AsyncronousLogin(Player player, String password, boolean forceLogin, AuthMe plugin, DataSource data) {
+ public AsyncronousLogin(Player player, String password, boolean forceLogin,
+ AuthMe plugin, DataSource data) {
this.player = player;
this.password = password;
name = player.getName().toLowerCase();
@@ -43,8 +44,9 @@ public class AsyncronousLogin {
}
protected String getIP() {
- return plugin.getIP(player);
+ return plugin.getIP(player);
}
+
protected boolean needsCaptcha() {
if (Settings.useCaptcha) {
if (!plugin.captcha.containsKey(name)) {
@@ -54,13 +56,17 @@ public class AsyncronousLogin {
plugin.captcha.remove(name);
plugin.captcha.put(name, i);
}
- if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) >= Settings.maxLoginTry) {
+ if (plugin.captcha.containsKey(name)
+ && plugin.captcha.get(name) >= Settings.maxLoginTry) {
plugin.cap.put(name, rdm.nextString());
for (String s : m._("usage_captcha")) {
- player.sendMessage(s.replace("THE_CAPTCHA", plugin.cap.get(name)).replace("", plugin.cap.get(name)));
+ player.sendMessage(s.replace("THE_CAPTCHA",
+ plugin.cap.get(name)).replace("",
+ plugin.cap.get(name)));
}
return true;
- } else if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) >= Settings.maxLoginTry) {
+ } else if (plugin.captcha.containsKey(name)
+ && plugin.captcha.get(name) >= Settings.maxLoginTry) {
try {
plugin.captcha.remove(name);
plugin.cap.remove(name);
@@ -72,41 +78,52 @@ public class AsyncronousLogin {
}
/**
- * Checks the precondition for authentication (like user known) and returns the playerAuth-State
+ * Checks the precondition for authentication (like user known) and returns
+ * the playerAuth-State
*/
protected PlayerAuth preAuth() {
if (PlayerCache.getInstance().isAuthenticated(name)) {
- m._(player, "logged_in");
+ m._(player, "logged_in");
return null;
}
if (!database.isAuthAvailable(name)) {
- m._(player, "user_unknown");
- if(LimboCache.getInstance().hasLimboPlayer(name)) {
- Bukkit.getScheduler().cancelTask(LimboCache.getInstance().getLimboPlayer(name).getMessageTaskId());
- String[] msg;
- if(Settings.emailRegistration) {
- msg = m._("reg_email_msg");
+ m._(player, "user_unknown");
+ if (LimboCache.getInstance().hasLimboPlayer(name)) {
+ Bukkit.getScheduler().cancelTask(
+ LimboCache.getInstance().getLimboPlayer(name)
+ .getMessageTaskId());
+ String[] msg;
+ if (Settings.emailRegistration) {
+ msg = m._("reg_email_msg");
} else {
- msg = m._("reg_msg");
+ msg = m._("reg_msg");
}
- int msgT = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, msg, Settings.getWarnMessageInterval));
- LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
- }
+ int msgT = Bukkit.getScheduler().scheduleSyncDelayedTask(
+ plugin,
+ new MessageTask(plugin, name, msg,
+ Settings.getWarnMessageInterval));
+ LimboCache.getInstance().getLimboPlayer(name)
+ .setMessageTaskId(msgT);
+ }
return null;
}
- if (Settings.getMaxLoginPerIp > 0 && !plugin.authmePermissible(player, "authme.allow2accounts") && !getIP().equalsIgnoreCase("127.0.0.1") && !getIP().equalsIgnoreCase("localhost")) {
- if (plugin.isLoggedIp(realName, getIP())) {
- m._(player, "logged_in");
- return null;
- }
+ if (Settings.getMaxLoginPerIp > 0
+ && !plugin.authmePermissible(player, "authme.allow2accounts")
+ && !getIP().equalsIgnoreCase("127.0.0.1")
+ && !getIP().equalsIgnoreCase("localhost")) {
+ if (plugin.isLoggedIp(realName, getIP())) {
+ m._(player, "logged_in");
+ return null;
+ }
}
PlayerAuth pAuth = database.getAuth(name);
if (pAuth == null) {
- m._(player, "user_unknown");
+ m._(player, "user_unknown");
return null;
}
- if (!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
- m._(player, "vb_nonActiv");
+ if (!Settings.getMySQLColumnGroup.isEmpty()
+ && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
+ m._(player, "vb_nonActiv");
return null;
}
return pAuth;
@@ -114,22 +131,22 @@ public class AsyncronousLogin {
public void process() {
PlayerAuth pAuth = preAuth();
- if (pAuth == null || needsCaptcha())
- return;
+ if (pAuth == null || needsCaptcha()) return;
String hash = pAuth.getHash();
String email = pAuth.getEmail();
boolean passwordVerified = true;
- if (!forceLogin)
- try {
- passwordVerified = PasswordSecurity.comparePasswordWithHash(password, hash, realName);
- } catch (Exception ex) {
- ConsoleLogger.showError(ex.getMessage());
- m._(player, "error");
- return;
- }
+ if (!forceLogin) try {
+ passwordVerified = PasswordSecurity.comparePasswordWithHash(
+ password, hash, realName);
+ } catch (Exception ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ m._(player, "error");
+ return;
+ }
if (passwordVerified && player.isOnline()) {
- PlayerAuth auth = new PlayerAuth(name, hash, getIP(), new Date().getTime(), email, realName);
+ PlayerAuth auth = new PlayerAuth(name, hash, getIP(),
+ new Date().getTime(), email, realName);
database.updateSession(auth);
if (Settings.useCaptcha) {
@@ -146,11 +163,12 @@ public class AsyncronousLogin {
displayOtherAccounts(auth, player);
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " logged in!");
+ if (!Settings.noConsoleSpam) ConsoleLogger.info(player.getName()
+ + " logged in!");
if (plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
+ plugin.notifications.showNotification(new Notification(
+ "[AuthMe] " + player.getName() + " logged in!"));
}
// makes player isLoggedin via API
@@ -158,36 +176,53 @@ public class AsyncronousLogin {
database.setLogged(name);
plugin.otherAccounts.addPlayer(player.getUniqueId());
- // As the scheduling executes the Task most likely after the current task, we schedule it in the end
- // so that we can be sure, and have not to care if it might be processed in other order.
- ProcessSyncronousPlayerLogin syncronousPlayerLogin = new ProcessSyncronousPlayerLogin(player, plugin, database);
+ // As the scheduling executes the Task most likely after the current
+ // task, we schedule it in the end
+ // so that we can be sure, and have not to care if it might be
+ // processed in other order.
+ ProcessSyncronousPlayerLogin syncronousPlayerLogin = new ProcessSyncronousPlayerLogin(
+ player, plugin, database);
if (syncronousPlayerLogin.getLimbo() != null) {
- player.getServer().getScheduler().cancelTask(syncronousPlayerLogin.getLimbo().getTimeoutTaskId());
- player.getServer().getScheduler().cancelTask(syncronousPlayerLogin.getLimbo().getMessageTaskId());
+ player.getServer()
+ .getScheduler()
+ .cancelTask(
+ syncronousPlayerLogin.getLimbo()
+ .getTimeoutTaskId());
+ player.getServer()
+ .getScheduler()
+ .cancelTask(
+ syncronousPlayerLogin.getLimbo()
+ .getMessageTaskId());
}
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, syncronousPlayerLogin);
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ syncronousPlayerLogin);
} else if (player.isOnline()) {
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " used the wrong password");
+ if (!Settings.noConsoleSpam) ConsoleLogger.info(player.getName()
+ + " used the wrong password");
if (Settings.isKickOnWrongPasswordEnabled) {
- Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- if (AuthMePlayerListener.gameMode != null && AuthMePlayerListener.gameMode.containsKey(name)) {
- player.setGameMode(AuthMePlayerListener.gameMode.get(name));
- }
- player.kickPlayer(m._("wrong_pwd")[0]);
- }
- });
+ Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new Runnable() {
+ @Override
+ public void run() {
+ if (AuthMePlayerListener.gameMode != null
+ && AuthMePlayerListener.gameMode
+ .containsKey(name)) {
+ player.setGameMode(AuthMePlayerListener.gameMode
+ .get(name));
+ }
+ player.kickPlayer(m._("wrong_pwd")[0]);
+ }
+ });
} else {
- m._(player, "wrong_pwd");
+ m._(player, "wrong_pwd");
return;
}
} else {
- ConsoleLogger.showError("Player " + name + " wasn't online during login process, aborted... ");
+ ConsoleLogger.showError("Player " + name
+ + " wasn't online during login process, aborted... ");
}
}
-
+
public void displayOtherAccounts(PlayerAuth auth, Player p) {
if (!Settings.displayOtherAccounts) {
return;
@@ -196,7 +231,8 @@ public class AsyncronousLogin {
return;
}
List auths = this.database.getAllAuthsByName(auth);
- //List uuidlist = plugin.otherAccounts.getAllPlayersByUUID(player.getUniqueId());
+ // List uuidlist =
+ // plugin.otherAccounts.getAllPlayersByUUID(player.getUniqueId());
if (auths.isEmpty() || auths == null) {
return;
}
@@ -204,7 +240,8 @@ public class AsyncronousLogin {
return;
}
String message = "[AuthMe] ";
- //String uuidaccounts = "[AuthMe] PlayerNames has %size% links to this UUID : ";
+ // String uuidaccounts =
+ // "[AuthMe] PlayerNames has %size% links to this UUID : ";
int i = 0;
for (String account : auths) {
i++;
@@ -215,23 +252,19 @@ public class AsyncronousLogin {
message = message + ".";
}
}
- /*TODO: Active uuid system
- i = 0;
- for (String account : uuidlist) {
- i++;
- uuidaccounts = uuidaccounts + account;
- if (i != auths.size()) {
- uuidaccounts = uuidaccounts + ", ";
- } else {
- uuidaccounts = uuidaccounts + ".";
- }
- }*/
+ /*
+ * TODO: Active uuid system i = 0; for (String account : uuidlist) {
+ * i++; uuidaccounts = uuidaccounts + account; if (i != auths.size()) {
+ * uuidaccounts = uuidaccounts + ", "; } else { uuidaccounts =
+ * uuidaccounts + "."; } }
+ */
for (Player player : plugin.getServer().getOnlinePlayers()) {
if (plugin.authmePermissible(player, "authme.seeOtherAccounts")) {
- player.sendMessage("[AuthMe] The player " + auth.getNickname() + " has "
- + auths.size() + " accounts");
+ player.sendMessage("[AuthMe] The player " + auth.getNickname()
+ + " has " + auths.size() + " accounts");
player.sendMessage(message);
- //player.sendMessage(uuidaccounts.replace("%size%", ""+uuidlist.size()));
+ // player.sendMessage(uuidaccounts.replace("%size%",
+ // ""+uuidlist.size()));
}
}
}
diff --git a/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java b/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java
index d409dfbe..21b1a31c 100644
--- a/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java
+++ b/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java
@@ -33,10 +33,11 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
private PluginManager pm;
private FileCache playerCache = new FileCache();
- public ProcessSyncronousPlayerLogin(Player player, AuthMe plugin, DataSource data) {
- this.plugin = plugin;
- this.database = data;
- this.pm = plugin.getServer().getPluginManager();
+ public ProcessSyncronousPlayerLogin(Player player, AuthMe plugin,
+ DataSource data) {
+ this.plugin = plugin;
+ this.database = data;
+ this.pm = plugin.getServer().getPluginManager();
this.player = player;
this.name = player.getName().toLowerCase();
this.limbo = LimboCache.getInstance().getLimboPlayer(name);
@@ -49,18 +50,21 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
protected void restoreOpState() {
player.setOp(limbo.getOperator());
- if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
+ if (player.getGameMode() != GameMode.CREATIVE
+ && !Settings.isMovementAllowed) {
player.setAllowFlight(limbo.isFlying());
player.setFlying(limbo.isFlying());
}
}
protected void packQuitLocation() {
- Utils.getInstance().packCoords(auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ(), auth.getWorld(), player);
+ Utils.getInstance().packCoords(auth.getQuitLocX(), auth.getQuitLocY(),
+ auth.getQuitLocZ(), auth.getWorld(), player);
}
protected void teleportBackFromSpawn() {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player,
+ limbo.getLoc());
pm.callEvent(tpEvent);
if (!tpEvent.isCancelled()) {
Location fLoc = tpEvent.getTo();
@@ -73,7 +77,8 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
protected void teleportToSpawn() {
Location spawnL = plugin.getSpawnLocation(player);
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnL, true);
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player,
+ player.getLocation(), spawnL, true);
pm.callEvent(tpEvent);
if (!tpEvent.isCancelled()) {
Location fLoc = tpEvent.getTo();
@@ -85,49 +90,57 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
}
protected void restoreInventory() {
- RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
+ RestoreInventoryEvent event = new RestoreInventoryEvent(player,
+ limbo.getInventory(), limbo.getArmour());
Bukkit.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
- API.setPlayerInventory(player, event.getInventory(), event.getArmor());
+ API.setPlayerInventory(player, event.getInventory(),
+ event.getArmor());
}
}
protected void forceCommands() {
- for (String command : Settings.forceCommands) {
- try {
- player.performCommand(command.replace("%p", player.getName()));
- } catch (Exception e) {}
- }
- for (String command : Settings.forceCommandsAsConsole) {
- Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command.replace("%p", player.getName()));
- }
+ for (String command : Settings.forceCommands) {
+ try {
+ player.performCommand(command.replace("%p", player.getName()));
+ } catch (Exception e) {
+ }
+ }
+ for (String command : Settings.forceCommandsAsConsole) {
+ Bukkit.getServer().dispatchCommand(
+ Bukkit.getServer().getConsoleSender(),
+ command.replace("%p", player.getName()));
+ }
}
@Override
public void run() {
- // Limbo contains the State of the Player before /login
+ // Limbo contains the State of the Player before /login
if (limbo != null) {
// Op & Flying
restoreOpState();
/*
- * Restore Inventories and GameMode
- * We need to restore them before teleport the player
- * Cause in AuthMePlayerListener, we call ProtectInventoryEvent after Teleporting
- * Also it's the current world inventory !
+ * Restore Inventories and GameMode We need to restore them before
+ * teleport the player Cause in AuthMePlayerListener, we call
+ * ProtectInventoryEvent after Teleporting Also it's the current
+ * world inventory !
*/
if (!Settings.forceOnlyAfterLogin) {
- player.setGameMode(limbo.getGameMode());
- // Inventory - Make it after restore GameMode , cause we need to restore the
+ player.setGameMode(limbo.getGameMode());
+ // Inventory - Make it after restore GameMode , cause we need to
+ // restore the
// right inventory in the right gamemode
- if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
+ if (Settings.protectInventoryBeforeLogInEnabled
+ && player.hasPlayedBefore()) {
restoreInventory();
}
- }
- else {
- // Inventory - Make it before force the survival GameMode to cancel all
- // inventory problem
- if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
+ } else {
+ // Inventory - Make it before force the survival GameMode to
+ // cancel all
+ // inventory problem
+ if (Settings.protectInventoryBeforeLogInEnabled
+ && player.hasPlayedBefore()) {
restoreInventory();
}
player.setGameMode(GameMode.SURVIVAL);
@@ -135,25 +148,32 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
if (!Settings.noTeleport) {
// Teleport
- if (Settings.isTeleportToSpawnEnabled && !Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
- if (Settings.isSaveQuitLocationEnabled && auth.getQuitLocY() != 0) {
+ if (Settings.isTeleportToSpawnEnabled
+ && !Settings.isForceSpawnLocOnJoinEnabled
+ && Settings.getForcedWorlds.contains(player.getWorld()
+ .getName())) {
+ if (Settings.isSaveQuitLocationEnabled
+ && auth.getQuitLocY() != 0) {
packQuitLocation();
} else {
teleportBackFromSpawn();
}
- } else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
+ } else if (Settings.isForceSpawnLocOnJoinEnabled
+ && Settings.getForcedWorlds.contains(player.getWorld()
+ .getName())) {
teleportToSpawn();
- } else if (Settings.isSaveQuitLocationEnabled && auth.getQuitLocY() != 0) {
+ } else if (Settings.isSaveQuitLocationEnabled
+ && auth.getQuitLocY() != 0) {
packQuitLocation();
} else {
teleportBackFromSpawn();
}
}
- // Re-Force Survival GameMode if we need due to world change specification
- if (Settings.isForceSurvivalModeEnabled)
- Utils.forceGM(player);
-
+ // Re-Force Survival GameMode if we need due to world change
+ // specification
+ if (Settings.isForceSurvivalModeEnabled) Utils.forceGM(player);
+
// Restore Permission Group
Utils.getInstance().setGroup(player, groupType.LOGGEDIN);
@@ -165,32 +185,35 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
}
// We can now display the join message
- if (AuthMePlayerListener.joinMessage.containsKey(name) && AuthMePlayerListener.joinMessage.get(name) != null && !AuthMePlayerListener.joinMessage.get(name).isEmpty()) {
- for (Player p : Bukkit.getServer().getOnlinePlayers()) {
- if (p.isOnline())
- p.sendMessage(AuthMePlayerListener.joinMessage.get(name));
- }
- AuthMePlayerListener.joinMessage.remove(name);
+ if (AuthMePlayerListener.joinMessage.containsKey(name)
+ && AuthMePlayerListener.joinMessage.get(name) != null
+ && !AuthMePlayerListener.joinMessage.get(name).isEmpty()) {
+ for (Player p : Bukkit.getServer().getOnlinePlayers()) {
+ if (p.isOnline()) p
+ .sendMessage(AuthMePlayerListener.joinMessage.get(name));
+ }
+ AuthMePlayerListener.joinMessage.remove(name);
}
- if (Settings.applyBlindEffect)
- player.removePotionEffect(PotionEffectType.BLINDNESS);
+ if (Settings.applyBlindEffect) player
+ .removePotionEffect(PotionEffectType.BLINDNESS);
// The Loginevent now fires (as intended) after everything is processed
- Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
+ Bukkit.getServer().getPluginManager()
+ .callEvent(new LoginEvent(player, true));
player.saveData();
// Login is finish, display welcome message
- if(Settings.useWelcomeMessage)
- if(Settings.broadcastWelcomeMessage) {
- for (String s : Settings.welcomeMsg) {
- Bukkit.getServer().broadcastMessage(plugin.replaceAllInfos(s, player));
- }
- } else {
- for (String s : Settings.welcomeMsg) {
- player.sendMessage(plugin.replaceAllInfos(s, player));
- }
+ if (Settings.useWelcomeMessage) if (Settings.broadcastWelcomeMessage) {
+ for (String s : Settings.welcomeMsg) {
+ Bukkit.getServer().broadcastMessage(
+ plugin.replaceAllInfos(s, player));
}
+ } else {
+ for (String s : Settings.welcomeMsg) {
+ player.sendMessage(plugin.replaceAllInfos(s, player));
+ }
+ }
// Login is now finish , we can force all commands
forceCommands();
diff --git a/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java b/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java
index a071cf74..96fd05e0 100644
--- a/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java
+++ b/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java
@@ -26,7 +26,8 @@ public class AsyncronousRegister {
private DataSource database;
private Messages m = Messages.getInstance();
- public AsyncronousRegister(Player player, String password, String email, AuthMe plugin, DataSource data) {
+ public AsyncronousRegister(Player player, String password, String email,
+ AuthMe plugin, DataSource data) {
this.player = player;
this.password = password;
name = player.getName().toLowerCase();
@@ -38,11 +39,11 @@ public class AsyncronousRegister {
}
protected String getIp() {
- return plugin.getIP(player);
+ return plugin.getIP(player);
}
protected void preRegister() {
- if (PlayerCache.getInstance().isAuthenticated(name)) {
+ if (PlayerCache.getInstance().isAuthenticated(name)) {
m._(player, "logged_in");
allowRegister = false;
}
@@ -54,8 +55,9 @@ public class AsyncronousRegister {
String lowpass = password.toLowerCase();
if ((lowpass.contains("delete") || lowpass.contains("where")
- || lowpass.contains("insert") || lowpass.contains("modify") || lowpass.contains("from")
- || lowpass.contains("select") || lowpass.contains(";") || lowpass.contains("null"))
+ || lowpass.contains("insert") || lowpass.contains("modify")
+ || lowpass.contains("from") || lowpass.contains("select")
+ || lowpass.contains(";") || lowpass.contains("null"))
|| !lowpass.matches(Settings.getPassRegex)) {
m._(player, "password_error");
allowRegister = false;
@@ -63,102 +65,122 @@ public class AsyncronousRegister {
if (database.isAuthAvailable(player.getName().toLowerCase())) {
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(player.getName())) {
+ plugin.pllog.getStringList("players").remove(player.getName());
}
allowRegister = false;
}
- if(Settings.getmaxRegPerIp > 0 ){
- if(!plugin.authmePermissible(player, "authme.allow2accounts") && database.getAllAuthsByIp(getIp()).size() >= Settings.getmaxRegPerIp && !getIp().equalsIgnoreCase("127.0.0.1") && !getIp().equalsIgnoreCase("localhost")) {
- m._(player, "max_reg");
- allowRegister = false;
- }
+ if (Settings.getmaxRegPerIp > 0) {
+ if (!plugin.authmePermissible(player, "authme.allow2accounts")
+ && database.getAllAuthsByIp(getIp()).size() >= Settings.getmaxRegPerIp
+ && !getIp().equalsIgnoreCase("127.0.0.1")
+ && !getIp().equalsIgnoreCase("localhost")) {
+ m._(player, "max_reg");
+ allowRegister = false;
+ }
}
-
+
}
public void process() {
- preRegister();
- if(!allowRegister) return;
- if(!email.isEmpty() && email != "") {
- if(Settings.getmaxRegPerEmail > 0) {
- if (!plugin.authmePermissible(player, "authme.allow2accounts") && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
- m._(player, "max_reg");
- return;
- }
- }
- emailRegister();
- return;
- }
- passwordRegister();
+ preRegister();
+ if (!allowRegister) return;
+ if (!email.isEmpty() && email != "") {
+ if (Settings.getmaxRegPerEmail > 0) {
+ if (!plugin.authmePermissible(player, "authme.allow2accounts")
+ && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
+ m._(player, "max_reg");
+ return;
+ }
+ }
+ emailRegister();
+ return;
+ }
+ passwordRegister();
}
protected void emailRegister() {
- if(Settings.getmaxRegPerEmail > 0) {
- if (!plugin.authmePermissible(player, "authme.allow2accounts") && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
- m._(player, "max_reg");
- return;
- }
- }
- PlayerAuth auth = null;
- try {
- final String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash, password, name);
- auth = new PlayerAuth(name, hashnew, getIp(), new Date().getTime(), (int) player.getLocation().getX() , (int) player.getLocation().getY(), (int) player.getLocation().getZ(), player.getLocation().getWorld().getName(), email, realName);
- } catch (NoSuchAlgorithmException e) {
- ConsoleLogger.showError(e.getMessage());
- m._(player, "error");
- return;
- }
- if (PasswordSecurity.userSalt.containsKey(name)) {
- auth.setSalt(PasswordSecurity.userSalt.get(name));
- }
+ if (Settings.getmaxRegPerEmail > 0) {
+ if (!plugin.authmePermissible(player, "authme.allow2accounts")
+ && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
+ m._(player, "max_reg");
+ return;
+ }
+ }
+ PlayerAuth auth = null;
+ try {
+ final String hashnew = PasswordSecurity.getHash(
+ Settings.getPasswordHash, password, name);
+ auth = new PlayerAuth(name, hashnew, getIp(), new Date().getTime(),
+ (int) player.getLocation().getX(), (int) player
+ .getLocation().getY(), (int) player.getLocation()
+ .getZ(), player.getLocation().getWorld().getName(),
+ email, realName);
+ } catch (NoSuchAlgorithmException e) {
+ ConsoleLogger.showError(e.getMessage());
+ m._(player, "error");
+ return;
+ }
+ if (PasswordSecurity.userSalt.containsKey(name)) {
+ auth.setSalt(PasswordSecurity.userSalt.get(name));
+ }
database.saveAuth(auth);
- database.updateEmail(auth);
- database.updateSession(auth);
- plugin.mail.main(auth, password);
- ProcessSyncronousEmailRegister syncronous = new ProcessSyncronousEmailRegister(player, plugin);
- plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, syncronous);
- return;
+ database.updateEmail(auth);
+ database.updateSession(auth);
+ plugin.mail.main(auth, password);
+ ProcessSyncronousEmailRegister syncronous = new ProcessSyncronousEmailRegister(
+ player, plugin);
+ plugin.getServer().getScheduler()
+ .scheduleSyncDelayedTask(plugin, syncronous);
+ return;
}
protected void passwordRegister() {
- if(password.length() < Settings.getPasswordMinLen || password.length() > Settings.passwordMaxLength) {
- m._(player, "pass_len");
+ if (password.length() < Settings.getPasswordMinLen
+ || password.length() > Settings.passwordMaxLength) {
+ m._(player, "pass_len");
return;
}
- if(!Settings.unsafePasswords.isEmpty()) {
- if (Settings.unsafePasswords.contains(password.toLowerCase())) {
- m._(player, "password_error");
- return;
- }
+ if (!Settings.unsafePasswords.isEmpty()) {
+ if (Settings.unsafePasswords.contains(password.toLowerCase())) {
+ m._(player, "password_error");
+ return;
+ }
}
PlayerAuth auth = null;
String hash = "";
- try {
- hash = PasswordSecurity.getHash(Settings.getPasswordHash, password, name);
- } catch (NoSuchAlgorithmException e) {
- ConsoleLogger.showError(e.getMessage());
- m._(player, "error");
- return;
- }
- if (Settings.getMySQLColumnSalt.isEmpty() && !PasswordSecurity.userSalt.containsKey(name))
- {
- auth = new PlayerAuth(name, hash, getIp(), new Date().getTime(), "your@email.com", player.getName());
+ try {
+ hash = PasswordSecurity.getHash(Settings.getPasswordHash, password,
+ name);
+ } catch (NoSuchAlgorithmException e) {
+ ConsoleLogger.showError(e.getMessage());
+ m._(player, "error");
+ return;
+ }
+ if (Settings.getMySQLColumnSalt.isEmpty()
+ && !PasswordSecurity.userSalt.containsKey(name)) {
+ auth = new PlayerAuth(name, hash, getIp(), new Date().getTime(),
+ "your@email.com", player.getName());
} else {
- auth = new PlayerAuth(name, hash, PasswordSecurity.userSalt.get(name), getIp(), new Date().getTime(), player.getName());
+ auth = new PlayerAuth(name, hash,
+ PasswordSecurity.userSalt.get(name), getIp(),
+ new Date().getTime(), player.getName());
}
if (!database.saveAuth(auth)) {
- m._(player, "error");
+ m._(player, "error");
return;
}
if (!Settings.forceRegLogin) {
PlayerCache.getInstance().addPlayer(auth);
- database.setLogged(name);
+ database.setLogged(name);
}
plugin.otherAccounts.addPlayer(player.getUniqueId());
- ProcessSyncronousPasswordRegister syncronous = new ProcessSyncronousPasswordRegister(player, plugin);
- plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, syncronous);
+ ProcessSyncronousPasswordRegister syncronous = new ProcessSyncronousPasswordRegister(
+ player, plugin);
+ plugin.getServer().getScheduler()
+ .scheduleSyncDelayedTask(plugin, syncronous);
return;
}
}
diff --git a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousEmailRegister.java b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousEmailRegister.java
index cd387593..9428d96d 100644
--- a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousEmailRegister.java
+++ b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousEmailRegister.java
@@ -20,56 +20,69 @@ import fr.xephi.authme.task.TimeoutTask;
public class ProcessSyncronousEmailRegister implements Runnable {
- protected Player player;
- protected String name;
- private AuthMe plugin;
- private Messages m = Messages.getInstance();
- public ProcessSyncronousEmailRegister(Player player, AuthMe plugin) {
- this.player = player;
- this.name = player.getName().toLowerCase();
- this.plugin = plugin;
- }
- @Override
- public void run() {
- if(!Settings.getRegisteredGroup.isEmpty()){
+ protected Player player;
+ protected String name;
+ private AuthMe plugin;
+ private Messages m = Messages.getInstance();
+
+ public ProcessSyncronousEmailRegister(Player player, AuthMe plugin) {
+ this.player = player;
+ this.name = player.getName().toLowerCase();
+ this.plugin = plugin;
+ }
+
+ @Override
+ public void run() {
+ if (!Settings.getRegisteredGroup.isEmpty()) {
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
}
m._(player, "vb_nonActiv");
- int time = Settings.getRegistrationTimeout * 20;
- int msgInterval = Settings.getWarnMessageInterval;
+ int time = Settings.getRegistrationTimeout * 20;
+ int msgInterval = Settings.getWarnMessageInterval;
if (time != 0) {
- Bukkit.getScheduler().cancelTask(LimboCache.getInstance().getLimboPlayer(name).getTimeoutTaskId());
- int id = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), time);
+ Bukkit.getScheduler().cancelTask(
+ LimboCache.getInstance().getLimboPlayer(name)
+ .getTimeoutTaskId());
+ int id = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new TimeoutTask(plugin, name), time);
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
}
- Bukkit.getScheduler().cancelTask(LimboCache.getInstance().getLimboPlayer(name).getMessageTaskId());
- int nwMsg = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), msgInterval));
+ Bukkit.getScheduler().cancelTask(
+ LimboCache.getInstance().getLimboPlayer(name)
+ .getMessageTaskId());
+ int nwMsg = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
+ new MessageTask(plugin, name, m._("login_msg"), msgInterval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(nwMsg);
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location loca = plugin.getSpawnLocation(player);
- RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player, loca);
+ Location loca = plugin.getSpawnLocation(player);
+ RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player,
+ loca);
plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
+ if (!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .load();
+ }
+ player.teleport(tpEvent.getTo());
}
}
- if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
+ if (player.getGameMode() != GameMode.CREATIVE
+ && !Settings.isMovementAllowed) {
player.setAllowFlight(false);
player.setFlying(false);
}
- if (Settings.applyBlindEffect)
- player.removePotionEffect(PotionEffectType.BLINDNESS);
+ if (Settings.applyBlindEffect) player
+ .removePotionEffect(PotionEffectType.BLINDNESS);
player.saveData();
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " registered "+plugin.getIP(player));
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered by email!"));
+ if (!Settings.noConsoleSpam) ConsoleLogger.info(player.getName()
+ + " registered " + plugin.getIP(player));
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification("[AuthMe] "
+ + player.getName() + " has registered by email!"));
}
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java
index de500151..ed8d2872 100644
--- a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java
+++ b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java
@@ -24,125 +24,138 @@ import fr.xephi.authme.task.TimeoutTask;
public class ProcessSyncronousPasswordRegister implements Runnable {
- protected Player player;
- protected String name;
- private AuthMe plugin;
- private Messages m = Messages.getInstance();
- public ProcessSyncronousPasswordRegister(Player player, AuthMe plugin) {
- this.player = player;
- this.name = player.getName().toLowerCase();
- this.plugin = plugin;
- }
-
- protected void forceCommands(Player player) {
- for (String command : Settings.forceCommands) {
- try {
- player.performCommand(command.replace("%p", player.getName()));
- } catch (Exception e) {}
- }
+ protected Player player;
+ protected String name;
+ private AuthMe plugin;
+ private Messages m = Messages.getInstance();
+
+ public ProcessSyncronousPasswordRegister(Player player, AuthMe plugin) {
+ this.player = player;
+ this.name = player.getName().toLowerCase();
+ this.plugin = plugin;
}
- protected void forceLogin(Player player) {
- if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location spawnLoc = plugin.getSpawnLocation(player);
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, spawnLoc);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
+ protected void forceCommands(Player player) {
+ for (String command : Settings.forceCommands) {
+ try {
+ player.performCommand(command.replace("%p", player.getName()));
+ } catch (Exception e) {
}
}
- if (LimboCache.getInstance().hasLimboPlayer(name))
- LimboCache.getInstance().deleteLimboPlayer(name);
+ }
+
+ protected void forceLogin(Player player) {
+ if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
+ Location spawnLoc = plugin.getSpawnLocation(player);
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player,
+ spawnLoc);
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .load();
+ }
+ player.teleport(tpEvent.getTo());
+ }
+ }
+ if (LimboCache.getInstance().hasLimboPlayer(name)) LimboCache
+ .getInstance().deleteLimboPlayer(name);
LimboCache.getInstance().addLimboPlayer(player);
int delay = Settings.getRegistrationTimeout * 20;
int interval = Settings.getWarnMessageInterval;
BukkitScheduler sched = plugin.getServer().getScheduler();
if (delay != 0) {
- int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
+ int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(
+ plugin, name), delay);
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
}
- int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
+ int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(
+ plugin, name, m._("login_msg"), interval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
try {
- plugin.pllog.removePlayer(name);
- if (player.isInsideVehicle())
- player.getVehicle().eject();
+ plugin.pllog.removePlayer(name);
+ if (player.isInsideVehicle()) player.getVehicle().eject();
} catch (NullPointerException npe) {
}
- }
-
- @Override
- public void run() {
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if (limbo != null) {
- player.setGameMode(limbo.getGameMode());
- if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
- Location loca = plugin.getSpawnLocation(player);
- RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player, loca);
- plugin.getServer().getPluginManager().callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
- plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- plugin.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
- LimboCache.getInstance().deleteLimboPlayer(name);
- }
+ }
- if(!Settings.getRegisteredGroup.isEmpty()){
- Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
- }
- m._(player, "registered");
- if (!Settings.getmailAccount.isEmpty())
- m._(player, "add_email");
- if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
- player.setAllowFlight(false);
- player.setFlying(false);
- }
- if (Settings.applyBlindEffect)
- player.removePotionEffect(PotionEffectType.BLINDNESS);
- // The Loginevent now fires (as intended) after everything is processed
- Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
- player.saveData();
-
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " registered "+plugin.getIP(player));
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered!"));
- }
+ @Override
+ public void run() {
+ LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
+ if (limbo != null) {
+ player.setGameMode(limbo.getGameMode());
+ if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
+ Location loca = plugin.getSpawnLocation(player);
+ RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(
+ player, loca);
+ plugin.getServer().getPluginManager().callEvent(tpEvent);
+ if (!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo())
+ .load();
+ }
+ player.teleport(tpEvent.getTo());
+ }
+ }
+ plugin.getServer().getScheduler()
+ .cancelTask(limbo.getTimeoutTaskId());
+ plugin.getServer().getScheduler()
+ .cancelTask(limbo.getMessageTaskId());
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ }
- // Kick Player after Registration is enabled, kick the player
- if (Settings.forceRegKick) {
- player.kickPlayer(m._("registered")[0]);
- return;
- }
+ if (!Settings.getRegisteredGroup.isEmpty()) {
+ Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
+ }
+ m._(player, "registered");
+ if (!Settings.getmailAccount.isEmpty()) m._(player, "add_email");
+ if (player.getGameMode() != GameMode.CREATIVE
+ && !Settings.isMovementAllowed) {
+ player.setAllowFlight(false);
+ player.setFlying(false);
+ }
+ if (Settings.applyBlindEffect) player
+ .removePotionEffect(PotionEffectType.BLINDNESS);
+ // The Loginevent now fires (as intended) after everything is processed
+ Bukkit.getServer().getPluginManager()
+ .callEvent(new LoginEvent(player, true));
+ player.saveData();
- // Request Login after Registation
- if (Settings.forceRegLogin) {
- forceLogin(player);
- return;
- }
+ if (!Settings.noConsoleSpam) ConsoleLogger.info(player.getName()
+ + " registered " + plugin.getIP(player));
+ if (plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification("[AuthMe] "
+ + player.getName() + " has registered!"));
+ }
- // Register is finish and player is logged, display welcome message
- if(Settings.useWelcomeMessage)
- if(Settings.broadcastWelcomeMessage) {
- for (String s : Settings.welcomeMsg) {
- Bukkit.getServer().broadcastMessage(plugin.replaceAllInfos(s, player));
- }
- } else {
- for (String s : Settings.welcomeMsg) {
- player.sendMessage(plugin.replaceAllInfos(s, player));
- }
- }
+ // Kick Player after Registration is enabled, kick the player
+ if (Settings.forceRegKick) {
+ player.kickPlayer(m._("registered")[0]);
+ return;
+ }
- // Register is now finish , we can force all commands
- forceCommands(player);
+ // Request Login after Registation
+ if (Settings.forceRegLogin) {
+ forceLogin(player);
+ return;
+ }
- }
+ // Register is finish and player is logged, display welcome message
+ if (Settings.useWelcomeMessage) if (Settings.broadcastWelcomeMessage) {
+ for (String s : Settings.welcomeMsg) {
+ Bukkit.getServer().broadcastMessage(
+ plugin.replaceAllInfos(s, player));
+ }
+ } else {
+ for (String s : Settings.welcomeMsg) {
+ player.sendMessage(plugin.replaceAllInfos(s, player));
+ }
+ }
+
+ // Register is now finish , we can force all commands
+ forceCommands(player);
+
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/PasswordSecurity.java b/src/main/java/fr/xephi/authme/security/PasswordSecurity.java
index 13826c01..c92c48b9 100644
--- a/src/main/java/fr/xephi/authme/security/PasswordSecurity.java
+++ b/src/main/java/fr/xephi/authme/security/PasswordSecurity.java
@@ -15,7 +15,6 @@ import fr.xephi.authme.security.crypts.BCRYPT;
import fr.xephi.authme.security.crypts.EncryptionMethod;
import fr.xephi.authme.settings.Settings;
-
public class PasswordSecurity {
private static SecureRandom rnd = new SecureRandom();
@@ -27,145 +26,157 @@ public class PasswordSecurity {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
byte[] digest = sha1.digest(msg);
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest)).substring(0, length);
+ return String.format("%0" + (digest.length << 1) + "x",
+ new BigInteger(1, digest)).substring(0, length);
}
- public static String getHash(HashAlgorithm alg, String password, String playerName) throws NoSuchAlgorithmException {
- EncryptionMethod method;
- try {
- if (alg != HashAlgorithm.CUSTOM)
- method = (EncryptionMethod) alg.getclass().newInstance();
- else method = null;
- } catch (InstantiationException e) {
- throw new NoSuchAlgorithmException("Problem with this hash algorithm");
- } catch (IllegalAccessException e) {
- throw new NoSuchAlgorithmException("Problem with this hash algorithm");
- }
- String salt = "";
- switch (alg) {
- case SHA256:
- salt = createSalt(16);
- break;
- case MD5VB:
- salt = createSalt(16);
- break;
- case XAUTH:
- salt = createSalt(12);
- break;
- case MYBB:
- salt = createSalt(8);
- userSalt.put(playerName, salt);
- break;
- case IPB3:
- salt = createSalt(5);
- userSalt.put(playerName, salt);
- break;
- case PHPFUSION:
- salt = createSalt(12);
- userSalt.put(playerName, salt);
- break;
- case SALTED2MD5:
- salt = createSalt(Settings.saltLength);
- userSalt.put(playerName, salt);
- break;
- case JOOMLA:
- salt = createSalt(32);
- userSalt.put(playerName, salt);
- break;
- case BCRYPT:
- salt = BCRYPT.gensalt(Settings.bCryptLog2Rounds);
- userSalt.put(playerName, salt);
- break;
- case WBB3:
- salt = createSalt(40);
- userSalt.put(playerName, salt);
- break;
- case WBB4:
- salt = BCRYPT.gensalt(8);
- userSalt.put(playerName, salt);
- break;
- case PBKDF2:
- salt = createSalt(12);
- userSalt.put(playerName, salt);
- break;
- case SMF:
- return method.getHash(password, null, playerName);
- case PHPBB:
- salt = createSalt(16);
- userSalt.put(playerName, salt);
- break;
- case MD5:
- case SHA1:
- case WHIRLPOOL:
- case PLAINTEXT:
- case XENFORO:
- case SHA512:
- case ROYALAUTH:
- case CRAZYCRYPT1:
- case DOUBLEMD5:
- case WORDPRESS:
- case CUSTOM:
- break;
- default:
- throw new NoSuchAlgorithmException("Unknown hash algorithm");
+ public static String getHash(HashAlgorithm alg, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ EncryptionMethod method;
+ try {
+ if (alg != HashAlgorithm.CUSTOM) method = (EncryptionMethod) alg
+ .getclass().newInstance();
+ else method = null;
+ } catch (InstantiationException e) {
+ throw new NoSuchAlgorithmException(
+ "Problem with this hash algorithm");
+ } catch (IllegalAccessException e) {
+ throw new NoSuchAlgorithmException(
+ "Problem with this hash algorithm");
}
- PasswordEncryptionEvent event = new PasswordEncryptionEvent(method, playerName);
+ String salt = "";
+ switch (alg) {
+ case SHA256:
+ salt = createSalt(16);
+ break;
+ case MD5VB:
+ salt = createSalt(16);
+ break;
+ case XAUTH:
+ salt = createSalt(12);
+ break;
+ case MYBB:
+ salt = createSalt(8);
+ userSalt.put(playerName, salt);
+ break;
+ case IPB3:
+ salt = createSalt(5);
+ userSalt.put(playerName, salt);
+ break;
+ case PHPFUSION:
+ salt = createSalt(12);
+ userSalt.put(playerName, salt);
+ break;
+ case SALTED2MD5:
+ salt = createSalt(Settings.saltLength);
+ userSalt.put(playerName, salt);
+ break;
+ case JOOMLA:
+ salt = createSalt(32);
+ userSalt.put(playerName, salt);
+ break;
+ case BCRYPT:
+ salt = BCRYPT.gensalt(Settings.bCryptLog2Rounds);
+ userSalt.put(playerName, salt);
+ break;
+ case WBB3:
+ salt = createSalt(40);
+ userSalt.put(playerName, salt);
+ break;
+ case WBB4:
+ salt = BCRYPT.gensalt(8);
+ userSalt.put(playerName, salt);
+ break;
+ case PBKDF2:
+ salt = createSalt(12);
+ userSalt.put(playerName, salt);
+ break;
+ case SMF:
+ return method.getHash(password, null, playerName);
+ case PHPBB:
+ salt = createSalt(16);
+ userSalt.put(playerName, salt);
+ break;
+ case MD5:
+ case SHA1:
+ case WHIRLPOOL:
+ case PLAINTEXT:
+ case XENFORO:
+ case SHA512:
+ case ROYALAUTH:
+ case CRAZYCRYPT1:
+ case DOUBLEMD5:
+ case WORDPRESS:
+ case CUSTOM:
+ break;
+ default:
+ throw new NoSuchAlgorithmException("Unknown hash algorithm");
+ }
+ PasswordEncryptionEvent event = new PasswordEncryptionEvent(method,
+ playerName);
Bukkit.getPluginManager().callEvent(event);
method = event.getMethod();
- if (method == null)
- throw new NoSuchAlgorithmException("Unknown hash algorithm");
+ if (method == null) throw new NoSuchAlgorithmException(
+ "Unknown hash algorithm");
return method.getHash(password, salt, playerName);
}
- public static boolean comparePasswordWithHash(String password, String hash, String playerName) throws NoSuchAlgorithmException {
- HashAlgorithm algo = Settings.getPasswordHash;
- EncryptionMethod method;
- try {
- if (algo != HashAlgorithm.CUSTOM)
- method = (EncryptionMethod) algo.getclass().newInstance();
- else method = null;
- } catch (InstantiationException e) {
- throw new NoSuchAlgorithmException("Problem with this hash algorithm");
- } catch (IllegalAccessException e) {
- throw new NoSuchAlgorithmException("Problem with this hash algorithm");
- }
- PasswordEncryptionEvent event = new PasswordEncryptionEvent(method, playerName);
+ public static boolean comparePasswordWithHash(String password, String hash,
+ String playerName) throws NoSuchAlgorithmException {
+ HashAlgorithm algo = Settings.getPasswordHash;
+ EncryptionMethod method;
+ try {
+ if (algo != HashAlgorithm.CUSTOM) method = (EncryptionMethod) algo
+ .getclass().newInstance();
+ else method = null;
+ } catch (InstantiationException e) {
+ throw new NoSuchAlgorithmException(
+ "Problem with this hash algorithm");
+ } catch (IllegalAccessException e) {
+ throw new NoSuchAlgorithmException(
+ "Problem with this hash algorithm");
+ }
+ PasswordEncryptionEvent event = new PasswordEncryptionEvent(method,
+ playerName);
Bukkit.getPluginManager().callEvent(event);
method = event.getMethod();
- if (method == null)
- throw new NoSuchAlgorithmException("Unknown hash algorithm");
+ if (method == null) throw new NoSuchAlgorithmException(
+ "Unknown hash algorithm");
try {
- if (method.comparePassword(hash, password, playerName))
- return true;
+ if (method.comparePassword(hash, password, playerName)) return true;
} catch (Exception e) {
}
if (Settings.supportOldPassword) {
- try {
- if (compareWithAllEncryptionMethod(password, hash, playerName))
- return true;
- } catch (Exception e) {}
+ try {
+ if (compareWithAllEncryptionMethod(password, hash, playerName)) return true;
+ } catch (Exception e) {
+ }
}
return false;
}
- private static boolean compareWithAllEncryptionMethod(String password, String hash, String playerName) throws NoSuchAlgorithmException {
- for (HashAlgorithm algo : HashAlgorithm.values()) {
- if (algo != HashAlgorithm.CUSTOM)
- try {
- EncryptionMethod method = (EncryptionMethod) algo.getclass().newInstance();
- if (method.comparePassword(hash, password, playerName)) {
- PlayerAuth nAuth = AuthMe.getInstance().database.getAuth(playerName);
- if (nAuth != null) {
- nAuth.setHash(getHash(Settings.getPasswordHash, password, playerName));
- nAuth.setSalt(userSalt.get(playerName));
- AuthMe.getInstance().database.updatePassword(nAuth);
- AuthMe.getInstance().database.updateSalt(nAuth);
- }
- return true;
- }
- } catch (Exception e) {}
- }
- return false;
+ private static boolean compareWithAllEncryptionMethod(String password,
+ String hash, String playerName) throws NoSuchAlgorithmException {
+ for (HashAlgorithm algo : HashAlgorithm.values()) {
+ if (algo != HashAlgorithm.CUSTOM) try {
+ EncryptionMethod method = (EncryptionMethod) algo.getclass()
+ .newInstance();
+ if (method.comparePassword(hash, password, playerName)) {
+ PlayerAuth nAuth = AuthMe.getInstance().database
+ .getAuth(playerName);
+ if (nAuth != null) {
+ nAuth.setHash(getHash(Settings.getPasswordHash,
+ password, playerName));
+ nAuth.setSalt(userSalt.get(playerName));
+ AuthMe.getInstance().database.updatePassword(nAuth);
+ AuthMe.getInstance().database.updateSalt(nAuth);
+ }
+ return true;
+ }
+ } catch (Exception e) {
+ }
+ }
+ return false;
}
}
diff --git a/src/main/java/fr/xephi/authme/security/RandomString.java b/src/main/java/fr/xephi/authme/security/RandomString.java
index 7ffb2859..d504f4e9 100644
--- a/src/main/java/fr/xephi/authme/security/RandomString.java
+++ b/src/main/java/fr/xephi/authme/security/RandomString.java
@@ -3,37 +3,34 @@ package fr.xephi.authme.security;
import java.util.Random;
/**
-*
-* @author Xephi59
-*/
-public class RandomString
-{
+ *
+ * @author Xephi59
+ */
+public class RandomString {
- private static final char[] chars = new char[36];
+ private static final char[] chars = new char[36];
- static {
- for (int idx = 0; idx < 10; ++idx)
- chars[idx] = (char) ('0' + idx);
- for (int idx = 10; idx < 36; ++idx)
- chars[idx] = (char) ('a' + idx - 10);
- }
+ static {
+ for (int idx = 0; idx < 10; ++idx)
+ chars[idx] = (char) ('0' + idx);
+ for (int idx = 10; idx < 36; ++idx)
+ chars[idx] = (char) ('a' + idx - 10);
+ }
- private final Random random = new Random();
+ private final Random random = new Random();
- private final char[] buf;
+ private final char[] buf;
- public RandomString(int length)
- {
- if (length < 1)
- throw new IllegalArgumentException("length < 1: " + length);
- buf = new char[length];
- }
+ public RandomString(int length) {
+ if (length < 1) throw new IllegalArgumentException("length < 1: "
+ + length);
+ buf = new char[length];
+ }
- public String nextString()
- {
- for (int idx = 0; idx < buf.length; ++idx)
- buf[idx] = chars[random.nextInt(chars.length)];
- return new String(buf);
- }
+ public String nextString() {
+ for (int idx = 0; idx < buf.length; ++idx)
+ buf[idx] = chars[random.nextInt(chars.length)];
+ return new String(buf);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/BCRYPT.java b/src/main/java/fr/xephi/authme/security/crypts/BCRYPT.java
index ab470244..f9881604 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/BCRYPT.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/BCRYPT.java
@@ -1,4 +1,4 @@
-//Copyright (c) 2006 Damien Miller
+// Copyright (c) 2006 Damien Miller
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
@@ -19,25 +19,24 @@ import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
/**
- * BCrypt implements OpenBSD-style Blowfish password hashing using
- * the scheme described in "A Future-Adaptable Password Scheme" by
- * Niels Provos and David Mazieres.
+ * BCrypt implements OpenBSD-style Blowfish password hashing using the scheme
+ * described in "A Future-Adaptable Password Scheme" by Niels Provos and David
+ * Mazieres.
*
- * This password hashing system tries to thwart off-line password
- * cracking using a computationally-intensive hashing algorithm,
- * based on Bruce Schneier's Blowfish cipher. The work factor of
- * the algorithm is parameterised, so it can be increased as
- * computers get faster.
+ * This password hashing system tries to thwart off-line password cracking using
+ * a computationally-intensive hashing algorithm, based on Bruce Schneier's
+ * Blowfish cipher. The work factor of the algorithm is parameterised, so it can
+ * be increased as computers get faster.
*
- * Usage is really simple. To hash a password for the first time,
- * call the hashpw method with a random salt, like this:
+ * Usage is really simple. To hash a password for the first time, call the
+ * hashpw method with a random salt, like this:
*
*
* String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
*
*
- * To check whether a plaintext password matches one that has been
- * hashed previously, use the checkpw method:
+ * To check whether a plaintext password matches one that has been hashed
+ * previously, use the checkpw method:
*
*
* if (BCrypt.checkpw(candidate_password, stored_hash))
@@ -46,719 +45,675 @@ import java.security.SecureRandom;
* System.out.println("It does not match");
*
*
- * The gensalt() method takes an optional parameter (log_rounds)
- * that determines the computational complexity of the hashing:
+ * The gensalt() method takes an optional parameter (log_rounds) that determines
+ * the computational complexity of the hashing:
*
*
* String strong_salt = BCrypt.gensalt(10)
* String stronger_salt = BCrypt.gensalt(12)
*
*
- * The amount of work increases exponentially (2**log_rounds), so
- * each increment is twice as much work. The default log_rounds is
- * 10, and the valid range is 4 to 31.
+ * The amount of work increases exponentially (2**log_rounds), so each increment
+ * is twice as much work. The default log_rounds is 10, and the valid range is 4
+ * to 31.
*
* @author Damien Miller
* @version 0.2
*/
public class BCRYPT implements EncryptionMethod {
- // BCrypt parameters
- private static final int GENSALT_DEFAULT_LOG2_ROUNDS = 10;
- private static final int BCRYPT_SALT_LEN = 16;
+ // BCrypt parameters
+ private static final int GENSALT_DEFAULT_LOG2_ROUNDS = 10;
+ private static final int BCRYPT_SALT_LEN = 16;
- // Blowfish parameters
- private static final int BLOWFISH_NUM_ROUNDS = 16;
+ // Blowfish parameters
+ private static final int BLOWFISH_NUM_ROUNDS = 16;
- // Initial contents of key schedule
- private static final int P_orig[] = {
- 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
- 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
- 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
- 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
- 0x9216d5d9, 0x8979fb1b
- };
- private static final int S_orig[] = {
- 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
- 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
- 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
- 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
- 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
- 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
- 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
- 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
- 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
- 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
- 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
- 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
- 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
- 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
- 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
- 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
- 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
- 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
- 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
- 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
- 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
- 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
- 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
- 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
- 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
- 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
- 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
- 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
- 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
- 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
- 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
- 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
- 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
- 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
- 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
- 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
- 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
- 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
- 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
- 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
- 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
- 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
- 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
- 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
- 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
- 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
- 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
- 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
- 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
- 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
- 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
- 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
- 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
- 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
- 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
- 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
- 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
- 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
- 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
- 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
- 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
- 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
- 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
- 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a,
- 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
- 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
- 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
- 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
- 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
- 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
- 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
- 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
- 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
- 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
- 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
- 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
- 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
- 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
- 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
- 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
- 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
- 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
- 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
- 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
- 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
- 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
- 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
- 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
- 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
- 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
- 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
- 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
- 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
- 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
- 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
- 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
- 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
- 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
- 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
- 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
- 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
- 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
- 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
- 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
- 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
- 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
- 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
- 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
- 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
- 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
- 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
- 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
- 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
- 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
- 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
- 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
- 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
- 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
- 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
- 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
- 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
- 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
- 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
- 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
- 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
- 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
- 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
- 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7,
- 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
- 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
- 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
- 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
- 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
- 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
- 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
- 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
- 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
- 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
- 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
- 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
- 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
- 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
- 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
- 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
- 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
- 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
- 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
- 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
- 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
- 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
- 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
- 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
- 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
- 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
- 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
- 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
- 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
- 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
- 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
- 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
- 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
- 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
- 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
- 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
- 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
- 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
- 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
- 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
- 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
- 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
- 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
- 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
- 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
- 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
- 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
- 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
- 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
- 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
- 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
- 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
- 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
- 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
- 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
- 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
- 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
- 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
- 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
- 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
- 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
- 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
- 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
- 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0,
- 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
- 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
- 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
- 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
- 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
- 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
- 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
- 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
- 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
- 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
- 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
- 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
- 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
- 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
- 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
- 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
- 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
- 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
- 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
- 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
- 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
- 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
- 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
- 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
- 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
- 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
- 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
- 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
- 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
- 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
- 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
- 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
- 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
- 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
- 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
- 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
- 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
- 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
- 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
- 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
- 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
- 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
- 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
- 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
- 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
- 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
- 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
- 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
- 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
- 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
- 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
- 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
- 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
- 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
- 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
- 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
- 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
- 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
- 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
- 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
- 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
- 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
- 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
- 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
- };
+ // Initial contents of key schedule
+ private static final int P_orig[] = { 0x243f6a88, 0x85a308d3, 0x13198a2e,
+ 0x03707344, 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
+ 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7,
+ 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b };
+ private static final int S_orig[] = { 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db,
+ 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
+ 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8,
+ 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658,
+ 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539,
+ 0x2af26013, 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
+ 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1,
+ 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94,
+ 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, 0xb4cc5c34,
+ 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
+ 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33,
+ 0x6c24cf5c, 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af,
+ 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60,
+ 0x5dec8032, 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
+ 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, 0x2e0b4482,
+ 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a,
+ 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728,
+ 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
+ 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619,
+ 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, 0xe06f75d8, 0x85c12073,
+ 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72,
+ 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
+ 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a,
+ 0xb6794c3b, 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4,
+ 0x5e5c9ec2, 0x196a2463, 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb,
+ 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
+ 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857,
+ 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a,
+ 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8,
+ 0xdb3222f8, 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
+ 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, 0x9e5c57bb,
+ 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3,
+ 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, 0xe1ffa35d,
+ 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
+ 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da,
+ 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01,
+ 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71,
+ 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
+ 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, 0x4fad5ea0,
+ 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777,
+ 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6,
+ 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
+ 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065,
+ 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0,
+ 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, 0x226800bb,
+ 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
+ 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376,
+ 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a,
+ 0x1b510052, 0x9a532915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476,
+ 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
+ 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d,
+ 0xa99f8fa1, 0x08ba4799, 0x6e85076a, 0x4b7a70e9, 0xb5b32944,
+ 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8,
+ 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
+ 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a,
+ 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5,
+ 0x4d2d38e6, 0xf0255dc1, 0x4cdd2086, 0x8470eb26, 0x6382e9c6,
+ 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
+ 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c,
+ 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d,
+ 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58,
+ 0xdc0921bd, 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
+ 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, 0xa9446146,
+ 0x0fd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f,
+ 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, 0x6f420d03,
+ 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
+ 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f,
+ 0x2e6b7124, 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17,
+ 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366,
+ 0xc464c3d2, 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
+ 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, 0x71dff89e,
+ 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b,
+ 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c,
+ 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
+ 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6,
+ 0x5266c825, 0x2e4cc978, 0x9c10b36a, 0xc6150eba, 0x94e2ea78,
+ 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f,
+ 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
+ 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef,
+ 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b,
+ 0x2aef7dad, 0x5b6e2f84, 0x1521b628, 0x29076170, 0xecdd4775,
+ 0x619f1510, 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
+ 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc,
+ 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca,
+ 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5,
+ 0xc021b8f7, 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
+ 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, 0x0e358829,
+ 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263,
+ 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, 0x8fd948e4,
+ 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
+ 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6,
+ 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5,
+ 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a,
+ 0x3d816250, 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
+ 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, 0x095bbf00,
+ 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea,
+ 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1,
+ 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
+ 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa,
+ 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0x9e447a2e, 0xc3453484,
+ 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79,
+ 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
+ 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68,
+ 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7,
+ 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7,
+ 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
+ 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec,
+ 0x03bd9785, 0x7fac6dd0, 0x31cb8504, 0x96eb27b3, 0x55fd3941,
+ 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0x0a2c86da,
+ 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
+ 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c,
+ 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9,
+ 0xee39d7ab, 0x3b124e8b, 0x1dc9faf7, 0x4b6d1856, 0x26a36631,
+ 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
+ 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a,
+ 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58,
+ 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c,
+ 0x9029317c, 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
+ 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, 0x07f9c9ee,
+ 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1,
+ 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, 0xdff8e8a3,
+ 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
+ 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e,
+ 0xe6ba0d99, 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd,
+ 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27,
+ 0xf33e8d1e, 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
+ 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, 0xc67b5510,
+ 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3,
+ 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b,
+ 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
+ 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7,
+ 0xc66a2b3b, 0x12754ccc, 0x782ef11c, 0x6a124237, 0xb79251e7,
+ 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8,
+ 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
+ 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057,
+ 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0,
+ 0x7745ae04, 0xd736fccc, 0x83426b33, 0xf01eab71, 0xb0804187,
+ 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
+ 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3,
+ 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84,
+ 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591,
+ 0xc902de4c, 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
+ 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, 0xe85a1f02,
+ 0x09f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df,
+ 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, 0xa1e2ce9b,
+ 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
+ 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28,
+ 0xc0f586e0, 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63,
+ 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1,
+ 0xce591d76, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
+ 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0xed545578,
+ 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8,
+ 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce,
+ 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0,
+ 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e,
+ 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315,
+ 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be,
+ 0x6a366eb4, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
+ 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb,
+ 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a,
+ 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa,
+ 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
+ 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3,
+ 0xf752f7da, 0x3f046f69, 0x77fa0a59, 0x80e4a915, 0x87b08601,
+ 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9,
+ 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
+ 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71,
+ 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc,
+ 0xf8d56629, 0x79132e28, 0x785f0191, 0xed756055, 0xf7960e44,
+ 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
+ 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b,
+ 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5,
+ 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167,
+ 0xccad925f, 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
+ 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, 0xa8b6e37e,
+ 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224,
+ 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, 0x586cdecf,
+ 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
+ 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8,
+ 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e,
+ 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671,
+ 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
+ 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, 0x6f3f3b82,
+ 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc,
+ 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7,
+ 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
+ 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x0339c32a,
+ 0xc6913667, 0x8df9317c, 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a,
+ 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0x0f91fc71,
+ 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
+ 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e,
+ 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df,
+ 0xd3a0342b, 0x8971f21e, 0x1b0a7441, 0x4ba3348c, 0xc5be7120,
+ 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
+ 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166,
+ 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623,
+ 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697,
+ 0x88d273cc, 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
+ 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd,
+ 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222,
+ 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, 0x38abbd60,
+ 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
+ 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c,
+ 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0,
+ 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3,
+ 0x3ac372e6 };
- // bcrypt IV: "OrpheanBeholderScryDoubt"
- static private final int bf_crypt_ciphertext[] = {
- 0x4f727068, 0x65616e42, 0x65686f6c,
- 0x64657253, 0x63727944, 0x6f756274
- };
+ // bcrypt IV: "OrpheanBeholderScryDoubt"
+ static private final int bf_crypt_ciphertext[] = { 0x4f727068, 0x65616e42,
+ 0x65686f6c, 0x64657253, 0x63727944, 0x6f756274 };
- // Table for Base64 encoding
- static private final char base64_code[] = {
- '.', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
- 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
- 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
- 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
- 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5',
- '6', '7', '8', '9'
- };
+ // Table for Base64 encoding
+ static private final char base64_code[] = { '.', '/', 'A', 'B', 'C', 'D',
+ 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
+ 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
+ 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
+ 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
+ '4', '5', '6', '7', '8', '9' };
- // Table for Base64 decoding
- static private final byte index_64[] = {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 0, 1, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, -1, -1,
- -1, -1, -1, -1, -1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- -1, -1, -1, -1, -1, -1, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, -1, -1, -1, -1, -1
- };
+ // Table for Base64 decoding
+ static private final byte index_64[] = { -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 0, 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1,
+ -1, -1, -1, -1, -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1,
+ -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1 };
- // Expanded Blowfish key
- private int P[];
- private int S[];
-
- /**
- * Encode a byte array using bcrypt's slightly-modified base64
- * encoding scheme. Note that this is *not* compatible with
- * the standard MIME-base64 encoding.
- *
- * @param d the byte array to encode
- * @param len the number of bytes to encode
- * @return base64-encoded string
- * @exception IllegalArgumentException if the length is invalid
- */
- private static String encode_base64(byte d[], int len)
- throws IllegalArgumentException {
- int off = 0;
- StringBuffer rs = new StringBuffer();
- int c1, c2;
-
- if (len <= 0 || len > d.length)
- throw new IllegalArgumentException ("Invalid len");
-
- while (off < len) {
- c1 = d[off++] & 0xff;
- rs.append(base64_code[(c1 >> 2) & 0x3f]);
- c1 = (c1 & 0x03) << 4;
- if (off >= len) {
- rs.append(base64_code[c1 & 0x3f]);
- break;
- }
- c2 = d[off++] & 0xff;
- c1 |= (c2 >> 4) & 0x0f;
- rs.append(base64_code[c1 & 0x3f]);
- c1 = (c2 & 0x0f) << 2;
- if (off >= len) {
- rs.append(base64_code[c1 & 0x3f]);
- break;
- }
- c2 = d[off++] & 0xff;
- c1 |= (c2 >> 6) & 0x03;
- rs.append(base64_code[c1 & 0x3f]);
- rs.append(base64_code[c2 & 0x3f]);
- }
- return rs.toString();
- }
-
- /**
- * Look up the 3 bits base64-encoded by the specified character,
- * range-checking againt conversion table
- * @param x the base64-encoded value
- * @return the decoded value of x
- */
- private static byte char64(char x) {
- if ((int)x < 0 || (int)x > index_64.length)
- return -1;
- return index_64[(int)x];
- }
-
- /**
- * Decode a string encoded using bcrypt's base64 scheme to a
- * byte array. Note that this is *not* compatible with
- * the standard MIME-base64 encoding.
- * @param s the string to decode
- * @param maxolen the maximum number of bytes to decode
- * @return an array containing the decoded bytes
- * @throws IllegalArgumentException if maxolen is invalid
- */
- private static byte[] decode_base64(String s, int maxolen)
- throws IllegalArgumentException {
- StringBuffer rs = new StringBuffer();
- int off = 0, slen = s.length(), olen = 0;
- byte ret[];
- byte c1, c2, c3, c4, o;
-
- if (maxolen <= 0)
- throw new IllegalArgumentException ("Invalid maxolen");
-
- while (off < slen - 1 && olen < maxolen) {
- c1 = char64(s.charAt(off++));
- c2 = char64(s.charAt(off++));
- if (c1 == -1 || c2 == -1)
- break;
- o = (byte)(c1 << 2);
- o |= (c2 & 0x30) >> 4;
- rs.append((char)o);
- if (++olen >= maxolen || off >= slen)
- break;
- c3 = char64(s.charAt(off++));
- if (c3 == -1)
- break;
- o = (byte)((c2 & 0x0f) << 4);
- o |= (c3 & 0x3c) >> 2;
- rs.append((char)o);
- if (++olen >= maxolen || off >= slen)
- break;
- c4 = char64(s.charAt(off++));
- o = (byte)((c3 & 0x03) << 6);
- o |= c4;
- rs.append((char)o);
- ++olen;
- }
-
- ret = new byte[olen];
- for (off = 0; off < olen; off++)
- ret[off] = (byte)rs.charAt(off);
- return ret;
- }
-
- /**
- * Blowfish encipher a single 64-bit block encoded as
- * two 32-bit halves
- * @param lr an array containing the two 32-bit half blocks
- * @param off the position in the array of the blocks
- */
- private final void encipher(int lr[], int off) {
- int i, n, l = lr[off], r = lr[off + 1];
-
- l ^= P[0];
- for (i = 0; i <= BLOWFISH_NUM_ROUNDS - 2;) {
- // Feistel substitution on left word
- n = S[(l >> 24) & 0xff];
- n += S[0x100 | ((l >> 16) & 0xff)];
- n ^= S[0x200 | ((l >> 8) & 0xff)];
- n += S[0x300 | (l & 0xff)];
- r ^= n ^ P[++i];
-
- // Feistel substitution on right word
- n = S[(r >> 24) & 0xff];
- n += S[0x100 | ((r >> 16) & 0xff)];
- n ^= S[0x200 | ((r >> 8) & 0xff)];
- n += S[0x300 | (r & 0xff)];
- l ^= n ^ P[++i];
- }
- lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1];
- lr[off + 1] = l;
- }
-
- /**
- * Cycically extract a word of key material
- * @param data the string to extract the data from
- * @param offp a "pointer" (as a one-entry array) to the
- * current offset into data
- * @return the next word of material from data
- */
- private static int streamtoword(byte data[], int offp[]) {
- int i;
- int word = 0;
- int off = offp[0];
-
- for (i = 0; i < 4; i++) {
- word = (word << 8) | (data[off] & 0xff);
- off = (off + 1) % data.length;
- }
-
- offp[0] = off;
- return word;
- }
-
- /**
- * Initialise the Blowfish key schedule
- */
- private void init_key() {
- P = (int[])P_orig.clone();
- S = (int[])S_orig.clone();
- }
-
- /**
- * Key the Blowfish cipher
- * @param key an array containing the key
- */
- private void key(byte key[]) {
- int i;
- int koffp[] = { 0 };
- int lr[] = { 0, 0 };
- int plen = P.length, slen = S.length;
-
- for (i = 0; i < plen; i++)
- P[i] = P[i] ^ streamtoword(key, koffp);
-
- for (i = 0; i < plen; i += 2) {
- encipher(lr, 0);
- P[i] = lr[0];
- P[i + 1] = lr[1];
- }
-
- for (i = 0; i < slen; i += 2) {
- encipher(lr, 0);
- S[i] = lr[0];
- S[i + 1] = lr[1];
- }
- }
-
- /**
- * Perform the "enhanced key schedule" step described by
- * Provos and Mazieres in "A Future-Adaptable Password Scheme"
- * http://www.openbsd.org/papers/bcrypt-paper.ps
- * @param data salt information
- * @param key password information
- */
- private void ekskey(byte data[], byte key[]) {
- int i;
- int koffp[] = { 0 }, doffp[] = { 0 };
- int lr[] = { 0, 0 };
- int plen = P.length, slen = S.length;
-
- for (i = 0; i < plen; i++)
- P[i] = P[i] ^ streamtoword(key, koffp);
-
- for (i = 0; i < plen; i += 2) {
- lr[0] ^= streamtoword(data, doffp);
- lr[1] ^= streamtoword(data, doffp);
- encipher(lr, 0);
- P[i] = lr[0];
- P[i + 1] = lr[1];
- }
-
- for (i = 0; i < slen; i += 2) {
- lr[0] ^= streamtoword(data, doffp);
- lr[1] ^= streamtoword(data, doffp);
- encipher(lr, 0);
- S[i] = lr[0];
- S[i + 1] = lr[1];
- }
- }
-
- /**
- * Perform the central password hashing step in the
- * bcrypt scheme
- * @param password the password to hash
- * @param salt the binary salt to hash with the password
- * @param log_rounds the binary logarithm of the number
- * of rounds of hashing to apply
- * @return an array containing the binary hashed password
- */
- private byte[] crypt_raw(byte password[], byte salt[], int log_rounds) {
- int rounds, i, j;
- int cdata[] = (int[])bf_crypt_ciphertext.clone();
- int clen = cdata.length;
- byte ret[];
-
- if (log_rounds < 4 || log_rounds > 31)
- throw new IllegalArgumentException ("Bad number of rounds");
- rounds = 1 << log_rounds;
- if (salt.length != BCRYPT_SALT_LEN)
- throw new IllegalArgumentException ("Bad salt length");
-
- init_key();
- ekskey(salt, password);
- for (i = 0; i < rounds; i++) {
- key(password);
- key(salt);
- }
-
- for (i = 0; i < 64; i++) {
- for (j = 0; j < (clen >> 1); j++)
- encipher(cdata, j << 1);
- }
-
- ret = new byte[clen * 4];
- for (i = 0, j = 0; i < clen; i++) {
- ret[j++] = (byte)((cdata[i] >> 24) & 0xff);
- ret[j++] = (byte)((cdata[i] >> 16) & 0xff);
- ret[j++] = (byte)((cdata[i] >> 8) & 0xff);
- ret[j++] = (byte)(cdata[i] & 0xff);
- }
- return ret;
- }
-
- /**
- * Hash a password using the OpenBSD bcrypt scheme
- * @param password the password to hash
- * @param salt the salt to hash with (perhaps generated
- * using BCrypt.gensalt)
- * @return the hashed password
- */
- public static String hashpw(String password, String salt) {
- BCRYPT B;
- String real_salt;
- byte passwordb[], saltb[], hashed[];
- char minor = (char)0;
- int rounds, off = 0;
- StringBuffer rs = new StringBuffer();
-
- if (salt.charAt(0) != '$' || salt.charAt(1) != '2')
- throw new IllegalArgumentException ("Invalid salt version");
- if (salt.charAt(2) == '$')
- off = 3;
- else {
- minor = salt.charAt(2);
- if (minor != 'a' || salt.charAt(3) != '$')
- throw new IllegalArgumentException ("Invalid salt revision");
- off = 4;
- }
-
- // Extract number of rounds
- if (salt.charAt(off + 2) > '$')
- throw new IllegalArgumentException ("Missing salt rounds");
- rounds = Integer.parseInt(salt.substring(off, off + 2));
-
- real_salt = salt.substring(off + 3, off + 25);
- try {
- passwordb = (password + (minor >= 'a' ? "\000" : "")).getBytes("UTF-8");
- } catch (UnsupportedEncodingException uee) {
- throw new AssertionError("UTF-8 is not supported");
- }
-
- saltb = decode_base64(real_salt, BCRYPT_SALT_LEN);
-
- B = new BCRYPT();
- hashed = B.crypt_raw(passwordb, saltb, rounds);
-
- rs.append("$2");
- if (minor >= 'a')
- rs.append(minor);
- rs.append("$");
- if (rounds < 10)
- rs.append("0");
- rs.append(Integer.toString(rounds));
- rs.append("$");
- rs.append(encode_base64(saltb, saltb.length));
- rs.append(encode_base64(hashed,
- bf_crypt_ciphertext.length * 4 - 1));
- return rs.toString();
- }
-
- /**
- * Generate a salt for use with the BCrypt.hashpw() method
- * @param log_rounds the log2 of the number of rounds of
- * hashing to apply - the work factor therefore increases as
- * 2**log_rounds.
- * @param random an instance of SecureRandom to use
- * @return an encoded salt value
- */
- public static String gensalt(int log_rounds, SecureRandom random) {
- StringBuffer rs = new StringBuffer();
- byte rnd[] = new byte[BCRYPT_SALT_LEN];
-
- random.nextBytes(rnd);
-
- rs.append("$2a$");
- if (log_rounds < 10)
- rs.append("0");
- rs.append(Integer.toString(log_rounds));
- rs.append("$");
- rs.append(encode_base64(rnd, rnd.length));
- return rs.toString();
- }
-
- /**
- * Generate a salt for use with the BCrypt.hashpw() method
- * @param log_rounds the log2 of the number of rounds of
- * hashing to apply - the work factor therefore increases as
- * 2**log_rounds.
- * @return an encoded salt value
- */
- public static String gensalt(int log_rounds) {
- return gensalt(log_rounds, new SecureRandom());
- }
-
- /**
- * Generate a salt for use with the BCrypt.hashpw() method,
- * selecting a reasonable default for the number of hashing
- * rounds to apply
- * @return an encoded salt value
- */
- public static String gensalt() {
- return gensalt(GENSALT_DEFAULT_LOG2_ROUNDS);
- }
-
- /**
- * Check that a plaintext password matches a previously hashed
- * one
- * @param plaintext the plaintext password to verify
- * @param hashed the previously-hashed password
- * @return true if the passwords match, false otherwise
- */
- public static boolean checkpw(String plaintext, String hashed) {
- return (hashed.compareTo(hashpw(plaintext, hashed)) == 0);
- }
+ // Expanded Blowfish key
+ private int P[];
+ private int S[];
/**
- * Check that a text password matches a previously hashed
- * one with the specified number of rounds using recursion
- *
- * @param text plaintext or hashed text
- * @param hashed the previously-hashed password
- * @param rounds number of rounds to hash the password
- * @return
- */
+ * Encode a byte array using bcrypt's slightly-modified base64 encoding
+ * scheme. Note that this is *not* compatible with the standard MIME-base64
+ * encoding.
+ *
+ * @param d
+ * the byte array to encode
+ * @param len
+ * the number of bytes to encode
+ * @return base64-encoded string
+ * @exception IllegalArgumentException
+ * if the length is invalid
+ */
+ private static String encode_base64(byte d[], int len)
+ throws IllegalArgumentException {
+ int off = 0;
+ StringBuffer rs = new StringBuffer();
+ int c1, c2;
+
+ if (len <= 0 || len > d.length) throw new IllegalArgumentException(
+ "Invalid len");
+
+ while (off < len) {
+ c1 = d[off++] & 0xff;
+ rs.append(base64_code[(c1 >> 2) & 0x3f]);
+ c1 = (c1 & 0x03) << 4;
+ if (off >= len) {
+ rs.append(base64_code[c1 & 0x3f]);
+ break;
+ }
+ c2 = d[off++] & 0xff;
+ c1 |= (c2 >> 4) & 0x0f;
+ rs.append(base64_code[c1 & 0x3f]);
+ c1 = (c2 & 0x0f) << 2;
+ if (off >= len) {
+ rs.append(base64_code[c1 & 0x3f]);
+ break;
+ }
+ c2 = d[off++] & 0xff;
+ c1 |= (c2 >> 6) & 0x03;
+ rs.append(base64_code[c1 & 0x3f]);
+ rs.append(base64_code[c2 & 0x3f]);
+ }
+ return rs.toString();
+ }
+
+ /**
+ * Look up the 3 bits base64-encoded by the specified character,
+ * range-checking againt conversion table
+ *
+ * @param x
+ * the base64-encoded value
+ * @return the decoded value of x
+ */
+ private static byte char64(char x) {
+ if ((int) x < 0 || (int) x > index_64.length) return -1;
+ return index_64[(int) x];
+ }
+
+ /**
+ * Decode a string encoded using bcrypt's base64 scheme to a byte array.
+ * Note that this is *not* compatible with the standard MIME-base64
+ * encoding.
+ *
+ * @param s
+ * the string to decode
+ * @param maxolen
+ * the maximum number of bytes to decode
+ * @return an array containing the decoded bytes
+ * @throws IllegalArgumentException
+ * if maxolen is invalid
+ */
+ private static byte[] decode_base64(String s, int maxolen)
+ throws IllegalArgumentException {
+ StringBuffer rs = new StringBuffer();
+ int off = 0, slen = s.length(), olen = 0;
+ byte ret[];
+ byte c1, c2, c3, c4, o;
+
+ if (maxolen <= 0) throw new IllegalArgumentException("Invalid maxolen");
+
+ while (off < slen - 1 && olen < maxolen) {
+ c1 = char64(s.charAt(off++));
+ c2 = char64(s.charAt(off++));
+ if (c1 == -1 || c2 == -1) break;
+ o = (byte) (c1 << 2);
+ o |= (c2 & 0x30) >> 4;
+ rs.append((char) o);
+ if (++olen >= maxolen || off >= slen) break;
+ c3 = char64(s.charAt(off++));
+ if (c3 == -1) break;
+ o = (byte) ((c2 & 0x0f) << 4);
+ o |= (c3 & 0x3c) >> 2;
+ rs.append((char) o);
+ if (++olen >= maxolen || off >= slen) break;
+ c4 = char64(s.charAt(off++));
+ o = (byte) ((c3 & 0x03) << 6);
+ o |= c4;
+ rs.append((char) o);
+ ++olen;
+ }
+
+ ret = new byte[olen];
+ for (off = 0; off < olen; off++)
+ ret[off] = (byte) rs.charAt(off);
+ return ret;
+ }
+
+ /**
+ * Blowfish encipher a single 64-bit block encoded as two 32-bit halves
+ *
+ * @param lr
+ * an array containing the two 32-bit half blocks
+ * @param off
+ * the position in the array of the blocks
+ */
+ private final void encipher(int lr[], int off) {
+ int i, n, l = lr[off], r = lr[off + 1];
+
+ l ^= P[0];
+ for (i = 0; i <= BLOWFISH_NUM_ROUNDS - 2;) {
+ // Feistel substitution on left word
+ n = S[(l >> 24) & 0xff];
+ n += S[0x100 | ((l >> 16) & 0xff)];
+ n ^= S[0x200 | ((l >> 8) & 0xff)];
+ n += S[0x300 | (l & 0xff)];
+ r ^= n ^ P[++i];
+
+ // Feistel substitution on right word
+ n = S[(r >> 24) & 0xff];
+ n += S[0x100 | ((r >> 16) & 0xff)];
+ n ^= S[0x200 | ((r >> 8) & 0xff)];
+ n += S[0x300 | (r & 0xff)];
+ l ^= n ^ P[++i];
+ }
+ lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1];
+ lr[off + 1] = l;
+ }
+
+ /**
+ * Cycically extract a word of key material
+ *
+ * @param data
+ * the string to extract the data from
+ * @param offp
+ * a "pointer" (as a one-entry array) to the current offset into
+ * data
+ * @return the next word of material from data
+ */
+ private static int streamtoword(byte data[], int offp[]) {
+ int i;
+ int word = 0;
+ int off = offp[0];
+
+ for (i = 0; i < 4; i++) {
+ word = (word << 8) | (data[off] & 0xff);
+ off = (off + 1) % data.length;
+ }
+
+ offp[0] = off;
+ return word;
+ }
+
+ /**
+ * Initialise the Blowfish key schedule
+ */
+ private void init_key() {
+ P = (int[]) P_orig.clone();
+ S = (int[]) S_orig.clone();
+ }
+
+ /**
+ * Key the Blowfish cipher
+ *
+ * @param key
+ * an array containing the key
+ */
+ private void key(byte key[]) {
+ int i;
+ int koffp[] = { 0 };
+ int lr[] = { 0, 0 };
+ int plen = P.length, slen = S.length;
+
+ for (i = 0; i < plen; i++)
+ P[i] = P[i] ^ streamtoword(key, koffp);
+
+ for (i = 0; i < plen; i += 2) {
+ encipher(lr, 0);
+ P[i] = lr[0];
+ P[i + 1] = lr[1];
+ }
+
+ for (i = 0; i < slen; i += 2) {
+ encipher(lr, 0);
+ S[i] = lr[0];
+ S[i + 1] = lr[1];
+ }
+ }
+
+ /**
+ * Perform the "enhanced key schedule" step described by Provos and Mazieres
+ * in "A Future-Adaptable Password Scheme"
+ * http://www.openbsd.org/papers/bcrypt-paper.ps
+ *
+ * @param data
+ * salt information
+ * @param key
+ * password information
+ */
+ private void ekskey(byte data[], byte key[]) {
+ int i;
+ int koffp[] = { 0 }, doffp[] = { 0 };
+ int lr[] = { 0, 0 };
+ int plen = P.length, slen = S.length;
+
+ for (i = 0; i < plen; i++)
+ P[i] = P[i] ^ streamtoword(key, koffp);
+
+ for (i = 0; i < plen; i += 2) {
+ lr[0] ^= streamtoword(data, doffp);
+ lr[1] ^= streamtoword(data, doffp);
+ encipher(lr, 0);
+ P[i] = lr[0];
+ P[i + 1] = lr[1];
+ }
+
+ for (i = 0; i < slen; i += 2) {
+ lr[0] ^= streamtoword(data, doffp);
+ lr[1] ^= streamtoword(data, doffp);
+ encipher(lr, 0);
+ S[i] = lr[0];
+ S[i + 1] = lr[1];
+ }
+ }
+
+ /**
+ * Perform the central password hashing step in the bcrypt scheme
+ *
+ * @param password
+ * the password to hash
+ * @param salt
+ * the binary salt to hash with the password
+ * @param log_rounds
+ * the binary logarithm of the number of rounds of hashing to
+ * apply
+ * @return an array containing the binary hashed password
+ */
+ private byte[] crypt_raw(byte password[], byte salt[], int log_rounds) {
+ int rounds, i, j;
+ int cdata[] = (int[]) bf_crypt_ciphertext.clone();
+ int clen = cdata.length;
+ byte ret[];
+
+ if (log_rounds < 4 || log_rounds > 31) throw new IllegalArgumentException(
+ "Bad number of rounds");
+ rounds = 1 << log_rounds;
+ if (salt.length != BCRYPT_SALT_LEN) throw new IllegalArgumentException(
+ "Bad salt length");
+
+ init_key();
+ ekskey(salt, password);
+ for (i = 0; i < rounds; i++) {
+ key(password);
+ key(salt);
+ }
+
+ for (i = 0; i < 64; i++) {
+ for (j = 0; j < (clen >> 1); j++)
+ encipher(cdata, j << 1);
+ }
+
+ ret = new byte[clen * 4];
+ for (i = 0, j = 0; i < clen; i++) {
+ ret[j++] = (byte) ((cdata[i] >> 24) & 0xff);
+ ret[j++] = (byte) ((cdata[i] >> 16) & 0xff);
+ ret[j++] = (byte) ((cdata[i] >> 8) & 0xff);
+ ret[j++] = (byte) (cdata[i] & 0xff);
+ }
+ return ret;
+ }
+
+ /**
+ * Hash a password using the OpenBSD bcrypt scheme
+ *
+ * @param password
+ * the password to hash
+ * @param salt
+ * the salt to hash with (perhaps generated using BCrypt.gensalt)
+ * @return the hashed password
+ */
+ public static String hashpw(String password, String salt) {
+ BCRYPT B;
+ String real_salt;
+ byte passwordb[], saltb[], hashed[];
+ char minor = (char) 0;
+ int rounds, off = 0;
+ StringBuffer rs = new StringBuffer();
+
+ if (salt.charAt(0) != '$' || salt.charAt(1) != '2') throw new IllegalArgumentException(
+ "Invalid salt version");
+ if (salt.charAt(2) == '$') off = 3;
+ else {
+ minor = salt.charAt(2);
+ if (minor != 'a' || salt.charAt(3) != '$') throw new IllegalArgumentException(
+ "Invalid salt revision");
+ off = 4;
+ }
+
+ // Extract number of rounds
+ if (salt.charAt(off + 2) > '$') throw new IllegalArgumentException(
+ "Missing salt rounds");
+ rounds = Integer.parseInt(salt.substring(off, off + 2));
+
+ real_salt = salt.substring(off + 3, off + 25);
+ try {
+ passwordb = (password + (minor >= 'a' ? "\000" : ""))
+ .getBytes("UTF-8");
+ } catch (UnsupportedEncodingException uee) {
+ throw new AssertionError("UTF-8 is not supported");
+ }
+
+ saltb = decode_base64(real_salt, BCRYPT_SALT_LEN);
+
+ B = new BCRYPT();
+ hashed = B.crypt_raw(passwordb, saltb, rounds);
+
+ rs.append("$2");
+ if (minor >= 'a') rs.append(minor);
+ rs.append("$");
+ if (rounds < 10) rs.append("0");
+ rs.append(Integer.toString(rounds));
+ rs.append("$");
+ rs.append(encode_base64(saltb, saltb.length));
+ rs.append(encode_base64(hashed, bf_crypt_ciphertext.length * 4 - 1));
+ return rs.toString();
+ }
+
+ /**
+ * Generate a salt for use with the BCrypt.hashpw() method
+ *
+ * @param log_rounds
+ * the log2 of the number of rounds of hashing to apply - the
+ * work factor therefore increases as 2**log_rounds.
+ * @param random
+ * an instance of SecureRandom to use
+ * @return an encoded salt value
+ */
+ public static String gensalt(int log_rounds, SecureRandom random) {
+ StringBuffer rs = new StringBuffer();
+ byte rnd[] = new byte[BCRYPT_SALT_LEN];
+
+ random.nextBytes(rnd);
+
+ rs.append("$2a$");
+ if (log_rounds < 10) rs.append("0");
+ rs.append(Integer.toString(log_rounds));
+ rs.append("$");
+ rs.append(encode_base64(rnd, rnd.length));
+ return rs.toString();
+ }
+
+ /**
+ * Generate a salt for use with the BCrypt.hashpw() method
+ *
+ * @param log_rounds
+ * the log2 of the number of rounds of hashing to apply - the
+ * work factor therefore increases as 2**log_rounds.
+ * @return an encoded salt value
+ */
+ public static String gensalt(int log_rounds) {
+ return gensalt(log_rounds, new SecureRandom());
+ }
+
+ /**
+ * Generate a salt for use with the BCrypt.hashpw() method, selecting a
+ * reasonable default for the number of hashing rounds to apply
+ *
+ * @return an encoded salt value
+ */
+ public static String gensalt() {
+ return gensalt(GENSALT_DEFAULT_LOG2_ROUNDS);
+ }
+
+ /**
+ * Check that a plaintext password matches a previously hashed one
+ *
+ * @param plaintext
+ * the plaintext password to verify
+ * @param hashed
+ * the previously-hashed password
+ * @return true if the passwords match, false otherwise
+ */
+ public static boolean checkpw(String plaintext, String hashed) {
+ return (hashed.compareTo(hashpw(plaintext, hashed)) == 0);
+ }
+
+ /**
+ * Check that a text password matches a previously hashed one with the
+ * specified number of rounds using recursion
+ *
+ * @param text
+ * plaintext or hashed text
+ * @param hashed
+ * the previously-hashed password
+ * @param rounds
+ * number of rounds to hash the password
+ * @return
+ */
public static boolean checkpw(String text, String hashed, int rounds) {
boolean matched = false;
@@ -771,23 +726,23 @@ public class BCRYPT implements EncryptionMethod {
matched = hash.compareTo(hashed) == 0;
}
} else {
- matched = text.compareTo(hashed) == 0;
- }
+ matched = text.compareTo(hashed) == 0;
+ }
- return matched;
- }
+ return matched;
+ }
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return hashpw(password, salt);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return hashpw(password, salt);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return checkpw(password, hash);
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return checkpw(password, hash);
+ }
public static String getDoubleHash(String text, String salt) {
String hash = hashpw(text, salt);
diff --git a/src/main/java/fr/xephi/authme/security/crypts/CRAZYCRYPT1.java b/src/main/java/fr/xephi/authme/security/crypts/CRAZYCRYPT1.java
index 109c7701..0bd40bce 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/CRAZYCRYPT1.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/CRAZYCRYPT1.java
@@ -7,12 +7,14 @@ import java.security.NoSuchAlgorithmException;
public class CRAZYCRYPT1 implements EncryptionMethod {
protected final Charset charset = Charset.forName("UTF-8");
- private static final char[] CRYPTCHARS = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
+ private static final char[] CRYPTCHARS = new char[] { '0', '1', '2', '3',
+ '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
@Override
public String getHash(String password, String salt, String name)
throws NoSuchAlgorithmException {
- final String text = "ÜÄaeut//&/=I " + password + "7421€547" + name + "__+IÄIH§%NK " + password;
+ final String text = "ÜÄaeut//&/=I " + password + "7421€547" + name
+ + "__+IÄIH§%NK " + password;
try {
final MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(text.getBytes(charset), 0, text.length());
@@ -27,7 +29,7 @@ public class CRAZYCRYPT1 implements EncryptionMethod {
String playerName) throws NoSuchAlgorithmException {
return hash.equals(getHash(password, null, playerName));
}
-
+
public static String byteArrayToHexString(final byte... args) {
final char[] chars = new char[args.length * 2];
for (int i = 0; i < args.length; i++) {
@@ -36,4 +38,4 @@ public class CRAZYCRYPT1 implements EncryptionMethod {
}
return new String(chars);
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/CryptPBKDF2.java b/src/main/java/fr/xephi/authme/security/crypts/CryptPBKDF2.java
index f2673f73..f9d488ac 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/CryptPBKDF2.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/CryptPBKDF2.java
@@ -5,28 +5,29 @@ import java.security.NoSuchAlgorithmException;
import fr.xephi.authme.security.pbkdf2.PBKDF2Engine;
import fr.xephi.authme.security.pbkdf2.PBKDF2Parameters;
-
public class CryptPBKDF2 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- String result = "pbkdf2_sha256$10000$"+salt+"$";
- PBKDF2Parameters params = new PBKDF2Parameters("HmacSHA256", "ASCII", salt.getBytes(), 10000);
- PBKDF2Engine engine = new PBKDF2Engine(params);
-
- return result + engine.deriveKey(password,64).toString();
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ String result = "pbkdf2_sha256$10000$" + salt + "$";
+ PBKDF2Parameters params = new PBKDF2Parameters("HmacSHA256", "ASCII",
+ salt.getBytes(), 10000);
+ PBKDF2Engine engine = new PBKDF2Engine(params);
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String[] line = hash.split("\\$");
- String salt = line[2];
- String derivedKey = line[3];
- PBKDF2Parameters params = new PBKDF2Parameters("HmacSHA256", "ASCII", salt.getBytes(), 10000, derivedKey.getBytes());
- PBKDF2Engine engine = new PBKDF2Engine(params);
- return engine.verifyKey(password);
- }
+ return result + engine.deriveKey(password, 64).toString();
+ }
+
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String[] line = hash.split("\\$");
+ String salt = line[2];
+ String derivedKey = line[3];
+ PBKDF2Parameters params = new PBKDF2Parameters("HmacSHA256", "ASCII",
+ salt.getBytes(), 10000, derivedKey.getBytes());
+ PBKDF2Engine engine = new PBKDF2Engine(params);
+ return engine.verifyKey(password);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/DOUBLEMD5.java b/src/main/java/fr/xephi/authme/security/crypts/DOUBLEMD5.java
index e4c3caaf..3511509d 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/DOUBLEMD5.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/DOUBLEMD5.java
@@ -6,24 +6,26 @@ import java.security.NoSuchAlgorithmException;
public class DOUBLEMD5 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getMD5(getMD5(password));
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getMD5(getMD5(password));
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, "", ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, "", ""));
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/EncryptionMethod.java b/src/main/java/fr/xephi/authme/security/crypts/EncryptionMethod.java
index d5cd9562..40b9b84f 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/EncryptionMethod.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/EncryptionMethod.java
@@ -3,28 +3,38 @@ package fr.xephi.authme.security.crypts;
import java.security.NoSuchAlgorithmException;
/**
- *
Public interface for Custom Password encryption method
- * The getHash function is called when we need to crypt the password (/register usually)
- * The comparePassword is called when we need to match password (/login usually)
+ *
+ * Public interface for Custom Password encryption method
+ *
+ *
+ * The getHash function is called when we need to crypt the password (/register
+ * usually)
+ *
+ *
+ * The comparePassword is called when we need to match password (/login usually)
+ *
*/
public interface EncryptionMethod {
- /**
- * @param password
- * @param salt (can be an other data like playerName;salt , playerName, etc...
- * for customs methods)
- * @return Hashing password
- * @throws NoSuchAlgorithmException
- */
- String getHash(String password, String salt, String name) throws NoSuchAlgorithmException;
+ /**
+ * @param password
+ * @param salt
+ * (can be an other data like playerName;salt , playerName,
+ * etc... for customs methods)
+ * @return Hashing password
+ * @throws NoSuchAlgorithmException
+ */
+ String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException;
- /**
- * @param hash
- * @param password
- * @param playerName
- * @return true if password match, false else
- * @throws NoSuchAlgorithmException
- */
- boolean comparePassword(String hash, String password, String playerName) throws NoSuchAlgorithmException;
+ /**
+ * @param hash
+ * @param password
+ * @param playerName
+ * @return true if password match, false else
+ * @throws NoSuchAlgorithmException
+ */
+ boolean comparePassword(String hash, String password, String playerName)
+ throws NoSuchAlgorithmException;
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/IPB3.java b/src/main/java/fr/xephi/authme/security/crypts/IPB3.java
index 1f944336..87eedd45 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/IPB3.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/IPB3.java
@@ -6,27 +6,29 @@ import java.security.NoSuchAlgorithmException;
import fr.xephi.authme.AuthMe;
-
public class IPB3 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getMD5(getMD5(salt) + getMD5(password));
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getMD5(getMD5(salt) + getMD5(password));
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(getHash(password, salt, playerName));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash.equals(getHash(password, salt, playerName));
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/JOOMLA.java b/src/main/java/fr/xephi/authme/security/crypts/JOOMLA.java
index 9b20f35c..519f1403 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/JOOMLA.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/JOOMLA.java
@@ -6,24 +6,26 @@ import java.security.NoSuchAlgorithmException;
public class JOOMLA implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getMD5(password + salt) + ":" + salt;
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getMD5(password + salt) + ":" + salt;
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = hash.split(":")[1];
- return hash.equals(getMD5(password + salt) + ":" + salt);
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = hash.split(":")[1];
+ return hash.equals(getMD5(password + salt) + ":" + salt);
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/MD5.java b/src/main/java/fr/xephi/authme/security/crypts/MD5.java
index 9fd2d786..7cd3871e 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/MD5.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/MD5.java
@@ -6,21 +6,25 @@ import java.security.NoSuchAlgorithmException;
public class MD5 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name) throws NoSuchAlgorithmException {
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
return getMD5(password);
- }
+ }
- @Override
- public boolean comparePassword(String hash, String password, String playerName) throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, "", ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, "", ""));
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/MD5VB.java b/src/main/java/fr/xephi/authme/security/crypts/MD5VB.java
index 8b6df78a..bdc1eb6b 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/MD5VB.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/MD5VB.java
@@ -6,25 +6,27 @@ import java.security.NoSuchAlgorithmException;
public class MD5VB implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return "$MD5vb$" + salt + "$" + getMD5(getMD5(password) + salt);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return "$MD5vb$" + salt + "$" + getMD5(getMD5(password) + salt);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
String[] line = hash.split("\\$");
return hash.equals(getHash(password, line[2], ""));
- }
-
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ }
+
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/MYBB.java b/src/main/java/fr/xephi/authme/security/crypts/MYBB.java
index 9bd50bf7..f5faa678 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/MYBB.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/MYBB.java
@@ -6,27 +6,29 @@ import java.security.NoSuchAlgorithmException;
import fr.xephi.authme.AuthMe;
-
public class MYBB implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getMD5(getMD5(salt)+ getMD5(password));
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getMD5(getMD5(salt) + getMD5(password));
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(getHash(password, salt, playerName));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash.equals(getHash(password, salt, playerName));
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/PHPBB.java b/src/main/java/fr/xephi/authme/security/crypts/PHPBB.java
index b965a7b4..40a93bd7 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/PHPBB.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/PHPBB.java
@@ -1,6 +1,6 @@
/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+ * To change this template, choose Tools | Templates and open the template in
+ * the editor.
*/
package fr.xephi.authme.security.crypts;
@@ -14,151 +14,138 @@ import java.security.NoSuchAlgorithmException;
* @author stefano
*/
public class PHPBB implements EncryptionMethod {
- private static final int PHP_VERSION = 4;
- private String itoa64 =
-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ private static final int PHP_VERSION = 4;
+ private String itoa64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- public String phpbb_hash(String password, String salt) {
- String random_state = salt;
- String random = "";
- int count = 6;
- if (random.length() < count) {
- random = "";
- for (int i = 0; i < count; i += 16) {
- random_state = md5(salt + random_state);
- random += pack(md5(random_state));
- }
- random = random.substring(0, count);
+ public String phpbb_hash(String password, String salt) {
+ String random_state = salt;
+ String random = "";
+ int count = 6;
+ if (random.length() < count) {
+ random = "";
+ for (int i = 0; i < count; i += 16) {
+ random_state = md5(salt + random_state);
+ random += pack(md5(random_state));
+ }
+ random = random.substring(0, count);
+ }
+ String hash = _hash_crypt_private(password,
+ _hash_gensalt_private(random, itoa64));
+ if (hash.length() == 34) return hash;
+ return md5(password);
}
- String hash = _hash_crypt_private(
- password, _hash_gensalt_private(random, itoa64));
- if (hash.length() == 34)
- return hash;
- return md5(password);
- }
- private String _hash_gensalt_private(String input, String itoa64) {
- return _hash_gensalt_private(input, itoa64, 6);
- }
-
- @SuppressWarnings("unused")
-private String _hash_gensalt_private(
- String input, String itoa64, int iteration_count_log2) {
- if (iteration_count_log2 < 4 || iteration_count_log2 > 31) {
- iteration_count_log2 = 8;
+ private String _hash_gensalt_private(String input, String itoa64) {
+ return _hash_gensalt_private(input, itoa64, 6);
}
- String output = "$H$";
- output += itoa64.charAt(
- Math.min(iteration_count_log2 +
- ((PHP_VERSION >= 5) ? 5 : 3), 30));
- output += _hash_encode64(input, 6);
- return output;
- }
- /**
- * Encode hash
- */
- private String _hash_encode64(String input, int count) {
- String output = "";
- int i = 0;
- do {
- int value = input.charAt(i++);
- output += itoa64.charAt(value & 0x3f);
- if (i < count)
- value |= input.charAt(i) << 8;
- output += itoa64.charAt((value >> 6) & 0x3f);
- if (i++ >= count)
- break;
- if (i < count)
- value |= input.charAt(i) << 16;
- output += itoa64.charAt((value >> 12) & 0x3f);
- if (i++ >= count)
- break;
- output += itoa64.charAt((value >> 18) & 0x3f);
- } while (i < count);
- return output;
- }
- String _hash_crypt_private(String password, String setting) {
- String output = "*";
- if (!setting.substring(0, 3).equals("$H$"))
+ @SuppressWarnings("unused")
+ private String _hash_gensalt_private(String input, String itoa64,
+ int iteration_count_log2) {
+ if (iteration_count_log2 < 4 || iteration_count_log2 > 31) {
+ iteration_count_log2 = 8;
+ }
+ String output = "$H$";
+ output += itoa64.charAt(Math.min(iteration_count_log2
+ + ((PHP_VERSION >= 5) ? 5 : 3), 30));
+ output += _hash_encode64(input, 6);
return output;
- int count_log2 = itoa64.indexOf(setting.charAt(3));
- if (count_log2 < 7 || count_log2 > 30)
+ }
+
+ /**
+ * Encode hash
+ */
+ private String _hash_encode64(String input, int count) {
+ String output = "";
+ int i = 0;
+ do {
+ int value = input.charAt(i++);
+ output += itoa64.charAt(value & 0x3f);
+ if (i < count) value |= input.charAt(i) << 8;
+ output += itoa64.charAt((value >> 6) & 0x3f);
+ if (i++ >= count) break;
+ if (i < count) value |= input.charAt(i) << 16;
+ output += itoa64.charAt((value >> 12) & 0x3f);
+ if (i++ >= count) break;
+ output += itoa64.charAt((value >> 18) & 0x3f);
+ } while (i < count);
return output;
- int count = 1 << count_log2;
- String salt = setting.substring(4, 12);
- if (salt.length() != 8)
+ }
+
+ String _hash_crypt_private(String password, String setting) {
+ String output = "*";
+ if (!setting.substring(0, 3).equals("$H$")) return output;
+ int count_log2 = itoa64.indexOf(setting.charAt(3));
+ if (count_log2 < 7 || count_log2 > 30) return output;
+ int count = 1 << count_log2;
+ String salt = setting.substring(4, 12);
+ if (salt.length() != 8) return output;
+ String m1 = md5(salt + password);
+ String hash = pack(m1);
+ do {
+ hash = pack(md5(hash + password));
+ } while (--count > 0);
+ output = setting.substring(0, 12);
+ output += _hash_encode64(hash, 16);
return output;
- String m1 = md5(salt + password);
- String hash = pack(m1);
- do {
- hash = pack(md5(hash + password));
- } while (--count > 0);
- output = setting.substring(0, 12);
- output += _hash_encode64(hash, 16);
- return output;
- }
-
- public boolean phpbb_check_hash( String password, String hash) {
- if (hash.length() == 34)
- return _hash_crypt_private(password, hash).equals(hash);
- else
- return md5(password).equals(hash);
- }
-
- public static String md5(String data) {
- try {
- byte[] bytes = data.getBytes("ISO-8859-1");
- MessageDigest md5er = MessageDigest.getInstance("MD5");
- byte[] hash = md5er.digest(bytes);
- return bytes2hex(hash);
- } catch (GeneralSecurityException e) {
- throw new RuntimeException(e);
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
}
- }
- static int hexToInt(char ch) {
- if(ch >= '0' && ch <= '9')
- return ch - '0';
- ch = Character.toUpperCase(ch);
- if(ch >= 'A' && ch <= 'F')
- return ch - 'A' + 0xA;
- throw new IllegalArgumentException("Not a hex character: " + ch);
- }
-
- private static String bytes2hex(byte[] bytes) {
- StringBuffer r = new StringBuffer(32);
- for (int i = 0; i < bytes.length; i++) {
- String x = Integer.toHexString(bytes[i] & 0xff);
- if (x.length() < 2)
- r.append("0");
- r.append(x);
+ public boolean phpbb_check_hash(String password, String hash) {
+ if (hash.length() == 34) return _hash_crypt_private(password, hash)
+ .equals(hash);
+ else return md5(password).equals(hash);
}
- return r.toString();
- }
- static String pack(String hex) {
- StringBuffer buf = new StringBuffer();
- for(int i = 0; i < hex.length(); i += 2) {
- char c1 = hex.charAt(i);
- char c2 = hex.charAt(i+1);
- char packed = (char) (hexToInt(c1) * 16 + hexToInt(c2));
- buf.append(packed);
+ public static String md5(String data) {
+ try {
+ byte[] bytes = data.getBytes("ISO-8859-1");
+ MessageDigest md5er = MessageDigest.getInstance("MD5");
+ byte[] hash = md5er.digest(bytes);
+ return bytes2hex(hash);
+ } catch (GeneralSecurityException e) {
+ throw new RuntimeException(e);
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
}
- return buf.toString();
- }
-@Override
-public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return phpbb_hash(password, salt);
-}
+ static int hexToInt(char ch) {
+ if (ch >= '0' && ch <= '9') return ch - '0';
+ ch = Character.toUpperCase(ch);
+ if (ch >= 'A' && ch <= 'F') return ch - 'A' + 0xA;
+ throw new IllegalArgumentException("Not a hex character: " + ch);
+ }
-@Override
-public boolean comparePassword(String hash, String password, String playerName)
- throws NoSuchAlgorithmException {
- return phpbb_check_hash(password, hash);
-}
+ private static String bytes2hex(byte[] bytes) {
+ StringBuffer r = new StringBuffer(32);
+ for (int i = 0; i < bytes.length; i++) {
+ String x = Integer.toHexString(bytes[i] & 0xff);
+ if (x.length() < 2) r.append("0");
+ r.append(x);
+ }
+ return r.toString();
+ }
+
+ static String pack(String hex) {
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < hex.length(); i += 2) {
+ char c1 = hex.charAt(i);
+ char c2 = hex.charAt(i + 1);
+ char packed = (char) (hexToInt(c1) * 16 + hexToInt(c2));
+ buf.append(packed);
+ }
+ return buf.toString();
+ }
+
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return phpbb_hash(password, salt);
+ }
+
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return phpbb_check_hash(password, hash);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/PHPFUSION.java b/src/main/java/fr/xephi/authme/security/crypts/PHPFUSION.java
index e74b45fd..fe108c33 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/PHPFUSION.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/PHPFUSION.java
@@ -11,49 +11,52 @@ import javax.crypto.spec.SecretKeySpec;
import fr.xephi.authme.AuthMe;
-
public class PHPFUSION implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
String digest = null;
String algo = "HmacSHA256";
String keyString = getSHA1(salt);
try {
- SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), algo);
- Mac mac = Mac.getInstance(algo);
- mac.init(key);
- byte[] bytes = mac.doFinal(password.getBytes("ASCII"));
- StringBuffer hash = new StringBuffer();
- for (int i = 0; i < bytes.length; i++) {
- String hex = Integer.toHexString(0xFF & bytes[i]);
- if (hex.length() == 1) {
- hash.append('0');
+ SecretKeySpec key = new SecretKeySpec(
+ (keyString).getBytes("UTF-8"), algo);
+ Mac mac = Mac.getInstance(algo);
+ mac.init(key);
+ byte[] bytes = mac.doFinal(password.getBytes("ASCII"));
+ StringBuffer hash = new StringBuffer();
+ for (int i = 0; i < bytes.length; i++) {
+ String hex = Integer.toHexString(0xFF & bytes[i]);
+ if (hex.length() == 1) {
+ hash.append('0');
+ }
+ hash.append(hex);
}
- hash.append(hex);
- }
- digest = hash.toString();
+ digest = hash.toString();
} catch (UnsupportedEncodingException e) {
} catch (InvalidKeyException e) {
} catch (NoSuchAlgorithmException e) {
}
return digest;
- }
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(getHash(password, salt, ""));
- }
-
- private static String getSHA1(String message) throws NoSuchAlgorithmException {
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash.equals(getHash(password, salt, ""));
+ }
+
+ private static String getSHA1(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
sha1.update(message.getBytes());
byte[] digest = sha1.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/PLAINTEXT.java b/src/main/java/fr/xephi/authme/security/crypts/PLAINTEXT.java
index 4562d7d5..59434b6d 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/PLAINTEXT.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/PLAINTEXT.java
@@ -4,16 +4,16 @@ import java.security.NoSuchAlgorithmException;
public class PLAINTEXT implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return password;
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return password;
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return hash.equals(password);
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(password);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/ROYALAUTH.java b/src/main/java/fr/xephi/authme/security/crypts/ROYALAUTH.java
index 4f75e1a5..8b61d855 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/ROYALAUTH.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/ROYALAUTH.java
@@ -5,26 +5,30 @@ import java.security.NoSuchAlgorithmException;
public class ROYALAUTH implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name) throws NoSuchAlgorithmException {
- for (int i = 0; i < 25; i++)
- password = hash(password, salt);
- return password;
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ for (int i = 0; i < 25; i++)
+ password = hash(password, salt);
+ return password;
+ }
- public String hash(String password, String salt) throws NoSuchAlgorithmException {
- MessageDigest md = MessageDigest.getInstance("SHA-512");
- md.update(password.getBytes());
- byte byteData[] = md.digest();
- StringBuilder sb = new StringBuilder();
- for (byte aByteData : byteData)
- sb.append(Integer.toString((aByteData & 0xff) + 0x100, 16).substring(1));
- return sb.toString();
- }
+ public String hash(String password, String salt)
+ throws NoSuchAlgorithmException {
+ MessageDigest md = MessageDigest.getInstance("SHA-512");
+ md.update(password.getBytes());
+ byte byteData[] = md.digest();
+ StringBuilder sb = new StringBuilder();
+ for (byte aByteData : byteData)
+ sb.append(Integer.toString((aByteData & 0xff) + 0x100, 16)
+ .substring(1));
+ return sb.toString();
+ }
- @Override
- public boolean comparePassword(String hash, String password, String playerName) throws NoSuchAlgorithmException {
- return hash.equalsIgnoreCase(getHash(password, "", ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equalsIgnoreCase(getHash(password, "", ""));
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/SALTED2MD5.java b/src/main/java/fr/xephi/authme/security/crypts/SALTED2MD5.java
index 326f1f74..8ca5fdd0 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/SALTED2MD5.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/SALTED2MD5.java
@@ -6,27 +6,29 @@ import java.security.NoSuchAlgorithmException;
import fr.xephi.authme.AuthMe;
-
public class SALTED2MD5 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getMD5(getMD5(password) + salt);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getMD5(getMD5(password) + salt);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(getMD5(getMD5(password) + salt));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash.equals(getMD5(getMD5(password) + salt));
+ }
- private static String getMD5(String message) throws NoSuchAlgorithmException {
+ private static String getMD5(String message)
+ throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(message.getBytes());
byte[] digest = md5.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/SHA1.java b/src/main/java/fr/xephi/authme/security/crypts/SHA1.java
index 79d8b6f2..5865918d 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/SHA1.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/SHA1.java
@@ -6,23 +6,26 @@ import java.security.NoSuchAlgorithmException;
public class SHA1 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name) throws NoSuchAlgorithmException {
- return getSHA1(password);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getSHA1(password);
+ }
- @Override
- public boolean comparePassword(String hash, String password, String playerName)
- throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, "", ""));
- }
-
- private static String getSHA1(String message) throws NoSuchAlgorithmException {
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, "", ""));
+ }
+
+ private static String getSHA1(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
sha1.update(message.getBytes());
byte[] digest = sha1.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/SHA256.java b/src/main/java/fr/xephi/authme/security/crypts/SHA256.java
index 6b5d08b1..089fe40e 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/SHA256.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/SHA256.java
@@ -6,24 +6,27 @@ import java.security.NoSuchAlgorithmException;
public class SHA256 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name) throws NoSuchAlgorithmException {
- return "$SHA$" + salt + "$" + getSHA256(getSHA256(password) + salt);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return "$SHA$" + salt + "$" + getSHA256(getSHA256(password) + salt);
+ }
- @Override
- public boolean comparePassword(String hash, String password, String playerName)
- throws NoSuchAlgorithmException {
- String[] line = hash.split("\\$");
- return hash.equals(getHash(password, line[2], ""));
- }
-
- private static String getSHA256(String message) throws NoSuchAlgorithmException {
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String[] line = hash.split("\\$");
+ return hash.equals(getHash(password, line[2], ""));
+ }
+
+ private static String getSHA256(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
sha256.reset();
sha256.update(message.getBytes());
byte[] digest = sha256.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/SHA512.java b/src/main/java/fr/xephi/authme/security/crypts/SHA512.java
index 738ce5c2..f035766d 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/SHA512.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/SHA512.java
@@ -6,23 +6,25 @@ import java.security.NoSuchAlgorithmException;
public class SHA512 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getSHA512(password);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getSHA512(password);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, "", ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, "", ""));
+ }
- private static String getSHA512(String message) throws NoSuchAlgorithmException {
+ private static String getSHA512(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha512 = MessageDigest.getInstance("SHA-512");
sha512.reset();
sha512.update(message.getBytes());
byte[] digest = sha512.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/SMF.java b/src/main/java/fr/xephi/authme/security/crypts/SMF.java
index 6941b79d..9fc2b8f9 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/SMF.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/SMF.java
@@ -6,23 +6,25 @@ import java.security.NoSuchAlgorithmException;
public class SMF implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getSHA1(name.toLowerCase() + password);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getSHA1(name.toLowerCase() + password);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, null, playerName));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, null, playerName));
+ }
- private static String getSHA1(String message) throws NoSuchAlgorithmException {
+ private static String getSHA1(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
sha1.update(message.getBytes());
byte[] digest = sha1.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/WBB3.java b/src/main/java/fr/xephi/authme/security/crypts/WBB3.java
index 7969df0b..21a9d05a 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/WBB3.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/WBB3.java
@@ -6,27 +6,29 @@ import java.security.NoSuchAlgorithmException;
import fr.xephi.authme.AuthMe;
-
public class WBB3 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getSHA1(salt.concat(getSHA1(salt.concat(getSHA1(password)))));
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getSHA1(salt.concat(getSHA1(salt.concat(getSHA1(password)))));
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(getHash(password, salt, ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash.equals(getHash(password, salt, ""));
+ }
- private static String getSHA1(String message) throws NoSuchAlgorithmException {
+ private static String getSHA1(String message)
+ throws NoSuchAlgorithmException {
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
sha1.update(message.getBytes());
byte[] digest = sha1.digest();
- return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
+ return String.format("%0" + (digest.length << 1) + "x", new BigInteger(
+ 1, digest));
}
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/WBB4.java b/src/main/java/fr/xephi/authme/security/crypts/WBB4.java
index 895e52f4..76a0651f 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/WBB4.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/WBB4.java
@@ -4,16 +4,16 @@ import java.security.NoSuchAlgorithmException;
public class WBB4 implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return BCRYPT.getDoubleHash(password, salt);
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return BCRYPT.getDoubleHash(password, salt);
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return BCRYPT.checkpw(password, hash, 2);
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return BCRYPT.checkpw(password, hash, 2);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/WHIRLPOOL.java b/src/main/java/fr/xephi/authme/security/crypts/WHIRLPOOL.java
index 8a58498f..909df309 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/WHIRLPOOL.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/WHIRLPOOL.java
@@ -7,53 +7,57 @@ package fr.xephi.authme.security.crypts;
* References
*
*
- * The Whirlpool algorithm was developed by
- * Paulo S. L. M. Barreto and
- * Vincent Rijmen.
+ * The Whirlpool algorithm was developed by Paulo S. L. M. Barreto and Vincent Rijmen.
*
- * See
- * P.S.L.M. Barreto, V. Rijmen,
- * ``The Whirlpool hashing function,''
- * First NESSIE workshop, 2000 (tweaked version, 2003),
- *
+ * See P.S.L.M. Barreto, V. Rijmen, ``The Whirlpool hashing function,'' First
+ * NESSIE workshop, 2000 (tweaked version, 2003),
+ *
*
- * @author Paulo S.L.M. Barreto
- * @author Vincent Rijmen.
+ * @author Paulo S.L.M. Barreto
+ * @author Vincent Rijmen.
*
* @version 3.0 (2003.03.12)
*
- * =============================================================================
+ * ====================================================================
+ * =========
*
- * Differences from version 2.1:
+ * Differences from version 2.1:
*
- * - Suboptimal diffusion matrix replaced by cir(1, 1, 4, 1, 8, 5, 2, 9).
+ * - Suboptimal diffusion matrix replaced by cir(1, 1, 4, 1, 8, 5, 2,
+ * 9).
*
- * =============================================================================
+ * ====================================================================
+ * =========
*
- * Differences from version 2.0:
+ * Differences from version 2.0:
*
- * - Generation of ISO/IEC 10118-3 test vectors.
- * - Bug fix: nonzero carry was ignored when tallying the data length
- * (this bug apparently only manifested itself when feeding data
- * in pieces rather than in a single chunk at once).
+ * - Generation of ISO/IEC 10118-3 test vectors. - Bug fix: nonzero
+ * carry was ignored when tallying the data length (this bug apparently
+ * only manifested itself when feeding data in pieces rather than in a
+ * single chunk at once).
*
- * Differences from version 1.0:
+ * Differences from version 1.0:
*
- * - Original S-box replaced by the tweaked, hardware-efficient version.
+ * - Original S-box replaced by the tweaked, hardware-efficient
+ * version.
*
- * =============================================================================
+ * ====================================================================
+ * =========
*
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
@@ -80,30 +84,29 @@ public class WHIRLPOOL implements EncryptionMethod {
/**
* The substitution box.
*/
- private static final String sbox =
- "\u1823\uc6E8\u87B8\u014F\u36A6\ud2F5\u796F\u9152" +
- "\u60Bc\u9B8E\uA30c\u7B35\u1dE0\ud7c2\u2E4B\uFE57" +
- "\u1577\u37E5\u9FF0\u4AdA\u58c9\u290A\uB1A0\u6B85" +
- "\uBd5d\u10F4\ucB3E\u0567\uE427\u418B\uA77d\u95d8" +
- "\uFBEE\u7c66\udd17\u479E\ucA2d\uBF07\uAd5A\u8333" +
- "\u6302\uAA71\uc819\u49d9\uF2E3\u5B88\u9A26\u32B0" +
- "\uE90F\ud580\uBEcd\u3448\uFF7A\u905F\u2068\u1AAE" +
- "\uB454\u9322\u64F1\u7312\u4008\uc3Ec\udBA1\u8d3d" +
- "\u9700\ucF2B\u7682\ud61B\uB5AF\u6A50\u45F3\u30EF" +
- "\u3F55\uA2EA\u65BA\u2Fc0\udE1c\uFd4d\u9275\u068A" +
- "\uB2E6\u0E1F\u62d4\uA896\uF9c5\u2559\u8472\u394c" +
- "\u5E78\u388c\ud1A5\uE261\uB321\u9c1E\u43c7\uFc04" +
- "\u5199\u6d0d\uFAdF\u7E24\u3BAB\ucE11\u8F4E\uB7EB" +
- "\u3c81\u94F7\uB913\u2cd3\uE76E\uc403\u5644\u7FA9" +
- "\u2ABB\uc153\udc0B\u9d6c\u3174\uF646\uAc89\u14E1" +
- "\u163A\u6909\u70B6\ud0Ed\ucc42\u98A4\u285c\uF886";
+ private static final String sbox = "\u1823\uc6E8\u87B8\u014F\u36A6\ud2F5\u796F\u9152"
+ + "\u60Bc\u9B8E\uA30c\u7B35\u1dE0\ud7c2\u2E4B\uFE57"
+ + "\u1577\u37E5\u9FF0\u4AdA\u58c9\u290A\uB1A0\u6B85"
+ + "\uBd5d\u10F4\ucB3E\u0567\uE427\u418B\uA77d\u95d8"
+ + "\uFBEE\u7c66\udd17\u479E\ucA2d\uBF07\uAd5A\u8333"
+ + "\u6302\uAA71\uc819\u49d9\uF2E3\u5B88\u9A26\u32B0"
+ + "\uE90F\ud580\uBEcd\u3448\uFF7A\u905F\u2068\u1AAE"
+ + "\uB454\u9322\u64F1\u7312\u4008\uc3Ec\udBA1\u8d3d"
+ + "\u9700\ucF2B\u7682\ud61B\uB5AF\u6A50\u45F3\u30EF"
+ + "\u3F55\uA2EA\u65BA\u2Fc0\udE1c\uFd4d\u9275\u068A"
+ + "\uB2E6\u0E1F\u62d4\uA896\uF9c5\u2559\u8472\u394c"
+ + "\u5E78\u388c\ud1A5\uE261\uB321\u9c1E\u43c7\uFc04"
+ + "\u5199\u6d0d\uFAdF\u7E24\u3BAB\ucE11\u8F4E\uB7EB"
+ + "\u3c81\u94F7\uB913\u2cd3\uE76E\uc403\u5644\u7FA9"
+ + "\u2ABB\uc153\udc0B\u9d6c\u3174\uF646\uAc89\u14E1"
+ + "\u163A\u6909\u70B6\ud0Ed\ucc42\u98A4\u285c\uF886";
private static long[][] C = new long[8][256];
- private static long[] rc = new long[R + 1];
+ private static long[] rc = new long[R + 1];
static {
for (int x = 0; x < 256; x++) {
- char c = sbox.charAt(x/2);
+ char c = sbox.charAt(x / 2);
long v1 = ((x & 1) == 0) ? c >>> 8 : c & 0xff;
long v2 = v1 << 1;
if (v2 >= 0x100L) {
@@ -120,11 +123,11 @@ public class WHIRLPOOL implements EncryptionMethod {
}
long v9 = v8 ^ v1;
/*
- * build the circulant table C[0][x] = S[x].[1, 1, 4, 1, 8, 5, 2, 9]:
+ * build the circulant table C[0][x] = S[x].[1, 1, 4, 1, 8, 5, 2,
+ * 9]:
*/
- C[0][x] =
- (v1 << 56) | (v1 << 48) | (v4 << 40) | (v1 << 32) |
- (v8 << 24) | (v5 << 16) | (v2 << 8) | (v9 );
+ C[0][x] = (v1 << 56) | (v1 << 48) | (v4 << 40) | (v1 << 32)
+ | (v8 << 24) | (v5 << 16) | (v2 << 8) | (v9);
/*
* build the remaining circulant tables C[t][x] = C[0][x] rotr t
*/
@@ -135,18 +138,20 @@ public class WHIRLPOOL implements EncryptionMethod {
/*
* build the round constants:
*/
- rc[0] = 0L; /* not used (assigment kept only to properly initialize all variables) */
+ rc[0] = 0L; /*
+ * not used (assigment kept only to properly initialize all
+ * variables)
+ */
for (int r = 1; r <= R; r++) {
- int i = 8*(r - 1);
- rc[r] =
- (C[0][i ] & 0xff00000000000000L) ^
- (C[1][i + 1] & 0x00ff000000000000L) ^
- (C[2][i + 2] & 0x0000ff0000000000L) ^
- (C[3][i + 3] & 0x000000ff00000000L) ^
- (C[4][i + 4] & 0x00000000ff000000L) ^
- (C[5][i + 5] & 0x0000000000ff0000L) ^
- (C[6][i + 6] & 0x000000000000ff00L) ^
- (C[7][i + 7] & 0x00000000000000ffL);
+ int i = 8 * (r - 1);
+ rc[r] = (C[0][i] & 0xff00000000000000L)
+ ^ (C[1][i + 1] & 0x00ff000000000000L)
+ ^ (C[2][i + 2] & 0x0000ff0000000000L)
+ ^ (C[3][i + 3] & 0x000000ff00000000L)
+ ^ (C[4][i + 4] & 0x00000000ff000000L)
+ ^ (C[5][i + 5] & 0x0000000000ff0000L)
+ ^ (C[6][i + 6] & 0x000000000000ff00L)
+ ^ (C[7][i + 7] & 0x00000000000000ffL);
}
}
@@ -173,9 +178,9 @@ public class WHIRLPOOL implements EncryptionMethod {
/**
* The hashing state.
*/
- protected long[] hash = new long[8];
- protected long[] K = new long[8];
- protected long[] L = new long[8];
+ protected long[] hash = new long[8];
+ protected long[] K = new long[8];
+ protected long[] L = new long[8];
protected long[] block = new long[8];
protected long[] state = new long[8];
@@ -190,15 +195,14 @@ public class WHIRLPOOL implements EncryptionMethod {
* map the buffer to a block:
*/
for (int i = 0, j = 0; i < 8; i++, j += 8) {
- block[i] =
- (((long)buffer[j ] ) << 56) ^
- (((long)buffer[j + 1] & 0xffL) << 48) ^
- (((long)buffer[j + 2] & 0xffL) << 40) ^
- (((long)buffer[j + 3] & 0xffL) << 32) ^
- (((long)buffer[j + 4] & 0xffL) << 24) ^
- (((long)buffer[j + 5] & 0xffL) << 16) ^
- (((long)buffer[j + 6] & 0xffL) << 8) ^
- (((long)buffer[j + 7] & 0xffL) );
+ block[i] = (((long) buffer[j]) << 56)
+ ^ (((long) buffer[j + 1] & 0xffL) << 48)
+ ^ (((long) buffer[j + 2] & 0xffL) << 40)
+ ^ (((long) buffer[j + 3] & 0xffL) << 32)
+ ^ (((long) buffer[j + 4] & 0xffL) << 24)
+ ^ (((long) buffer[j + 5] & 0xffL) << 16)
+ ^ (((long) buffer[j + 6] & 0xffL) << 8)
+ ^ (((long) buffer[j + 7] & 0xffL));
}
/*
* compute and apply K^0 to the cipher state:
@@ -216,7 +220,7 @@ public class WHIRLPOOL implements EncryptionMethod {
for (int i = 0; i < 8; i++) {
L[i] = 0L;
for (int t = 0, s = 56; t < 8; t++, s -= 8) {
- L[i] ^= C[t][(int)(K[(i - t) & 7] >>> s) & 0xff];
+ L[i] ^= C[t][(int) (K[(i - t) & 7] >>> s) & 0xff];
}
}
for (int i = 0; i < 8; i++) {
@@ -229,7 +233,7 @@ public class WHIRLPOOL implements EncryptionMethod {
for (int i = 0; i < 8; i++) {
L[i] = K[i];
for (int t = 0, s = 56; t < 8; t++, s -= 8) {
- L[i] ^= C[t][(int)(state[(i - t) & 7] >>> s) & 0xff];
+ L[i] ^= C[t][(int) (state[(i - t) & 7] >>> s) & 0xff];
}
}
for (int i = 0; i < 8; i++) {
@@ -248,7 +252,7 @@ public class WHIRLPOOL implements EncryptionMethod {
* Initialize the hashing state.
*/
public void NESSIEinit() {
- Arrays.fill(bitLength, (byte)0);
+ Arrays.fill(bitLength, (byte) 0);
bufferBits = bufferPos = 0;
buffer[0] = 0;
Arrays.fill(hash, 0L);
@@ -257,41 +261,41 @@ public class WHIRLPOOL implements EncryptionMethod {
/**
* Delivers input data to the hashing algorithm.
*
- * @param source plaintext data to hash.
- * @param sourceBits how many bits of plaintext to process.
+ * @param source
+ * plaintext data to hash.
+ * @param sourceBits
+ * how many bits of plaintext to process.
*
- * This method maintains the invariant: bufferBits < 512
+ * This method maintains the invariant: bufferBits < 512
*/
public void NESSIEadd(byte[] source, long sourceBits) {
/*
- sourcePos
- |
- +-------+-------+-------
- ||||||||||||||||||||| source
- +-------+-------+-------
- +-------+-------+-------+-------+-------+-------
- |||||||||||||||||||||| buffer
- +-------+-------+-------+-------+-------+-------
- |
- bufferPos
- */
- int sourcePos = 0; // index of leftmost source byte containing data (1 to 8 bits).
- int sourceGap = (8 - ((int)sourceBits & 7)) & 7; // space on source[sourcePos].
+ * sourcePos | +-------+-------+------- ||||||||||||||||||||| source
+ * +-------+-------+-------
+ * +-------+-------+-------+-------+-------+-------
+ * |||||||||||||||||||||| buffer
+ * +-------+-------+-------+-------+-------+------- | bufferPos
+ */
+ int sourcePos = 0; // index of leftmost source byte containing data (1
+ // to 8 bits).
+ int sourceGap = (8 - ((int) sourceBits & 7)) & 7; // space on
+ // source[sourcePos].
int bufferRem = bufferBits & 7; // occupied bits on buffer[bufferPos].
int b;
// tally the length of the added data:
long value = sourceBits;
for (int i = 31, carry = 0; i >= 0; i--) {
- carry += (bitLength[i] & 0xff) + ((int)value & 0xff);
- bitLength[i] = (byte)carry;
+ carry += (bitLength[i] & 0xff) + ((int) value & 0xff);
+ bitLength[i] = (byte) carry;
carry >>>= 8;
value >>>= 8;
}
// process data in chunks of 8 bits:
- while (sourceBits > 8) { // at least source[sourcePos] and source[sourcePos+1] contain data.
+ while (sourceBits > 8) { // at least source[sourcePos] and
+ // source[sourcePos+1] contain data.
// take a byte from the source:
- b = ((source[sourcePos] << sourceGap) & 0xff) |
- ((source[sourcePos + 1] & 0xff) >>> (8 - sourceGap));
+ b = ((source[sourcePos] << sourceGap) & 0xff)
+ | ((source[sourcePos + 1] & 0xff) >>> (8 - sourceGap));
if (b < 0 || b >= 256) {
throw new RuntimeException("LOGIC ERROR");
}
@@ -304,7 +308,7 @@ public class WHIRLPOOL implements EncryptionMethod {
// reset buffer:
bufferBits = bufferPos = 0;
}
- buffer[bufferPos] = (byte)((b << (8 - bufferRem)) & 0xff);
+ buffer[bufferPos] = (byte) ((b << (8 - bufferRem)) & 0xff);
bufferBits += bufferRem;
// proceed to remaining data:
sourceBits -= 8;
@@ -313,29 +317,32 @@ public class WHIRLPOOL implements EncryptionMethod {
// now 0 <= sourceBits <= 8;
// furthermore, all data (if any is left) is in source[sourcePos].
if (sourceBits > 0) {
- b = (source[sourcePos] << sourceGap) & 0xff; // bits are left-justified on b.
+ b = (source[sourcePos] << sourceGap) & 0xff; // bits are
+ // left-justified on b.
// process the remaining bits:
buffer[bufferPos] |= b >>> bufferRem;
} else {
b = 0;
}
if (bufferRem + sourceBits < 8) {
- // all remaining data fits on buffer[bufferPos], and there still remains some space.
+ // all remaining data fits on buffer[bufferPos], and there still
+ // remains some space.
bufferBits += sourceBits;
} else {
// buffer[bufferPos] is full:
bufferPos++;
bufferBits += 8 - bufferRem; // bufferBits = 8*bufferPos;
sourceBits -= 8 - bufferRem;
- // now 0 <= sourceBits < 8; furthermore, all data is in source[sourcePos].
+ // now 0 <= sourceBits < 8; furthermore, all data is in
+ // source[sourcePos].
if (bufferBits == 512) {
// process data block:
processBuffer();
// reset buffer:
bufferBits = bufferPos = 0;
}
- buffer[bufferPos] = (byte)((b << (8 - bufferRem)) & 0xff);
- bufferBits += (int)sourceBits;
+ buffer[bufferPos] = (byte) ((b << (8 - bufferRem)) & 0xff);
+ bufferBits += (int) sourceBits;
}
}
@@ -368,58 +375,59 @@ public class WHIRLPOOL implements EncryptionMethod {
// return the completed message digest:
for (int i = 0, j = 0; i < 8; i++, j += 8) {
long h = hash[i];
- digest[j ] = (byte)(h >>> 56);
- digest[j + 1] = (byte)(h >>> 48);
- digest[j + 2] = (byte)(h >>> 40);
- digest[j + 3] = (byte)(h >>> 32);
- digest[j + 4] = (byte)(h >>> 24);
- digest[j + 5] = (byte)(h >>> 16);
- digest[j + 6] = (byte)(h >>> 8);
- digest[j + 7] = (byte)(h );
+ digest[j] = (byte) (h >>> 56);
+ digest[j + 1] = (byte) (h >>> 48);
+ digest[j + 2] = (byte) (h >>> 40);
+ digest[j + 3] = (byte) (h >>> 32);
+ digest[j + 4] = (byte) (h >>> 24);
+ digest[j + 5] = (byte) (h >>> 16);
+ digest[j + 6] = (byte) (h >>> 8);
+ digest[j + 7] = (byte) (h);
}
}
/**
* Delivers string input data to the hashing algorithm.
*
- * @param source plaintext data to hash (ASCII text string).
+ * @param source
+ * plaintext data to hash (ASCII text string).
*
- * This method maintains the invariant: bufferBits < 512
+ * This method maintains the invariant: bufferBits < 512
*/
public void NESSIEadd(String source) {
if (source.length() > 0) {
byte[] data = new byte[source.length()];
for (int i = 0; i < source.length(); i++) {
- data[i] = (byte)source.charAt(i);
+ data[i] = (byte) source.charAt(i);
}
- NESSIEadd(data, 8*data.length);
+ NESSIEadd(data, 8 * data.length);
}
}
protected static String display(byte[] array) {
- char[] val = new char[2*array.length];
+ char[] val = new char[2 * array.length];
String hex = "0123456789ABCDEF";
for (int i = 0; i < array.length; i++) {
int b = array[i] & 0xff;
- val[2*i] = hex.charAt(b >>> 4);
- val[2*i + 1] = hex.charAt(b & 15);
+ val[2 * i] = hex.charAt(b >>> 4);
+ val[2 * i + 1] = hex.charAt(b & 15);
}
return String.valueOf(val);
}
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
byte[] digest = new byte[DIGESTBYTES];
NESSIEinit();
NESSIEadd(password);
NESSIEfinalize(digest);
return display(digest);
- }
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- return hash.equals(getHash(password, "", ""));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ return hash.equals(getHash(password, "", ""));
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/WORDPRESS.java b/src/main/java/fr/xephi/authme/security/crypts/WORDPRESS.java
index 3a525c8b..ddf150e6 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/WORDPRESS.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/WORDPRESS.java
@@ -47,7 +47,8 @@ public class WORDPRESS implements EncryptionMethod {
private String crypt(String password, String setting) {
String output = "*0";
- if (((setting.length() < 2) ? setting : setting.substring(0, 2)).equalsIgnoreCase(output)) {
+ if (((setting.length() < 2) ? setting : setting.substring(0, 2))
+ .equalsIgnoreCase(output)) {
output = "*1";
}
String id = (setting.length() < 3) ? setting : setting.substring(0, 3);
@@ -94,22 +95,24 @@ public class WORDPRESS implements EncryptionMethod {
try {
return string.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
- throw new UnsupportedOperationException("This system doesn't support UTF-8!", e);
+ throw new UnsupportedOperationException(
+ "This system doesn't support UTF-8!", e);
}
}
@Override
- public String getHash(String password, String salt, String name) throws NoSuchAlgorithmException {
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
byte random[] = new byte[6];
this.randomGen.nextBytes(random);
return crypt(password, gensaltPrivate(stringToUtf8(new String(random))));
}
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String comparedHash = crypt(password, hash);
- return comparedHash.equals(hash);
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String comparedHash = crypt(password, hash);
+ return comparedHash.equals(hash);
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/XAUTH.java b/src/main/java/fr/xephi/authme/security/crypts/XAUTH.java
index 2e4e7ba0..b3127619 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/XAUTH.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/XAUTH.java
@@ -4,29 +4,31 @@ import java.security.NoSuchAlgorithmException;
public class XAUTH implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
String hash = getWhirlpool(salt + password).toLowerCase();
- int saltPos = (password.length() >= hash.length() ? hash.length() - 1 : password.length());
+ int saltPos = (password.length() >= hash.length() ? hash.length() - 1
+ : password.length());
return hash.substring(0, saltPos) + salt + hash.substring(saltPos);
- }
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- int saltPos = (password.length() >= hash.length() ? hash.length() - 1 : password.length());
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ int saltPos = (password.length() >= hash.length() ? hash.length() - 1
+ : password.length());
String salt = hash.substring(saltPos, saltPos + 12);
return hash.equals(getHash(password, salt, ""));
- }
+ }
- public static String getWhirlpool(String message) {
+ public static String getWhirlpool(String message) {
WHIRLPOOL w = new WHIRLPOOL();
byte[] digest = new byte[WHIRLPOOL.DIGESTBYTES];
w.NESSIEinit();
w.NESSIEadd(message);
w.NESSIEfinalize(digest);
return WHIRLPOOL.display(digest);
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/security/crypts/XF.java b/src/main/java/fr/xephi/authme/security/crypts/XF.java
index 9d954a36..27e024e4 100644
--- a/src/main/java/fr/xephi/authme/security/crypts/XF.java
+++ b/src/main/java/fr/xephi/authme/security/crypts/XF.java
@@ -9,51 +9,48 @@ import java.util.regex.Pattern;
import fr.xephi.authme.AuthMe;
-
public class XF implements EncryptionMethod {
- @Override
- public String getHash(String password, String salt, String name)
- throws NoSuchAlgorithmException {
- return getSHA256(getSHA256(password) + regmatch("\"salt\";.:..:\"(.*)\";.:.:\"hashFunc\"", salt));
- }
+ @Override
+ public String getHash(String password, String salt, String name)
+ throws NoSuchAlgorithmException {
+ return getSHA256(getSHA256(password)
+ + regmatch("\"salt\";.:..:\"(.*)\";.:.:\"hashFunc\"", salt));
+ }
- @Override
- public boolean comparePassword(String hash, String password,
- String playerName) throws NoSuchAlgorithmException {
- String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt();
- return hash.equals(regmatch("\"hash\";.:..:\"(.*)\";.:.:\"salt\"", salt));
- }
+ @Override
+ public boolean comparePassword(String hash, String password,
+ String playerName) throws NoSuchAlgorithmException {
+ String salt = AuthMe.getInstance().database.getAuth(playerName)
+ .getSalt();
+ return hash
+ .equals(regmatch("\"hash\";.:..:\"(.*)\";.:.:\"salt\"", salt));
+ }
- public String getSHA256(String password) throws NoSuchAlgorithmException
- {
+ public String getSHA256(String password) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
byte byteData[] = md.digest();
StringBuffer sb = new StringBuffer();
- for (byte element : byteData)
- {
- sb.append(Integer.toString((element & 0xff) + 0x100, 16).substring(1));
+ for (byte element : byteData) {
+ sb.append(Integer.toString((element & 0xff) + 0x100, 16).substring(
+ 1));
}
StringBuffer hexString = new StringBuffer();
- for (byte element : byteData)
- {
+ for (byte element : byteData) {
String hex = Integer.toHexString(0xff & element);
- if (hex.length() == 1)
- {
+ if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
-
- public String regmatch(String pattern, String line)
- {
+
+ public String regmatch(String pattern, String line) {
List allMatches = new ArrayList();
Matcher m = Pattern.compile(pattern).matcher(line);
- while (m.find())
- {
+ while (m.find()) {
allMatches.add(m.group(1));
}
return allMatches.get(0);
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/BinTools.java b/src/main/java/fr/xephi/authme/security/pbkdf2/BinTools.java
index 43eed16c..d5055879 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/BinTools.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/BinTools.java
@@ -23,14 +23,14 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public class BinTools
-{
+public class BinTools {
public static final String hex = "0123456789ABCDEF";
/**
@@ -41,15 +41,12 @@ public class BinTools
* @return Hexadecimal representation of b. Uppercase A-F, two characters
* per byte. Empty string on null input.
*/
- public static String bin2hex(final byte[] b)
- {
- if (b == null)
- {
+ public static String bin2hex(final byte[] b) {
+ if (b == null) {
return "";
}
StringBuffer sb = new StringBuffer(2 * b.length);
- for (int i = 0; i < b.length; i++)
- {
+ for (int i = 0; i < b.length; i++) {
int v = (256 + b[i]) % 256;
sb.append(hex.charAt((v / 16) & 15));
sb.append(hex.charAt((v % 16) & 15));
@@ -61,28 +58,23 @@ public class BinTools
* Convert hex string to array of bytes.
*
* @param s
- * String containing hexadecimal digits. May be null.
- * On odd length leading zero will be assumed.
+ * String containing hexadecimal digits. May be null
+ * . On odd length leading zero will be assumed.
* @return Array on bytes, non-null.
* @throws IllegalArgumentException
* when string contains non-hex character
*/
- public static byte[] hex2bin(final String s)
- {
+ public static byte[] hex2bin(final String s) {
String m = s;
- if (s == null)
- {
+ if (s == null) {
// Allow empty input string.
m = "";
- }
- else if (s.length() % 2 != 0)
- {
+ } else if (s.length() % 2 != 0) {
// Assume leading zero for odd string length
m = "0" + s;
}
byte r[] = new byte[m.length() / 2];
- for (int i = 0, n = 0; i < m.length(); n++)
- {
+ for (int i = 0, n = 0; i < m.length(); n++) {
char h = m.charAt(i++);
char l = m.charAt(i++);
r[n] = (byte) (hex2bin(h) * 16 + hex2bin(l));
@@ -99,18 +91,14 @@ public class BinTools
* @throws IllegalArgumentException
* on non-hex character
*/
- public static int hex2bin(char c)
- {
- if (c >= '0' && c <= '9')
- {
+ public static int hex2bin(char c) {
+ if (c >= '0' && c <= '9') {
return (c - '0');
}
- if (c >= 'A' && c <= 'F')
- {
+ if (c >= 'A' && c <= 'F') {
return (c - 'A' + 10);
}
- if (c >= 'a' && c <= 'f')
- {
+ if (c >= 'a' && c <= 'f') {
return (c - 'a' + 10);
}
throw new IllegalArgumentException(
@@ -118,19 +106,16 @@ public class BinTools
+ "'");
}
- public static void main(String[] args)
- {
+ public static void main(String[] args) {
byte b[] = new byte[256];
byte bb = 0;
- for (int i = 0; i < 256; i++)
- {
+ for (int i = 0; i < 256; i++) {
b[i] = bb++;
}
String s = bin2hex(b);
byte c[] = hex2bin(s);
String t = bin2hex(c);
- if (!s.equals(t))
- {
+ if (!s.equals(t)) {
throw new AssertionError("Mismatch");
}
}
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/MacBasedPRF.java b/src/main/java/fr/xephi/authme/security/pbkdf2/MacBasedPRF.java
index 7a7f9b7a..7582926c 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/MacBasedPRF.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/MacBasedPRF.java
@@ -34,14 +34,14 @@ import javax.crypto.spec.SecretKeySpec;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public class MacBasedPRF implements PRF
-{
+public class MacBasedPRF implements PRF {
protected Mac mac;
protected int hLen;
@@ -54,57 +54,41 @@ public class MacBasedPRF implements PRF
* @param macAlgorithm
* Mac algorithm to use, i.e. HMacSHA1 or HMacMD5.
*/
- public MacBasedPRF(String macAlgorithm)
- {
+ public MacBasedPRF(String macAlgorithm) {
this.macAlgorithm = macAlgorithm;
- try
- {
+ try {
mac = Mac.getInstance(macAlgorithm);
hLen = mac.getMacLength();
- }
- catch (NoSuchAlgorithmException e)
- {
+ } catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
- public MacBasedPRF(String macAlgorithm, String provider)
- {
+ public MacBasedPRF(String macAlgorithm, String provider) {
this.macAlgorithm = macAlgorithm;
- try
- {
+ try {
mac = Mac.getInstance(macAlgorithm, provider);
hLen = mac.getMacLength();
- }
- catch (NoSuchAlgorithmException e)
- {
+ } catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
- }
- catch (NoSuchProviderException e)
- {
+ } catch (NoSuchProviderException e) {
throw new RuntimeException(e);
}
}
- public byte[] doFinal(byte[] M)
- {
+ public byte[] doFinal(byte[] M) {
byte[] r = mac.doFinal(M);
return r;
}
- public int getHLen()
- {
+ public int getHLen() {
return hLen;
}
- public void init(byte[] P)
- {
- try
- {
+ public void init(byte[] P) {
+ try {
mac.init(new SecretKeySpec(P, macAlgorithm));
- }
- catch (InvalidKeyException e)
- {
+ } catch (InvalidKeyException e) {
throw new RuntimeException(e);
}
}
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2.java
index 5feadd13..eb5bd8c9 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2.java
@@ -24,14 +24,14 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public interface PBKDF2
-{
+public interface PBKDF2 {
/**
* Convert String-based input to internal byte array, then invoke PBKDF2.
* Desired key length defaults to Pseudo Random Function block size.
@@ -60,8 +60,8 @@ public interface PBKDF2
*
* @param inputPassword
* Candidate password to compute the derived key for.
- * @return true password match; false
- * incorrect password
+ * @return true password match; false incorrect
+ * password
*/
public abstract boolean verifyKey(String inputPassword);
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Engine.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Engine.java
index 07da6d18..79a7fee4 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Engine.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Engine.java
@@ -61,15 +61,15 @@ import java.security.SecureRandom;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @see RFC 2898
* @author Matthias Gärtner
* @version 1.0
*/
-public class PBKDF2Engine implements PBKDF2
-{
+public class PBKDF2Engine implements PBKDF2 {
protected PBKDF2Parameters parameters;
protected PRF prf;
@@ -78,8 +78,7 @@ public class PBKDF2Engine implements PBKDF2
* Constructor for PBKDF2 implementation object. PBKDF2 parameters must be
* passed later.
*/
- public PBKDF2Engine()
- {
+ public PBKDF2Engine() {
this.parameters = null;
prf = null;
}
@@ -92,8 +91,7 @@ public class PBKDF2Engine implements PBKDF2
* @param parameters
* Data holder for iteration count, method to use et cetera.
*/
- public PBKDF2Engine(PBKDF2Parameters parameters)
- {
+ public PBKDF2Engine(PBKDF2Parameters parameters) {
this.parameters = parameters;
prf = null;
}
@@ -108,44 +106,33 @@ public class PBKDF2Engine implements PBKDF2
* @param prf
* Supply customer Pseudo Random Function.
*/
- public PBKDF2Engine(PBKDF2Parameters parameters, PRF prf)
- {
+ public PBKDF2Engine(PBKDF2Parameters parameters, PRF prf) {
this.parameters = parameters;
this.prf = prf;
}
- public byte[] deriveKey(String inputPassword)
- {
+ public byte[] deriveKey(String inputPassword) {
return deriveKey(inputPassword, 0);
}
- public byte[] deriveKey(String inputPassword, int dkLen)
- {
+ public byte[] deriveKey(String inputPassword, int dkLen) {
byte[] r = null;
byte P[] = null;
String charset = parameters.getHashCharset();
- if (inputPassword == null)
- {
+ if (inputPassword == null) {
inputPassword = "";
}
- try
- {
- if (charset == null)
- {
+ try {
+ if (charset == null) {
P = inputPassword.getBytes();
- }
- else
- {
+ } else {
P = inputPassword.getBytes(charset);
}
- }
- catch (UnsupportedEncodingException e)
- {
+ } catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
assertPRF(P);
- if (dkLen == 0)
- {
+ if (dkLen == 0) {
dkLen = prf.getHLen();
}
r = PBKDF2(prf, parameters.getSalt(), parameters.getIterationCount(),
@@ -153,23 +140,18 @@ public class PBKDF2Engine implements PBKDF2
return r;
}
- public boolean verifyKey(String inputPassword)
- {
+ public boolean verifyKey(String inputPassword) {
byte[] referenceKey = getParameters().getDerivedKey();
- if (referenceKey == null || referenceKey.length == 0)
- {
+ if (referenceKey == null || referenceKey.length == 0) {
return false;
}
byte[] inputKey = deriveKey(inputPassword, referenceKey.length);
- if (inputKey == null || inputKey.length != referenceKey.length)
- {
+ if (inputKey == null || inputKey.length != referenceKey.length) {
return false;
}
- for (int i = 0; i < inputKey.length; i++)
- {
- if (inputKey[i] != referenceKey[i])
- {
+ for (int i = 0; i < inputKey.length; i++) {
+ if (inputKey[i] != referenceKey[i]) {
return false;
}
}
@@ -183,17 +165,14 @@ public class PBKDF2Engine implements PBKDF2
* @param P
* User-supplied candidate password as array of bytes.
*/
- protected void assertPRF(byte[] P)
- {
- if (prf == null)
- {
+ protected void assertPRF(byte[] P) {
+ if (prf == null) {
prf = new MacBasedPRF(parameters.getHashAlgorithm());
}
prf.init(P);
}
- public PRF getPseudoRandomFunction()
- {
+ public PRF getPseudoRandomFunction() {
return prf;
}
@@ -211,10 +190,8 @@ public class PBKDF2Engine implements PBKDF2
* desired length of derived key.
* @return internal byte array
*/
- protected byte[] PBKDF2(PRF prf, byte[] S, int c, int dkLen)
- {
- if (S == null)
- {
+ protected byte[] PBKDF2(PRF prf, byte[] S, int c, int dkLen) {
+ if (S == null) {
S = new byte[0];
}
int hLen = prf.getHLen();
@@ -222,13 +199,11 @@ public class PBKDF2Engine implements PBKDF2
int r = dkLen - (l - 1) * hLen;
byte T[] = new byte[l * hLen];
int ti_offset = 0;
- for (int i = 1; i <= l; i++)
- {
+ for (int i = 1; i <= l; i++) {
_F(T, ti_offset, prf, S, c, i);
ti_offset += hLen;
}
- if (r < hLen)
- {
+ if (r < hLen) {
// Incomplete last block
byte DK[] = new byte[dkLen];
System.arraycopy(T, 0, DK, 0, dkLen);
@@ -240,16 +215,15 @@ public class PBKDF2Engine implements PBKDF2
/**
* Integer division with ceiling function.
*
- * @see RFC 2898 5.2 Step 2.
+ * @see RFC 2898 5.2 Step
+ * 2.
* @param a
* @param b
* @return ceil(a/b)
*/
- protected int ceil(int a, int b)
- {
+ protected int ceil(int a, int b) {
int m = 0;
- if (a % b > 0)
- {
+ if (a % b > 0) {
m = 1;
}
return a / b + m;
@@ -258,7 +232,8 @@ public class PBKDF2Engine implements PBKDF2
/**
* Function F.
*
- * @see RFC 2898 5.2 Step 3.
+ * @see RFC 2898 5.2 Step
+ * 3.
* @param dest
* Destination byte buffer
* @param offset
@@ -272,8 +247,7 @@ public class PBKDF2Engine implements PBKDF2
* @param blockIndex
*/
protected void _F(byte[] dest, int offset, PRF prf, byte[] S, int c,
- int blockIndex)
- {
+ int blockIndex) {
int hLen = prf.getHLen();
byte U_r[] = new byte[hLen];
@@ -282,8 +256,7 @@ public class PBKDF2Engine implements PBKDF2
System.arraycopy(S, 0, U_i, 0, S.length);
INT(U_i, S.length, blockIndex);
- for (int i = 0; i < c; i++)
- {
+ for (int i = 0; i < c; i++) {
U_i = prf.doFinal(U_i);
xor(U_r, U_i);
}
@@ -297,10 +270,8 @@ public class PBKDF2Engine implements PBKDF2
* @param dest
* @param src
*/
- protected void xor(byte[] dest, byte[] src)
- {
- for (int i = 0; i < dest.length; i++)
- {
+ protected void xor(byte[] dest, byte[] src) {
+ for (int i = 0; i < dest.length; i++) {
dest[i] ^= src[i];
}
}
@@ -308,31 +279,28 @@ public class PBKDF2Engine implements PBKDF2
/**
* Four-octet encoding of the integer i, most significant octet first.
*
- * @see RFC 2898 5.2 Step 3.
+ * @see RFC 2898 5.2 Step
+ * 3.
* @param dest
* @param offset
* @param i
*/
- protected void INT(byte[] dest, int offset, int i)
- {
+ protected void INT(byte[] dest, int offset, int i) {
dest[offset + 0] = (byte) (i / (256 * 256 * 256));
dest[offset + 1] = (byte) (i / (256 * 256));
dest[offset + 2] = (byte) (i / (256));
dest[offset + 3] = (byte) (i);
}
- public PBKDF2Parameters getParameters()
- {
+ public PBKDF2Parameters getParameters() {
return parameters;
}
- public void setParameters(PBKDF2Parameters parameters)
- {
+ public void setParameters(PBKDF2Parameters parameters) {
this.parameters = parameters;
}
- public void setPseudoRandomFunction(PRF prf)
- {
+ public void setPseudoRandomFunction(PRF prf) {
this.prf = prf;
}
@@ -352,22 +320,18 @@ public class PBKDF2Engine implements PBKDF2
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws IOException,
- NoSuchAlgorithmException
- {
+ NoSuchAlgorithmException {
String password = "password";
String candidate = null;
PBKDF2Formatter formatter = new PBKDF2HexFormatter();
- if (args.length >= 1)
- {
+ if (args.length >= 1) {
password = args[0];
}
- if (args.length >= 2)
- {
+ if (args.length >= 2) {
candidate = args[1];
}
- if (candidate == null)
- {
+ if (candidate == null) {
// Creation mode
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
byte[] salt = new byte[8];
@@ -379,15 +343,12 @@ public class PBKDF2Engine implements PBKDF2
p.setDerivedKey(e.deriveKey(password));
candidate = formatter.toString(p);
System.out.println(candidate);
- }
- else
- {
+ } else {
// Verification mode
PBKDF2Parameters p = new PBKDF2Parameters();
p.setHashAlgorithm("HmacSHA1");
p.setHashCharset("ISO-8859-1");
- if (formatter.fromString(p, candidate))
- {
+ if (formatter.fromString(p, candidate)) {
throw new IllegalArgumentException(
"Candidate data does not have correct format (\""
+ candidate + "\")");
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Formatter.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Formatter.java
index bf0ff49a..401edf34 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Formatter.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Formatter.java
@@ -24,14 +24,14 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public interface PBKDF2Formatter
-{
+public interface PBKDF2Formatter {
/**
* Convert parameters to String.
*
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2HexFormatter.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2HexFormatter.java
index 1e12b5f9..92c0a291 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2HexFormatter.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2HexFormatter.java
@@ -24,24 +24,21 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public class PBKDF2HexFormatter implements PBKDF2Formatter
-{
- public boolean fromString(PBKDF2Parameters p, String s)
- {
- if (p == null || s == null)
- {
+public class PBKDF2HexFormatter implements PBKDF2Formatter {
+ public boolean fromString(PBKDF2Parameters p, String s) {
+ if (p == null || s == null) {
return true;
}
String[] p123 = s.split(":");
- if (p123 == null || p123.length != 3)
- {
+ if (p123 == null || p123.length != 3) {
return true;
}
@@ -55,8 +52,7 @@ public class PBKDF2HexFormatter implements PBKDF2Formatter
return false;
}
- public String toString(PBKDF2Parameters p)
- {
+ public String toString(PBKDF2Parameters p) {
String s = BinTools.bin2hex(p.getSalt()) + ":"
+ String.valueOf(p.getIterationCount()) + ":"
+ BinTools.bin2hex(p.getDerivedKey());
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Parameters.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Parameters.java
index 6eb41b0a..8b4286f7 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Parameters.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PBKDF2Parameters.java
@@ -29,14 +29,14 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public class PBKDF2Parameters
-{
+public class PBKDF2Parameters {
protected byte[] salt;
protected int iterationCount;
@@ -56,8 +56,7 @@ public class PBKDF2Parameters
* character set and 1000 for iteration count.
*
*/
- public PBKDF2Parameters()
- {
+ public PBKDF2Parameters() {
this.hashAlgorithm = null;
this.hashCharset = "UTF-8";
this.salt = null;
@@ -73,14 +72,12 @@ public class PBKDF2Parameters
* @param hashCharset
* for example UTF-8
* @param salt
- * Salt as byte array, may be null (not
- * recommended)
+ * Salt as byte array, may be null (not recommended)
* @param iterationCount
* Number of iterations to execute. Recommended value 1000.
*/
public PBKDF2Parameters(String hashAlgorithm, String hashCharset,
- byte[] salt, int iterationCount)
- {
+ byte[] salt, int iterationCount) {
this.hashAlgorithm = hashAlgorithm;
this.hashCharset = hashCharset;
this.salt = salt;
@@ -96,16 +93,14 @@ public class PBKDF2Parameters
* @param hashCharset
* for example UTF-8
* @param salt
- * Salt as byte array, may be null (not
- * recommended)
+ * Salt as byte array, may be null (not recommended)
* @param iterationCount
* Number of iterations to execute. Recommended value 1000.
* @param derivedKey
* Convenience data holder, not used during computation.
*/
public PBKDF2Parameters(String hashAlgorithm, String hashCharset,
- byte[] salt, int iterationCount, byte[] derivedKey)
- {
+ byte[] salt, int iterationCount, byte[] derivedKey) {
this.hashAlgorithm = hashAlgorithm;
this.hashCharset = hashCharset;
this.salt = salt;
@@ -113,53 +108,43 @@ public class PBKDF2Parameters
this.derivedKey = derivedKey;
}
- public int getIterationCount()
- {
+ public int getIterationCount() {
return iterationCount;
}
- public void setIterationCount(int iterationCount)
- {
+ public void setIterationCount(int iterationCount) {
this.iterationCount = iterationCount;
}
- public byte[] getSalt()
- {
+ public byte[] getSalt() {
return salt;
}
- public void setSalt(byte[] salt)
- {
+ public void setSalt(byte[] salt) {
this.salt = salt;
}
- public byte[] getDerivedKey()
- {
+ public byte[] getDerivedKey() {
return derivedKey;
}
- public void setDerivedKey(byte[] derivedKey)
- {
+ public void setDerivedKey(byte[] derivedKey) {
this.derivedKey = derivedKey;
}
- public String getHashAlgorithm()
- {
+ public String getHashAlgorithm() {
return hashAlgorithm;
}
- public void setHashAlgorithm(String hashAlgorithm)
- {
+ public void setHashAlgorithm(String hashAlgorithm) {
this.hashAlgorithm = hashAlgorithm;
}
- public String getHashCharset()
- {
+ public String getHashCharset() {
return hashCharset;
}
- public void setHashCharset(String hashCharset)
- {
+ public void setHashCharset(String hashCharset) {
this.hashCharset = hashCharset;
}
}
diff --git a/src/main/java/fr/xephi/authme/security/pbkdf2/PRF.java b/src/main/java/fr/xephi/authme/security/pbkdf2/PRF.java
index 00e1e39c..17955787 100644
--- a/src/main/java/fr/xephi/authme/security/pbkdf2/PRF.java
+++ b/src/main/java/fr/xephi/authme/security/pbkdf2/PRF.java
@@ -24,14 +24,14 @@ package fr.xephi.authme.security.pbkdf2;
*
*
* For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ * href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+ * >http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
*
*
* @author Matthias Gärtner
* @version 1.0
*/
-public interface PRF
-{
+public interface PRF {
/**
* Initialize this instance with the user-supplied password.
*
diff --git a/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java b/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java
index 273f8961..84de2b2c 100644
--- a/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java
+++ b/src/main/java/fr/xephi/authme/settings/CustomConfiguration.java
@@ -18,93 +18,90 @@ import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
-public class CustomConfiguration extends YamlConfiguration{
+public class CustomConfiguration extends YamlConfiguration {
- private File configFile;
+ private File configFile;
- public CustomConfiguration(File file)
- {
- this.configFile = file;
+ public CustomConfiguration(File file) {
+ this.configFile = file;
- load();
- }
+ load();
+ }
- public void load()
- {
- try {
- super.load(configFile);
- } catch (FileNotFoundException e) {
- Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not find " + configFile.getName() + ", creating new one...");
- reLoad();
- } catch (IOException e) {
- Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not load " + configFile.getName(), e);
- } catch (InvalidConfigurationException e) {
- Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, configFile.getName() + " is no valid configuration file", e);
- }
- }
+ public void load() {
+ try {
+ super.load(configFile);
+ } catch (FileNotFoundException e) {
+ Logger.getLogger(JavaPlugin.class.getName()).log(
+ Level.SEVERE,
+ "Could not find " + configFile.getName()
+ + ", creating new one...");
+ reLoad();
+ } catch (IOException e) {
+ Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE,
+ "Could not load " + configFile.getName(), e);
+ } catch (InvalidConfigurationException e) {
+ Logger.getLogger(JavaPlugin.class.getName())
+ .log(Level.SEVERE,
+ configFile.getName()
+ + " is no valid configuration file", e);
+ }
+ }
- public boolean reLoad() {
- boolean out = true;
- if (!configFile.exists())
- {
- out = loadRessource(configFile);
- }
- if (out) load();
- return out;
- }
+ public boolean reLoad() {
+ boolean out = true;
+ if (!configFile.exists()) {
+ out = loadRessource(configFile);
+ }
+ if (out) load();
+ return out;
+ }
- public void save() {
- try {
- super.save(configFile);
- } catch (IOException ex) {
- Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not save config to " + configFile.getName(), ex);
- }
- }
+ public void save() {
+ try {
+ super.save(configFile);
+ } catch (IOException ex) {
+ Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE,
+ "Could not save config to " + configFile.getName(), ex);
+ }
+ }
- public boolean loadRessource(File file) {
- boolean out = true;
- if (!file.exists()) {
- try {
- InputStream fis = getClass().getResourceAsStream("/" + file.getName());
- BufferedReader reader = new BufferedReader(new InputStreamReader(fis, Charset.forName("UTF-8").newDecoder()));
- String str;
- Writer writer = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(file), Charset.forName("UTF-8").newEncoder()));
- while ((str = reader.readLine()) != null) {
- writer.append(str).append("\r\n");
- }
- writer.flush();
- writer.close();
- reader.close();
- fis.close();
- } catch (Exception e) {
- 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;
- }
-}
\ No newline at end of file
+ public boolean loadRessource(File file) {
+ boolean out = true;
+ if (!file.exists()) {
+ try {
+ InputStream fis = getClass().getResourceAsStream(
+ "/" + file.getName());
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(fis, Charset.forName("UTF-8")
+ .newDecoder()));
+ String str;
+ Writer writer = new BufferedWriter(new OutputStreamWriter(
+ new FileOutputStream(file), Charset.forName("UTF-8")
+ .newEncoder()));
+ while ((str = reader.readLine()) != null) {
+ writer.append(str).append("\r\n");
+ }
+ writer.flush();
+ writer.close();
+ reader.close();
+ fis.close();
+ } catch (Exception e) {
+ 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;
+ }
+}
diff --git a/src/main/java/fr/xephi/authme/settings/Messages.java b/src/main/java/fr/xephi/authme/settings/Messages.java
index 851e99e7..f83fdc02 100644
--- a/src/main/java/fr/xephi/authme/settings/Messages.java
+++ b/src/main/java/fr/xephi/authme/settings/Messages.java
@@ -22,11 +22,12 @@ public class Messages extends CustomConfiguration {
/**
* Loads a file from the plugin jar and sets as default
*
- * @param filename The filename to open
+ * @param filename
+ * The filename to open
*/
public final void loadDefaults(File file) {
InputStream stream = AuthMe.getInstance().getResource(file.getName());
- if(stream == null) return;
+ if (stream == null) return;
setDefaults(YamlConfiguration.loadConfiguration(stream));
}
@@ -61,7 +62,7 @@ public class Messages extends CustomConfiguration {
return success;
}
- private void loadFile() {
+ private void loadFile() {
this.load();
this.save();
}
@@ -69,32 +70,40 @@ public class Messages extends CustomConfiguration {
public void _(CommandSender sender, String msg) {
String loc = (String) this.get(msg);
if (loc == null) {
- loc = "Error with Translation files; Please contact the admin for verify or update translation";
- ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml !");
+ loc = "Error with Translation files; Please contact the admin for verify or update translation";
+ ConsoleLogger.showError("Error with the " + msg
+ + " translation, verify in your " + Settings.MESSAGE_FILE
+ + "_" + Settings.messagesLanguage + ".yml !");
}
for (String l : loc.split("&n")) {
- sender.sendMessage(l.replace("&", "\u00a7"));
+ sender.sendMessage(l.replace("&", "\u00a7"));
}
}
public String[] _(String msg) {
- int i = ((String) this.get(msg)).split("&n").length;
+ int i = ((String) this.get(msg)).split("&n").length;
String[] loc = new String[i];
int a;
- for (a = 0 ; a < i ; a++) {
- loc[a] = ((String) this.get(msg)).split("&n")[a].replace("&", "\u00a7");
+ for (a = 0; a < i; a++) {
+ loc[a] = ((String) this.get(msg)).split("&n")[a].replace("&",
+ "\u00a7");
}
if (loc == null || loc.length == 0) {
- loc[0] = "Error with " + msg + " translation; Please contact the admin for verify or update translation files";
- ConsoleLogger.showError("Error with the " + msg + " translation, verify in your " + Settings.MESSAGE_FILE + "_" + Settings.messagesLanguage + ".yml !");
+ loc[0] = "Error with "
+ + msg
+ + " translation; Please contact the admin for verify or update translation files";
+ ConsoleLogger.showError("Error with the " + msg
+ + " translation, verify in your " + Settings.MESSAGE_FILE
+ + "_" + Settings.messagesLanguage + ".yml !");
}
return loc;
}
- public static Messages getInstance() {
+ public static Messages getInstance() {
if (singleton == null) {
- singleton = new Messages(new File(Settings.MESSAGE_FILE+"_"+Settings.messagesLanguage+".yml"));
- }
+ singleton = new Messages(new File(Settings.MESSAGE_FILE + "_"
+ + Settings.messagesLanguage + ".yml"));
+ }
return singleton;
}
diff --git a/src/main/java/fr/xephi/authme/settings/OtherAccounts.java b/src/main/java/fr/xephi/authme/settings/OtherAccounts.java
index eb80f8c6..96d1aacd 100644
--- a/src/main/java/fr/xephi/authme/settings/OtherAccounts.java
+++ b/src/main/java/fr/xephi/authme/settings/OtherAccounts.java
@@ -9,25 +9,25 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class OtherAccounts extends CustomConfiguration {
- private static OtherAccounts others = null;
+ private static OtherAccounts others = null;
- public OtherAccounts() {
- super(new File("./plugins/AuthMe/otheraccounts.yml"));
- others = this;
- load();
- save();
- }
+ public OtherAccounts() {
+ super(new File("./plugins/AuthMe/otheraccounts.yml"));
+ others = this;
+ load();
+ save();
+ }
- public void clear(UUID uuid) {
- set(uuid.toString(), new ArrayList());
- save();
- }
+ public void clear(UUID uuid) {
+ set(uuid.toString(), new ArrayList());
+ save();
+ }
- public static OtherAccounts getInstance() {
+ public static OtherAccounts getInstance() {
if (others == null) {
others = new OtherAccounts();
}
@@ -35,33 +35,33 @@ public class OtherAccounts extends CustomConfiguration {
}
public void addPlayer(UUID uuid) {
- try {
- Player player = Bukkit.getPlayer(uuid);
- if (player == null) return;
- if (!this.getStringList(uuid.toString()).contains(player.getName())) {
- this.getStringList(uuid.toString()).add(player.getName());
- save();
- }
- } catch (NoSuchMethodError e) {
- } catch (Exception e) {
- }
+ try {
+ Player player = Bukkit.getPlayer(uuid);
+ if (player == null) return;
+ if (!this.getStringList(uuid.toString()).contains(player.getName())) {
+ this.getStringList(uuid.toString()).add(player.getName());
+ save();
+ }
+ } catch (NoSuchMethodError e) {
+ } catch (Exception e) {
+ }
}
- public void removePlayer(UUID uuid) {
- try {
- Player player = Bukkit.getPlayer(uuid);
- if (player == null) return;
- if (this.getStringList(uuid.toString()).contains(player.getName())) {
- this.getStringList(uuid.toString()).remove(player.getName());
- save();
- }
- } catch (NoSuchMethodError e) {
- } catch (Exception e) {
- }
+ public void removePlayer(UUID uuid) {
+ try {
+ Player player = Bukkit.getPlayer(uuid);
+ if (player == null) return;
+ if (this.getStringList(uuid.toString()).contains(player.getName())) {
+ this.getStringList(uuid.toString()).remove(player.getName());
+ save();
+ }
+ } catch (NoSuchMethodError e) {
+ } catch (Exception e) {
+ }
- }
-
- public List getAllPlayersByUUID(UUID uuid) {
- return this.getStringList(uuid.toString());
- }
+ }
+
+ public List getAllPlayersByUUID(UUID uuid) {
+ return this.getStringList(uuid.toString());
+ }
}
diff --git a/src/main/java/fr/xephi/authme/settings/PlayersLogs.java b/src/main/java/fr/xephi/authme/settings/PlayersLogs.java
index 345dc6ec..7cf06ced 100644
--- a/src/main/java/fr/xephi/authme/settings/PlayersLogs.java
+++ b/src/main/java/fr/xephi/authme/settings/PlayersLogs.java
@@ -5,27 +5,27 @@ import java.util.ArrayList;
import java.util.List;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class PlayersLogs extends CustomConfiguration {
- private static PlayersLogs pllog = null;
- public List players;
+ private static PlayersLogs pllog = null;
+ public List players;
- public PlayersLogs() {
- super(new File("./plugins/AuthMe/players.yml"));
- pllog = this;
- load();
- save();
- players = this.getStringList("players");
- }
+ public PlayersLogs() {
+ super(new File("./plugins/AuthMe/players.yml"));
+ pllog = this;
+ load();
+ save();
+ players = this.getStringList("players");
+ }
- public void clear() {
- set("players", new ArrayList());
- save();
- }
+ public void clear() {
+ set("players", new ArrayList());
+ save();
+ }
- public static PlayersLogs getInstance() {
+ public static PlayersLogs getInstance() {
if (pllog == null) {
pllog = new PlayersLogs();
}
@@ -41,12 +41,12 @@ public class PlayersLogs extends CustomConfiguration {
}
}
- public void removePlayer(String user) {
+ public void removePlayer(String user) {
players = this.getStringList("players");
if (players.contains(user.toLowerCase())) {
players.remove(user.toLowerCase());
set("players", players);
save();
}
- }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java
index fbf6fc72..d17b8d98 100644
--- a/src/main/java/fr/xephi/authme/settings/Settings.java
+++ b/src/main/java/fr/xephi/authme/settings/Settings.java
@@ -21,14 +21,15 @@ import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.datasource.DataSource.DataSourceType;
import fr.xephi.authme.security.HashAlgorithm;
-
public final class Settings extends YamlConfiguration {
public static final String PLUGIN_FOLDER = "./plugins/AuthMe";
public static final String CACHE_FOLDER = Settings.PLUGIN_FOLDER + "/cache";
public static final String AUTH_FILE = Settings.PLUGIN_FOLDER + "/auths.db";
- public static final String MESSAGE_FILE = Settings.PLUGIN_FOLDER + "/messages";
- public static final String SETTINGS_FILE = Settings.PLUGIN_FOLDER + "/config.yml";
+ public static final String MESSAGE_FILE = Settings.PLUGIN_FOLDER
+ + "/messages";
+ public static final String SETTINGS_FILE = Settings.PLUGIN_FOLDER
+ + "/config.yml";
public static List allowCommands = null;
public static List getJoinPermissions = null;
public static List getUnrestrictedName = null;
@@ -48,517 +49,769 @@ public final class Settings extends YamlConfiguration {
public static List welcomeMsg = null;
public static List unsafePasswords;
public static List emailBlacklist = null;
-
- public static Boolean isPermissionCheckEnabled, isRegistrationEnabled, isForcedRegistrationEnabled,
- isTeleportToSpawnEnabled, isSessionsEnabled, isChatAllowed, isAllowRestrictedIp,
- isMovementAllowed, isKickNonRegisteredEnabled, isForceSingleSessionEnabled,
- isForceSpawnLocOnJoinEnabled, isSaveQuitLocationEnabled,
- isForceSurvivalModeEnabled, isResetInventoryIfCreative, isCachingEnabled, isKickOnWrongPasswordEnabled,
- getEnablePasswordVerifier, protectInventoryBeforeLogInEnabled, isBackupActivated, isBackupOnStart,
- isBackupOnStop, enablePasspartu, isStopEnabled, reloadSupport, rakamakUseIp, noConsoleSpam, removePassword, displayOtherAccounts,
- useCaptcha, emailRegistration, multiverse, notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange,
- disableSocialSpy, forceOnlyAfterLogin, useEssentialsMotd,
- usePurge, purgePlayerDat, purgeEssentialsFile, supportOldPassword, purgeLimitedCreative,
- purgeAntiXray, purgePermissions, enableProtection, enableAntiBot, recallEmail, useWelcomeMessage,
- broadcastWelcomeMessage, forceRegKick, forceRegLogin, checkVeryGames, delayJoinMessage,
- noTeleport, applyBlindEffect;
-
- public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort,
- getMySQLUsername, getMySQLPassword, getMySQLDatabase, getMySQLTablename,
- getMySQLColumnName, getMySQLColumnPassword, getMySQLColumnIp, getMySQLColumnLastLogin,
- getMySQLColumnSalt, getMySQLColumnGroup, getMySQLColumnEmail, unRegisteredGroup, backupWindowsPath,
- getcUnrestrictedName, getRegisteredGroup, messagesLanguage, getMySQLlastlocX, getMySQLlastlocY, getMySQLlastlocZ,
- rakamakUsers, rakamakUsersIp, getmailAccount, getmailPassword, getmailSMTP, getMySQLColumnId, getmailSenderName,
- getMailSubject, getMailText, getMySQLlastlocWorld, defaultWorld,
- getPhpbbPrefix, getWordPressPrefix, getMySQLColumnLogged, spawnPriority, crazyloginFileName,
- getPassRegex;
- public static int getWarnMessageInterval, getSessionTimeout, getRegistrationTimeout, getMaxNickLength,
- getMinNickLength, getPasswordMinLen, getMovementRadius, getmaxRegPerIp, getNonActivatedGroup,
- passwordMaxLength, getRecoveryPassLength, getMailPort, maxLoginTry, captchaLength, saltLength, getmaxRegPerEmail,
- bCryptLog2Rounds, getPhpbbGroup, antiBotSensibility, antiBotDuration, delayRecall, getMaxLoginPerIp, getMaxJoinPerIp;
+ public static Boolean isPermissionCheckEnabled, isRegistrationEnabled,
+ isForcedRegistrationEnabled, isTeleportToSpawnEnabled,
+ isSessionsEnabled, isChatAllowed, isAllowRestrictedIp,
+ isMovementAllowed, isKickNonRegisteredEnabled,
+ isForceSingleSessionEnabled, isForceSpawnLocOnJoinEnabled,
+ isSaveQuitLocationEnabled, isForceSurvivalModeEnabled,
+ isResetInventoryIfCreative, isCachingEnabled,
+ isKickOnWrongPasswordEnabled, getEnablePasswordVerifier,
+ protectInventoryBeforeLogInEnabled, isBackupActivated,
+ isBackupOnStart, isBackupOnStop, enablePasspartu, isStopEnabled,
+ reloadSupport, rakamakUseIp, noConsoleSpam, removePassword,
+ displayOtherAccounts, useCaptcha, emailRegistration, multiverse,
+ notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck,
+ sessionExpireOnIpChange, disableSocialSpy, forceOnlyAfterLogin,
+ useEssentialsMotd, usePurge, purgePlayerDat, purgeEssentialsFile,
+ supportOldPassword, purgeLimitedCreative, purgeAntiXray,
+ purgePermissions, enableProtection, enableAntiBot, recallEmail,
+ useWelcomeMessage, broadcastWelcomeMessage, forceRegKick,
+ forceRegLogin, checkVeryGames, delayJoinMessage, noTeleport,
+ applyBlindEffect;
+
+ public static String getNickRegex, getUnloggedinGroup, getMySQLHost,
+ getMySQLPort, getMySQLUsername, getMySQLPassword, getMySQLDatabase,
+ getMySQLTablename, getMySQLColumnName, getMySQLColumnPassword,
+ getMySQLColumnIp, getMySQLColumnLastLogin, getMySQLColumnSalt,
+ getMySQLColumnGroup, getMySQLColumnEmail, unRegisteredGroup,
+ backupWindowsPath, getcUnrestrictedName, getRegisteredGroup,
+ messagesLanguage, getMySQLlastlocX, getMySQLlastlocY,
+ getMySQLlastlocZ, rakamakUsers, rakamakUsersIp, getmailAccount,
+ getmailPassword, getmailSMTP, getMySQLColumnId, getmailSenderName,
+ getMailSubject, getMailText, getMySQLlastlocWorld, defaultWorld,
+ getPhpbbPrefix, getWordPressPrefix, getMySQLColumnLogged,
+ spawnPriority, crazyloginFileName, getPassRegex;
+
+ public static int getWarnMessageInterval, getSessionTimeout,
+ getRegistrationTimeout, getMaxNickLength, getMinNickLength,
+ getPasswordMinLen, getMovementRadius, getmaxRegPerIp,
+ getNonActivatedGroup, passwordMaxLength, getRecoveryPassLength,
+ getMailPort, maxLoginTry, captchaLength, saltLength,
+ getmaxRegPerEmail, bCryptLog2Rounds, getPhpbbGroup,
+ antiBotSensibility, antiBotDuration, delayRecall, getMaxLoginPerIp,
+ getMaxJoinPerIp;
protected static YamlConfiguration configFile;
- public Settings(AuthMe plugin) {
- this.file = new File(plugin.getDataFolder(),"config.yml");
+ public Settings(AuthMe plugin) {
+ this.file = new File(plugin.getDataFolder(), "config.yml");
this.plugin = plugin;
- if(exists()) {
+ if (exists()) {
load();
- }
- else {
+ } else {
loadDefaults(file.getName());
load();
}
configFile = (YamlConfiguration) plugin.getConfig();
}
-@SuppressWarnings("unchecked")
-public void loadConfigOptions() {
+ @SuppressWarnings("unchecked")
+ public void loadConfigOptions() {
plugin.getLogger().info("Loading Configuration File...");
mergeConfig();
- messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
- isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
- isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
- isRegistrationEnabled = configFile.getBoolean("settings.registration.enabled", true);
- isTeleportToSpawnEnabled = configFile.getBoolean("settings.restrictions.teleportUnAuthedToSpawn",false);
- getWarnMessageInterval = configFile.getInt("settings.registration.messageInterval",5);
- isSessionsEnabled = configFile.getBoolean("settings.sessions.enabled",false);
- getSessionTimeout = configFile.getInt("settings.sessions.timeout",10);
- getRegistrationTimeout = configFile.getInt("settings.restrictions.timeout",30);
- isChatAllowed = configFile.getBoolean("settings.restrictions.allowChat",false);
- getMaxNickLength = configFile.getInt("settings.restrictions.maxNicknameLength",20);
- getMinNickLength = configFile.getInt("settings.restrictions.minNicknameLength",3);
- getPasswordMinLen = configFile.getInt("settings.security.minPasswordLength",4);
- getNickRegex = configFile.getString("settings.restrictions.allowedNicknameCharacters","[a-zA-Z0-9_?]*");
- isAllowRestrictedIp = configFile.getBoolean("settings.restrictions.AllowRestrictedUser",false);
- getRestrictedIp = configFile.getStringList("settings.restrictions.AllowedRestrictedUser");
- isMovementAllowed = configFile.getBoolean("settings.restrictions.allowMovement",false);
- getMovementRadius = configFile.getInt("settings.restrictions.allowedMovementRadius",100);
- getJoinPermissions = configFile.getStringList("GroupOptions.Permissions.PermissionsOnJoin");
- isKickOnWrongPasswordEnabled = configFile.getBoolean("settings.restrictions.kickOnWrongPassword",false);
- isKickNonRegisteredEnabled = configFile.getBoolean("settings.restrictions.kickNonRegistered",false);
- isForceSingleSessionEnabled = configFile.getBoolean("settings.restrictions.ForceSingleSession",true);
- isForceSpawnLocOnJoinEnabled = configFile.getBoolean("settings.restrictions.ForceSpawnLocOnJoinEnabled",false);
- isSaveQuitLocationEnabled = configFile.getBoolean("settings.restrictions.SaveQuitLocation", false);
- isForceSurvivalModeEnabled = configFile.getBoolean("settings.GameMode.ForceSurvivalMode", false);
- isResetInventoryIfCreative = configFile.getBoolean("settings.GameMode.ResetInventoryIfCreative",false);
- getmaxRegPerIp = configFile.getInt("settings.restrictions.maxRegPerIp",1);
+ messagesLanguage = checkLang(configFile.getString(
+ "settings.messagesLanguage", "en"));
+ isPermissionCheckEnabled = configFile.getBoolean(
+ "permission.EnablePermissionCheck", false);
+ isForcedRegistrationEnabled = configFile.getBoolean(
+ "settings.registration.force", true);
+ isRegistrationEnabled = configFile.getBoolean(
+ "settings.registration.enabled", true);
+ isTeleportToSpawnEnabled = configFile.getBoolean(
+ "settings.restrictions.teleportUnAuthedToSpawn", false);
+ getWarnMessageInterval = configFile.getInt(
+ "settings.registration.messageInterval", 5);
+ isSessionsEnabled = configFile.getBoolean("settings.sessions.enabled",
+ false);
+ getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
+ getRegistrationTimeout = configFile.getInt(
+ "settings.restrictions.timeout", 30);
+ isChatAllowed = configFile.getBoolean(
+ "settings.restrictions.allowChat", false);
+ getMaxNickLength = configFile.getInt(
+ "settings.restrictions.maxNicknameLength", 20);
+ getMinNickLength = configFile.getInt(
+ "settings.restrictions.minNicknameLength", 3);
+ getPasswordMinLen = configFile.getInt(
+ "settings.security.minPasswordLength", 4);
+ getNickRegex = configFile.getString(
+ "settings.restrictions.allowedNicknameCharacters",
+ "[a-zA-Z0-9_?]*");
+ isAllowRestrictedIp = configFile.getBoolean(
+ "settings.restrictions.AllowRestrictedUser", false);
+ getRestrictedIp = configFile
+ .getStringList("settings.restrictions.AllowedRestrictedUser");
+ isMovementAllowed = configFile.getBoolean(
+ "settings.restrictions.allowMovement", false);
+ getMovementRadius = configFile.getInt(
+ "settings.restrictions.allowedMovementRadius", 100);
+ getJoinPermissions = configFile
+ .getStringList("GroupOptions.Permissions.PermissionsOnJoin");
+ isKickOnWrongPasswordEnabled = configFile.getBoolean(
+ "settings.restrictions.kickOnWrongPassword", false);
+ isKickNonRegisteredEnabled = configFile.getBoolean(
+ "settings.restrictions.kickNonRegistered", false);
+ isForceSingleSessionEnabled = configFile.getBoolean(
+ "settings.restrictions.ForceSingleSession", true);
+ isForceSpawnLocOnJoinEnabled = configFile.getBoolean(
+ "settings.restrictions.ForceSpawnLocOnJoinEnabled", false);
+ isSaveQuitLocationEnabled = configFile.getBoolean(
+ "settings.restrictions.SaveQuitLocation", false);
+ isForceSurvivalModeEnabled = configFile.getBoolean(
+ "settings.GameMode.ForceSurvivalMode", false);
+ isResetInventoryIfCreative = configFile.getBoolean(
+ "settings.GameMode.ResetInventoryIfCreative", false);
+ getmaxRegPerIp = configFile.getInt("settings.restrictions.maxRegPerIp",
+ 1);
getPasswordHash = getPasswordHash();
- getUnloggedinGroup = configFile.getString("settings.security.unLoggedinGroup","unLoggedInGroup");
+ getUnloggedinGroup = configFile.getString(
+ "settings.security.unLoggedinGroup", "unLoggedInGroup");
getDataSource = getDataSource();
- isCachingEnabled = configFile.getBoolean("DataSource.caching",true);
- getMySQLHost = configFile.getString("DataSource.mySQLHost","127.0.0.1");
- getMySQLPort = configFile.getString("DataSource.mySQLPort","3306");
- getMySQLUsername = configFile.getString("DataSource.mySQLUsername","authme");
- getMySQLPassword = configFile.getString("DataSource.mySQLPassword","12345");
- getMySQLDatabase = configFile.getString("DataSource.mySQLDatabase","authme");
- getMySQLTablename = configFile.getString("DataSource.mySQLTablename","authme");
- getMySQLColumnEmail = configFile.getString("DataSource.mySQLColumnEmail","email");
- getMySQLColumnName = configFile.getString("DataSource.mySQLColumnName","username");
- getMySQLColumnPassword = configFile.getString("DataSource.mySQLColumnPassword","password");
- getMySQLColumnIp = configFile.getString("DataSource.mySQLColumnIp","ip");
- getMySQLColumnLastLogin = configFile.getString("DataSource.mySQLColumnLastLogin","lastlogin");
- getMySQLColumnSalt = configFile.getString("ExternalBoardOptions.mySQLColumnSalt");
- getMySQLColumnGroup = configFile.getString("ExternalBoardOptions.mySQLColumnGroup","");
- getMySQLlastlocX = configFile.getString("DataSource.mySQLlastlocX","x");
- getMySQLlastlocY = configFile.getString("DataSource.mySQLlastlocY","y");
- getMySQLlastlocZ = configFile.getString("DataSource.mySQLlastlocZ","z");
- getMySQLlastlocWorld = configFile.getString("DataSource.mySQLlastlocWorld", "world");
- getNonActivatedGroup = configFile.getInt("ExternalBoardOptions.nonActivedUserGroup", -1);
- unRegisteredGroup = configFile.getString("GroupOptions.UnregisteredPlayerGroup","");
- getUnrestrictedName = configFile.getStringList("settings.unrestrictions.UnrestrictedName");
- getRegisteredGroup = configFile.getString("GroupOptions.RegisteredPlayerGroup","");
- getEnablePasswordVerifier = configFile.getBoolean("settings.restrictions.enablePasswordVerifier" , true);
- protectInventoryBeforeLogInEnabled = configFile.getBoolean("settings.restrictions.ProtectInventoryBeforeLogIn", true);
- passwordMaxLength = configFile.getInt("settings.security.passwordMaxLength", 20);
- isBackupActivated = configFile.getBoolean("BackupSystem.ActivateBackup",false);
- isBackupOnStart = configFile.getBoolean("BackupSystem.OnServerStart",false);
- isBackupOnStop = configFile.getBoolean("BackupSystem.OnServeStop",false);
- backupWindowsPath = configFile.getString("BackupSystem.MysqlWindowsPath", "C:\\Program Files\\MySQL\\MySQL Server 5.1\\");
- enablePasspartu = configFile.getBoolean("Passpartu.enablePasspartu",false);
- isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer", true);
- reloadSupport = configFile.getBoolean("Security.ReloadCommand.useReloadCommandSupport", true);
- allowCommands = (List) configFile.getList("settings.restrictions.allowCommands");
+ isCachingEnabled = configFile.getBoolean("DataSource.caching", true);
+ getMySQLHost = configFile
+ .getString("DataSource.mySQLHost", "127.0.0.1");
+ getMySQLPort = configFile.getString("DataSource.mySQLPort", "3306");
+ getMySQLUsername = configFile.getString("DataSource.mySQLUsername",
+ "authme");
+ getMySQLPassword = configFile.getString("DataSource.mySQLPassword",
+ "12345");
+ getMySQLDatabase = configFile.getString("DataSource.mySQLDatabase",
+ "authme");
+ getMySQLTablename = configFile.getString("DataSource.mySQLTablename",
+ "authme");
+ getMySQLColumnEmail = configFile.getString(
+ "DataSource.mySQLColumnEmail", "email");
+ getMySQLColumnName = configFile.getString("DataSource.mySQLColumnName",
+ "username");
+ getMySQLColumnPassword = configFile.getString(
+ "DataSource.mySQLColumnPassword", "password");
+ getMySQLColumnIp = configFile.getString("DataSource.mySQLColumnIp",
+ "ip");
+ getMySQLColumnLastLogin = configFile.getString(
+ "DataSource.mySQLColumnLastLogin", "lastlogin");
+ getMySQLColumnSalt = configFile
+ .getString("ExternalBoardOptions.mySQLColumnSalt");
+ getMySQLColumnGroup = configFile.getString(
+ "ExternalBoardOptions.mySQLColumnGroup", "");
+ getMySQLlastlocX = configFile
+ .getString("DataSource.mySQLlastlocX", "x");
+ getMySQLlastlocY = configFile
+ .getString("DataSource.mySQLlastlocY", "y");
+ getMySQLlastlocZ = configFile
+ .getString("DataSource.mySQLlastlocZ", "z");
+ getMySQLlastlocWorld = configFile.getString(
+ "DataSource.mySQLlastlocWorld", "world");
+ getNonActivatedGroup = configFile.getInt(
+ "ExternalBoardOptions.nonActivedUserGroup", -1);
+ unRegisteredGroup = configFile.getString(
+ "GroupOptions.UnregisteredPlayerGroup", "");
+ getUnrestrictedName = configFile
+ .getStringList("settings.unrestrictions.UnrestrictedName");
+ getRegisteredGroup = configFile.getString(
+ "GroupOptions.RegisteredPlayerGroup", "");
+ getEnablePasswordVerifier = configFile.getBoolean(
+ "settings.restrictions.enablePasswordVerifier", true);
+ protectInventoryBeforeLogInEnabled = configFile.getBoolean(
+ "settings.restrictions.ProtectInventoryBeforeLogIn", true);
+ passwordMaxLength = configFile.getInt(
+ "settings.security.passwordMaxLength", 20);
+ isBackupActivated = configFile.getBoolean(
+ "BackupSystem.ActivateBackup", false);
+ isBackupOnStart = configFile.getBoolean("BackupSystem.OnServerStart",
+ false);
+ isBackupOnStop = configFile.getBoolean("BackupSystem.OnServeStop",
+ false);
+ backupWindowsPath = configFile.getString(
+ "BackupSystem.MysqlWindowsPath",
+ "C:\\Program Files\\MySQL\\MySQL Server 5.1\\");
+ enablePasspartu = configFile.getBoolean("Passpartu.enablePasspartu",
+ false);
+ isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer",
+ true);
+ reloadSupport = configFile.getBoolean(
+ "Security.ReloadCommand.useReloadCommandSupport", true);
+ allowCommands = (List) configFile
+ .getList("settings.restrictions.allowCommands");
if (configFile.contains("allowCommands")) {
- if (!allowCommands.contains("/login"))
- allowCommands.add("/login");
- if (!allowCommands.contains("/register"))
- allowCommands.add("/register");
- if (!allowCommands.contains("/l"))
- allowCommands.add("/l");
- if (!allowCommands.contains("/reg"))
- allowCommands.add("/reg");
- if (!allowCommands.contains("/passpartu"))
- allowCommands.add("/passpartu");
- if (!allowCommands.contains("/email"))
- allowCommands.add("/email");
- if(!allowCommands.contains("/captcha"))
- allowCommands.add("/captcha");
+ if (!allowCommands.contains("/login")) allowCommands.add("/login");
+ if (!allowCommands.contains("/register")) allowCommands
+ .add("/register");
+ if (!allowCommands.contains("/l")) allowCommands.add("/l");
+ if (!allowCommands.contains("/reg")) allowCommands.add("/reg");
+ if (!allowCommands.contains("/passpartu")) allowCommands
+ .add("/passpartu");
+ if (!allowCommands.contains("/email")) allowCommands.add("/email");
+ if (!allowCommands.contains("/captcha")) allowCommands
+ .add("/captcha");
}
- rakamakUsers = configFile.getString("Converter.Rakamak.fileName", "users.rak");
- rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName", "UsersIp.rak");
+ rakamakUsers = configFile.getString("Converter.Rakamak.fileName",
+ "users.rak");
+ rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName",
+ "UsersIp.rak");
rakamakUseIp = configFile.getBoolean("Converter.Rakamak.useIp", false);
- noConsoleSpam = configFile.getBoolean("Security.console.noConsoleSpam", false);
- removePassword = configFile.getBoolean("Security.console.removePassword", true);
+ noConsoleSpam = configFile.getBoolean("Security.console.noConsoleSpam",
+ false);
+ removePassword = configFile.getBoolean(
+ "Security.console.removePassword", true);
getmailAccount = configFile.getString("Email.mailAccount", "");
getmailPassword = configFile.getString("Email.mailPassword", "");
getmailSMTP = configFile.getString("Email.mailSMTP", "smtp.gmail.com");
getMailPort = configFile.getInt("Email.mailPort", 465);
- getRecoveryPassLength = configFile.getInt("Email.RecoveryPasswordLength", 8);
- getMySQLOtherUsernameColumn = (List) configFile.getList("ExternalBoardOptions.mySQLOtherUsernameColumns", new ArrayList());
- displayOtherAccounts = configFile.getBoolean("settings.restrictions.displayOtherAccounts", true);
- getMySQLColumnId = configFile.getString("DataSource.mySQLColumnId", "id");
+ getRecoveryPassLength = configFile.getInt(
+ "Email.RecoveryPasswordLength", 8);
+ getMySQLOtherUsernameColumn = (List) configFile.getList(
+ "ExternalBoardOptions.mySQLOtherUsernameColumns",
+ new ArrayList());
+ displayOtherAccounts = configFile.getBoolean(
+ "settings.restrictions.displayOtherAccounts", true);
+ getMySQLColumnId = configFile.getString("DataSource.mySQLColumnId",
+ "id");
getmailSenderName = configFile.getString("Email.mailSenderName", "");
- useCaptcha = configFile.getBoolean("Security.captcha.useCaptcha", false);
+ useCaptcha = configFile
+ .getBoolean("Security.captcha.useCaptcha", false);
maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5);
captchaLength = configFile.getInt("Security.captcha.captchaLength", 5);
- getMailSubject = configFile.getString("Email.mailSubject", "Your new AuthMe Password");
- getMailText = configFile.getString("Email.mailText", "Dear ,
This is your new AuthMe password for the server
:
Do not forget to change password after login!
/changepassword newPassword");
- emailRegistration = configFile.getBoolean("settings.registration.enableEmailRegistrationSystem", false);
- saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8);
+ getMailSubject = configFile.getString("Email.mailSubject",
+ "Your new AuthMe Password");
+ getMailText = configFile
+ .getString(
+ "Email.mailText",
+ "Dear ,
This is your new AuthMe password for the server
:
Do not forget to change password after login!
/changepassword newPassword");
+ emailRegistration = configFile.getBoolean(
+ "settings.registration.enableEmailRegistrationSystem", false);
+ saltLength = configFile.getInt("settings.security.doubleMD5SaltLength",
+ 8);
getmaxRegPerEmail = configFile.getInt("Email.maxRegPerEmail", 1);
multiverse = configFile.getBoolean("Hooks.multiverse", true);
chestshop = configFile.getBoolean("Hooks.chestshop", true);
notifications = configFile.getBoolean("Hooks.notifications", true);
bungee = configFile.getBoolean("Hooks.bungeecord", false);
- getForcedWorlds = (List) configFile.getList("settings.restrictions.ForceSpawnOnTheseWorlds", new ArrayList());
- banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
- doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
- sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
- useLogging = configFile.getBoolean("Security.console.logConsole", false);
- disableSocialSpy = configFile.getBoolean("Hooks.disableSocialSpy", true);
- bCryptLog2Rounds = configFile.getInt("ExternalBoardOptions.bCryptLog2Round", 10);
- forceOnlyAfterLogin = configFile.getBoolean("settings.GameMode.ForceOnlyAfterLogin", false);
- useEssentialsMotd = configFile.getBoolean("Hooks.useEssentialsMotd", false);
+ getForcedWorlds = (List) configFile.getList(
+ "settings.restrictions.ForceSpawnOnTheseWorlds",
+ new ArrayList());
+ banUnsafeIp = configFile.getBoolean(
+ "settings.restrictions.banUnsafedIP", false);
+ doubleEmailCheck = configFile.getBoolean(
+ "settings.registration.doubleEmailCheck", false);
+ sessionExpireOnIpChange = configFile.getBoolean(
+ "settings.sessions.sessionExpireOnIpChange", false);
+ useLogging = configFile
+ .getBoolean("Security.console.logConsole", false);
+ disableSocialSpy = configFile
+ .getBoolean("Hooks.disableSocialSpy", true);
+ bCryptLog2Rounds = configFile.getInt(
+ "ExternalBoardOptions.bCryptLog2Round", 10);
+ forceOnlyAfterLogin = configFile.getBoolean(
+ "settings.GameMode.ForceOnlyAfterLogin", false);
+ useEssentialsMotd = configFile.getBoolean("Hooks.useEssentialsMotd",
+ false);
usePurge = configFile.getBoolean("Purge.useAutoPurge", false);
purgeDelay = configFile.getInt("Purge.daysBeforeRemovePlayer", 60);
purgePlayerDat = configFile.getBoolean("Purge.removePlayerDat", false);
- purgeEssentialsFile = configFile.getBoolean("Purge.removeEssentialsFile", false);
+ purgeEssentialsFile = configFile.getBoolean(
+ "Purge.removeEssentialsFile", false);
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
- getPhpbbPrefix = configFile.getString("ExternalBoardOptions.phpbbTablePrefix", "phpbb_");
- getPhpbbGroup = configFile.getInt("ExternalBoardOptions.phpbbActivatedGroupId", 2);
- supportOldPassword = configFile.getBoolean("settings.security.supportOldPasswordHash", false);
- getWordPressPrefix = configFile.getString("ExternalBoardOptions.wordpressTablePrefix", "wp_");
- purgeLimitedCreative = configFile.getBoolean("Purge.removeLimitedCreativesInventories", false);
- purgeAntiXray = configFile.getBoolean("Purge.removeAntiXRayFile", false);
- //purgePermissions = configFile.getBoolean("Purge.removePermissions", false);
- enableProtection = configFile.getBoolean("Protection.enableProtection", false);
- countries = (List) configFile.getList("Protection.countries", new ArrayList());
- enableAntiBot = configFile.getBoolean("Protection.enableAntiBot", false);
- antiBotSensibility = configFile.getInt("Protection.antiBotSensibility", 5);
+ getPhpbbPrefix = configFile.getString(
+ "ExternalBoardOptions.phpbbTablePrefix", "phpbb_");
+ getPhpbbGroup = configFile.getInt(
+ "ExternalBoardOptions.phpbbActivatedGroupId", 2);
+ supportOldPassword = configFile.getBoolean(
+ "settings.security.supportOldPasswordHash", false);
+ getWordPressPrefix = configFile.getString(
+ "ExternalBoardOptions.wordpressTablePrefix", "wp_");
+ purgeLimitedCreative = configFile.getBoolean(
+ "Purge.removeLimitedCreativesInventories", false);
+ purgeAntiXray = configFile
+ .getBoolean("Purge.removeAntiXRayFile", false);
+ // purgePermissions = configFile.getBoolean("Purge.removePermissions",
+ // false);
+ enableProtection = configFile.getBoolean("Protection.enableProtection",
+ false);
+ countries = (List) configFile.getList("Protection.countries",
+ new ArrayList());
+ enableAntiBot = configFile
+ .getBoolean("Protection.enableAntiBot", false);
+ antiBotSensibility = configFile.getInt("Protection.antiBotSensibility",
+ 5);
antiBotDuration = configFile.getInt("Protection.antiBotDuration", 10);
- forceCommands = (List) configFile.getList("settings.forceCommands", new ArrayList());
- forceCommandsAsConsole = (List) configFile.getList("settings.forceCommandsAsConsole", new ArrayList());
+ forceCommands = (List) configFile.getList(
+ "settings.forceCommands", new ArrayList());
+ forceCommandsAsConsole = (List) configFile.getList(
+ "settings.forceCommandsAsConsole", new ArrayList());
recallEmail = configFile.getBoolean("Email.recallPlayers", false);
delayRecall = configFile.getInt("Email.delayRecall", 5);
- useWelcomeMessage = configFile.getBoolean("settings.useWelcomeMessage", true);
- unsafePasswords = (List) configFile.getList("settings.security.unsafePasswords", new ArrayList());
- countriesBlacklist = (List) configFile.getList("Protection.countriesBlacklist", new ArrayList());
- broadcastWelcomeMessage = configFile.getBoolean("settings.broadcastWelcomeMessage", false);
- forceRegKick = configFile.getBoolean("settings.registration.forceKickAfterRegister", false);
- forceRegLogin = configFile.getBoolean("settings.registration.forceLoginAfterRegister", false);
- getMySQLColumnLogged = configFile.getString("DataSource.mySQLColumnLogged","isLogged");
- spawnPriority = configFile.getString("settings.restrictions.spawnPriority", "authme,essentials,multiverse,default");
- getMaxLoginPerIp = configFile.getInt("settings.restrictions.maxLoginPerIp", 0);
- getMaxJoinPerIp = configFile.getInt("settings.restrictions.maxJoinPerIp", 0);
- checkVeryGames = configFile.getBoolean("VeryGames.enableIpCheck", false);
- delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage", false);
- noTeleport = configFile.getBoolean("settings.restrictions.noTeleport", false);
- crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db");
- getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters","[a-zA-Z0-9_?!@+&-]*");
- applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false);
+ useWelcomeMessage = configFile.getBoolean("settings.useWelcomeMessage",
+ true);
+ unsafePasswords = (List) configFile.getList(
+ "settings.security.unsafePasswords", new ArrayList());
+ countriesBlacklist = (List) configFile.getList(
+ "Protection.countriesBlacklist", new ArrayList());
+ broadcastWelcomeMessage = configFile.getBoolean(
+ "settings.broadcastWelcomeMessage", false);
+ forceRegKick = configFile.getBoolean(
+ "settings.registration.forceKickAfterRegister", false);
+ forceRegLogin = configFile.getBoolean(
+ "settings.registration.forceLoginAfterRegister", false);
+ getMySQLColumnLogged = configFile.getString(
+ "DataSource.mySQLColumnLogged", "isLogged");
+ spawnPriority = configFile.getString(
+ "settings.restrictions.spawnPriority",
+ "authme,essentials,multiverse,default");
+ getMaxLoginPerIp = configFile.getInt(
+ "settings.restrictions.maxLoginPerIp", 0);
+ getMaxJoinPerIp = configFile.getInt(
+ "settings.restrictions.maxJoinPerIp", 0);
+ checkVeryGames = configFile
+ .getBoolean("VeryGames.enableIpCheck", false);
+ delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage",
+ false);
+ noTeleport = configFile.getBoolean("settings.restrictions.noTeleport",
+ false);
+ crazyloginFileName = configFile.getString(
+ "Converter.CrazyLogin.fileName", "accounts.db");
+ getPassRegex = configFile.getString(
+ "settings.restrictions.allowedPasswordCharacters",
+ "[a-zA-Z0-9_?!@+&-]*");
+ applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect",
+ false);
emailBlacklist = configFile.getStringList("Email.emailBlacklisted");
// Load the welcome message
getWelcomeMessage(plugin);
saveDefaults();
- }
+ }
-@SuppressWarnings("unchecked")
-public static void reloadConfigOptions(YamlConfiguration newConfig) {
- configFile = newConfig;
+ @SuppressWarnings("unchecked")
+ public static void reloadConfigOptions(YamlConfiguration newConfig) {
+ configFile = newConfig;
- messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
- isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
- isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
- isRegistrationEnabled = configFile.getBoolean("settings.registration.enabled", true);
- isTeleportToSpawnEnabled = configFile.getBoolean("settings.restrictions.teleportUnAuthedToSpawn",false);
- getWarnMessageInterval = configFile.getInt("settings.registration.messageInterval",5);
- isSessionsEnabled = configFile.getBoolean("settings.sessions.enabled",false);
- getSessionTimeout = configFile.getInt("settings.sessions.timeout",10);
- getRegistrationTimeout = configFile.getInt("settings.restrictions.timeout",30);
- isChatAllowed = configFile.getBoolean("settings.restrictions.allowChat",false);
- getMaxNickLength = configFile.getInt("settings.restrictions.maxNicknameLength",20);
- getMinNickLength = configFile.getInt("settings.restrictions.minNicknameLength",3);
- getPasswordMinLen = configFile.getInt("settings.security.minPasswordLength",4);
- getNickRegex = configFile.getString("settings.restrictions.allowedNicknameCharacters","[a-zA-Z0-9_?]*");
- isAllowRestrictedIp = configFile.getBoolean("settings.restrictions.AllowRestrictedUser",false);
- getRestrictedIp = configFile.getStringList("settings.restrictions.AllowedRestrictedUser");
- isMovementAllowed = configFile.getBoolean("settings.restrictions.allowMovement",false);
- getMovementRadius = configFile.getInt("settings.restrictions.allowedMovementRadius",100);
- getJoinPermissions = configFile.getStringList("GroupOptions.Permissions.PermissionsOnJoin");
- isKickOnWrongPasswordEnabled = configFile.getBoolean("settings.restrictions.kickOnWrongPassword",false);
- isKickNonRegisteredEnabled = configFile.getBoolean("settings.restrictions.kickNonRegistered",false);
- isForceSingleSessionEnabled = configFile.getBoolean("settings.restrictions.ForceSingleSession",true);
- isForceSpawnLocOnJoinEnabled = configFile.getBoolean("settings.restrictions.ForceSpawnLocOnJoinEnabled",false);
- isSaveQuitLocationEnabled = configFile.getBoolean("settings.restrictions.SaveQuitLocation",false);
- isForceSurvivalModeEnabled = configFile.getBoolean("settings.GameMode.ForceSurvivalMode",false);
- isResetInventoryIfCreative = configFile.getBoolean("settings.GameMode.ResetInventoryIfCreative",false);
- getmaxRegPerIp = configFile.getInt("settings.restrictions.maxRegPerIp",1);
+ messagesLanguage = checkLang(configFile.getString(
+ "settings.messagesLanguage", "en"));
+ isPermissionCheckEnabled = configFile.getBoolean(
+ "permission.EnablePermissionCheck", false);
+ isForcedRegistrationEnabled = configFile.getBoolean(
+ "settings.registration.force", true);
+ isRegistrationEnabled = configFile.getBoolean(
+ "settings.registration.enabled", true);
+ isTeleportToSpawnEnabled = configFile.getBoolean(
+ "settings.restrictions.teleportUnAuthedToSpawn", false);
+ getWarnMessageInterval = configFile.getInt(
+ "settings.registration.messageInterval", 5);
+ isSessionsEnabled = configFile.getBoolean("settings.sessions.enabled",
+ false);
+ getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
+ getRegistrationTimeout = configFile.getInt(
+ "settings.restrictions.timeout", 30);
+ isChatAllowed = configFile.getBoolean(
+ "settings.restrictions.allowChat", false);
+ getMaxNickLength = configFile.getInt(
+ "settings.restrictions.maxNicknameLength", 20);
+ getMinNickLength = configFile.getInt(
+ "settings.restrictions.minNicknameLength", 3);
+ getPasswordMinLen = configFile.getInt(
+ "settings.security.minPasswordLength", 4);
+ getNickRegex = configFile.getString(
+ "settings.restrictions.allowedNicknameCharacters",
+ "[a-zA-Z0-9_?]*");
+ isAllowRestrictedIp = configFile.getBoolean(
+ "settings.restrictions.AllowRestrictedUser", false);
+ getRestrictedIp = configFile
+ .getStringList("settings.restrictions.AllowedRestrictedUser");
+ isMovementAllowed = configFile.getBoolean(
+ "settings.restrictions.allowMovement", false);
+ getMovementRadius = configFile.getInt(
+ "settings.restrictions.allowedMovementRadius", 100);
+ getJoinPermissions = configFile
+ .getStringList("GroupOptions.Permissions.PermissionsOnJoin");
+ isKickOnWrongPasswordEnabled = configFile.getBoolean(
+ "settings.restrictions.kickOnWrongPassword", false);
+ isKickNonRegisteredEnabled = configFile.getBoolean(
+ "settings.restrictions.kickNonRegistered", false);
+ isForceSingleSessionEnabled = configFile.getBoolean(
+ "settings.restrictions.ForceSingleSession", true);
+ isForceSpawnLocOnJoinEnabled = configFile.getBoolean(
+ "settings.restrictions.ForceSpawnLocOnJoinEnabled", false);
+ isSaveQuitLocationEnabled = configFile.getBoolean(
+ "settings.restrictions.SaveQuitLocation", false);
+ isForceSurvivalModeEnabled = configFile.getBoolean(
+ "settings.GameMode.ForceSurvivalMode", false);
+ isResetInventoryIfCreative = configFile.getBoolean(
+ "settings.GameMode.ResetInventoryIfCreative", false);
+ getmaxRegPerIp = configFile.getInt("settings.restrictions.maxRegPerIp",
+ 1);
getPasswordHash = getPasswordHash();
- getUnloggedinGroup = configFile.getString("settings.security.unLoggedinGroup","unLoggedInGroup");
+ getUnloggedinGroup = configFile.getString(
+ "settings.security.unLoggedinGroup", "unLoggedInGroup");
getDataSource = getDataSource();
- isCachingEnabled = configFile.getBoolean("DataSource.caching",true);
- getMySQLHost = configFile.getString("DataSource.mySQLHost","127.0.0.1");
- getMySQLPort = configFile.getString("DataSource.mySQLPort","3306");
- getMySQLUsername = configFile.getString("DataSource.mySQLUsername","authme");
- getMySQLPassword = configFile.getString("DataSource.mySQLPassword","12345");
- getMySQLDatabase = configFile.getString("DataSource.mySQLDatabase","authme");
- getMySQLTablename = configFile.getString("DataSource.mySQLTablename","authme");
- getMySQLColumnEmail = configFile.getString("DataSource.mySQLColumnEmail","email");
- getMySQLColumnName = configFile.getString("DataSource.mySQLColumnName","username");
- getMySQLColumnPassword = configFile.getString("DataSource.mySQLColumnPassword","password");
- getMySQLColumnIp = configFile.getString("DataSource.mySQLColumnIp","ip");
- getMySQLColumnLastLogin = configFile.getString("DataSource.mySQLColumnLastLogin","lastlogin");
- getMySQLlastlocX = configFile.getString("DataSource.mySQLlastlocX","x");
- getMySQLlastlocY = configFile.getString("DataSource.mySQLlastlocY","y");
- getMySQLlastlocZ = configFile.getString("DataSource.mySQLlastlocZ","z");
- getMySQLlastlocWorld = configFile.getString("DataSource.mySQLlastlocWorld", "world");
- getMySQLColumnSalt = configFile.getString("ExternalBoardOptions.mySQLColumnSalt","");
- getMySQLColumnGroup = configFile.getString("ExternalBoardOptions.mySQLColumnGroup","");
- getNonActivatedGroup = configFile.getInt("ExternalBoardOptions.nonActivedUserGroup", -1);
- unRegisteredGroup = configFile.getString("GroupOptions.UnregisteredPlayerGroup","");
- getUnrestrictedName = configFile.getStringList("settings.unrestrictions.UnrestrictedName");
- getRegisteredGroup = configFile.getString("GroupOptions.RegisteredPlayerGroup","");
- getEnablePasswordVerifier = configFile.getBoolean("settings.restrictions.enablePasswordVerifier" , true);
- protectInventoryBeforeLogInEnabled = configFile.getBoolean("settings.restrictions.ProtectInventoryBeforeLogIn", true);
- passwordMaxLength = configFile.getInt("settings.security.passwordMaxLength", 20);
- isBackupActivated = configFile.getBoolean("BackupSystem.ActivateBackup",false);
- isBackupOnStart = configFile.getBoolean("BackupSystem.OnServerStart",false);
- isBackupOnStop = configFile.getBoolean("BackupSystem.OnServeStop",false);
- backupWindowsPath = configFile.getString("BackupSystem.MysqlWindowsPath", "C:\\Program Files\\MySQL\\MySQL Server 5.1\\");
- enablePasspartu = configFile.getBoolean("Passpartu.enablePasspartu",false);
- isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer", true);
- reloadSupport = configFile.getBoolean("Security.ReloadCommand.useReloadCommandSupport", true);
- allowCommands = (List) configFile.getList("settings.restrictions.allowCommands");
+ isCachingEnabled = configFile.getBoolean("DataSource.caching", true);
+ getMySQLHost = configFile
+ .getString("DataSource.mySQLHost", "127.0.0.1");
+ getMySQLPort = configFile.getString("DataSource.mySQLPort", "3306");
+ getMySQLUsername = configFile.getString("DataSource.mySQLUsername",
+ "authme");
+ getMySQLPassword = configFile.getString("DataSource.mySQLPassword",
+ "12345");
+ getMySQLDatabase = configFile.getString("DataSource.mySQLDatabase",
+ "authme");
+ getMySQLTablename = configFile.getString("DataSource.mySQLTablename",
+ "authme");
+ getMySQLColumnEmail = configFile.getString(
+ "DataSource.mySQLColumnEmail", "email");
+ getMySQLColumnName = configFile.getString("DataSource.mySQLColumnName",
+ "username");
+ getMySQLColumnPassword = configFile.getString(
+ "DataSource.mySQLColumnPassword", "password");
+ getMySQLColumnIp = configFile.getString("DataSource.mySQLColumnIp",
+ "ip");
+ getMySQLColumnLastLogin = configFile.getString(
+ "DataSource.mySQLColumnLastLogin", "lastlogin");
+ getMySQLlastlocX = configFile
+ .getString("DataSource.mySQLlastlocX", "x");
+ getMySQLlastlocY = configFile
+ .getString("DataSource.mySQLlastlocY", "y");
+ getMySQLlastlocZ = configFile
+ .getString("DataSource.mySQLlastlocZ", "z");
+ getMySQLlastlocWorld = configFile.getString(
+ "DataSource.mySQLlastlocWorld", "world");
+ getMySQLColumnSalt = configFile.getString(
+ "ExternalBoardOptions.mySQLColumnSalt", "");
+ getMySQLColumnGroup = configFile.getString(
+ "ExternalBoardOptions.mySQLColumnGroup", "");
+ getNonActivatedGroup = configFile.getInt(
+ "ExternalBoardOptions.nonActivedUserGroup", -1);
+ unRegisteredGroup = configFile.getString(
+ "GroupOptions.UnregisteredPlayerGroup", "");
+ getUnrestrictedName = configFile
+ .getStringList("settings.unrestrictions.UnrestrictedName");
+ getRegisteredGroup = configFile.getString(
+ "GroupOptions.RegisteredPlayerGroup", "");
+ getEnablePasswordVerifier = configFile.getBoolean(
+ "settings.restrictions.enablePasswordVerifier", true);
+ protectInventoryBeforeLogInEnabled = configFile.getBoolean(
+ "settings.restrictions.ProtectInventoryBeforeLogIn", true);
+ passwordMaxLength = configFile.getInt(
+ "settings.security.passwordMaxLength", 20);
+ isBackupActivated = configFile.getBoolean(
+ "BackupSystem.ActivateBackup", false);
+ isBackupOnStart = configFile.getBoolean("BackupSystem.OnServerStart",
+ false);
+ isBackupOnStop = configFile.getBoolean("BackupSystem.OnServeStop",
+ false);
+ backupWindowsPath = configFile.getString(
+ "BackupSystem.MysqlWindowsPath",
+ "C:\\Program Files\\MySQL\\MySQL Server 5.1\\");
+ enablePasspartu = configFile.getBoolean("Passpartu.enablePasspartu",
+ false);
+ isStopEnabled = configFile.getBoolean("Security.SQLProblem.stopServer",
+ true);
+ reloadSupport = configFile.getBoolean(
+ "Security.ReloadCommand.useReloadCommandSupport", true);
+ allowCommands = (List) configFile
+ .getList("settings.restrictions.allowCommands");
if (configFile.contains("allowCommands")) {
- if (!allowCommands.contains("/login"))
- allowCommands.add("/login");
- if (!allowCommands.contains("/register"))
- allowCommands.add("/register");
- if (!allowCommands.contains("/l"))
- allowCommands.add("/l");
- if (!allowCommands.contains("/reg"))
- allowCommands.add("/reg");
- if (!allowCommands.contains("/passpartu"))
- allowCommands.add("/passpartu");
- if (!allowCommands.contains("/email"))
- allowCommands.add("/email");
- if(!allowCommands.contains("/captcha"))
- allowCommands.add("/captcha");
+ if (!allowCommands.contains("/login")) allowCommands.add("/login");
+ if (!allowCommands.contains("/register")) allowCommands
+ .add("/register");
+ if (!allowCommands.contains("/l")) allowCommands.add("/l");
+ if (!allowCommands.contains("/reg")) allowCommands.add("/reg");
+ if (!allowCommands.contains("/passpartu")) allowCommands
+ .add("/passpartu");
+ if (!allowCommands.contains("/email")) allowCommands.add("/email");
+ if (!allowCommands.contains("/captcha")) allowCommands
+ .add("/captcha");
}
- rakamakUsers = configFile.getString("Converter.Rakamak.fileName", "users.rak");
- rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName", "UsersIp.rak");
+ rakamakUsers = configFile.getString("Converter.Rakamak.fileName",
+ "users.rak");
+ rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName",
+ "UsersIp.rak");
rakamakUseIp = configFile.getBoolean("Converter.Rakamak.useIp", false);
- noConsoleSpam = configFile.getBoolean("Security.console.noConsoleSpam", false);
- removePassword = configFile.getBoolean("Security.console.removePassword", true);
+ noConsoleSpam = configFile.getBoolean("Security.console.noConsoleSpam",
+ false);
+ removePassword = configFile.getBoolean(
+ "Security.console.removePassword", true);
getmailAccount = configFile.getString("Email.mailAccount", "");
getmailPassword = configFile.getString("Email.mailPassword", "");
getmailSMTP = configFile.getString("Email.mailSMTP", "smtp.gmail.com");
getMailPort = configFile.getInt("Email.mailPort", 465);
- getRecoveryPassLength = configFile.getInt("Email.RecoveryPasswordLength", 8);
- getMySQLOtherUsernameColumn = (List) configFile.getList("ExternalBoardOptions.mySQLOtherUsernameColumns", new ArrayList());
- displayOtherAccounts = configFile.getBoolean("settings.restrictions.displayOtherAccounts", true);
- getMySQLColumnId = configFile.getString("DataSource.mySQLColumnId", "id");
+ getRecoveryPassLength = configFile.getInt(
+ "Email.RecoveryPasswordLength", 8);
+ getMySQLOtherUsernameColumn = (List) configFile.getList(
+ "ExternalBoardOptions.mySQLOtherUsernameColumns",
+ new ArrayList());
+ displayOtherAccounts = configFile.getBoolean(
+ "settings.restrictions.displayOtherAccounts", true);
+ getMySQLColumnId = configFile.getString("DataSource.mySQLColumnId",
+ "id");
getmailSenderName = configFile.getString("Email.mailSenderName", "");
- useCaptcha = configFile.getBoolean("Security.captcha.useCaptcha", false);
+ useCaptcha = configFile
+ .getBoolean("Security.captcha.useCaptcha", false);
maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5);
captchaLength = configFile.getInt("Security.captcha.captchaLength", 5);
- getMailSubject = configFile.getString("Email.mailSubject", "Your new AuthMe Password");
- getMailText = configFile.getString("Email.mailText", "Dear ,
This is your new AuthMe password for the server
:
Do not forget to change password after login!
/changepassword newPassword");
- emailRegistration = configFile.getBoolean("settings.registration.enableEmailRegistrationSystem", false);
- saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8);
+ getMailSubject = configFile.getString("Email.mailSubject",
+ "Your new AuthMe Password");
+ getMailText = configFile
+ .getString(
+ "Email.mailText",
+ "Dear ,
This is your new AuthMe password for the server
:
Do not forget to change password after login!
/changepassword newPassword");
+ emailRegistration = configFile.getBoolean(
+ "settings.registration.enableEmailRegistrationSystem", false);
+ saltLength = configFile.getInt("settings.security.doubleMD5SaltLength",
+ 8);
getmaxRegPerEmail = configFile.getInt("Email.maxRegPerEmail", 1);
multiverse = configFile.getBoolean("Hooks.multiverse", true);
chestshop = configFile.getBoolean("Hooks.chestshop", true);
notifications = configFile.getBoolean("Hooks.notifications", true);
bungee = configFile.getBoolean("Hooks.bungeecord", false);
- getForcedWorlds = (List) configFile.getList("settings.restrictions.ForceSpawnOnTheseWorlds");
- banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
- doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
- sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
- useLogging = configFile.getBoolean("Security.console.logConsole", false);
- disableSocialSpy = configFile.getBoolean("Hooks.disableSocialSpy", true);
- bCryptLog2Rounds = configFile.getInt("ExternalBoardOptions.bCryptLog2Round", 10);
- forceOnlyAfterLogin = configFile.getBoolean("settings.GameMode.ForceOnlyAfterLogin", false);
- useEssentialsMotd = configFile.getBoolean("Hooks.useEssentialsMotd", false);
+ getForcedWorlds = (List) configFile
+ .getList("settings.restrictions.ForceSpawnOnTheseWorlds");
+ banUnsafeIp = configFile.getBoolean(
+ "settings.restrictions.banUnsafedIP", false);
+ doubleEmailCheck = configFile.getBoolean(
+ "settings.registration.doubleEmailCheck", false);
+ sessionExpireOnIpChange = configFile.getBoolean(
+ "settings.sessions.sessionExpireOnIpChange", false);
+ useLogging = configFile
+ .getBoolean("Security.console.logConsole", false);
+ disableSocialSpy = configFile
+ .getBoolean("Hooks.disableSocialSpy", true);
+ bCryptLog2Rounds = configFile.getInt(
+ "ExternalBoardOptions.bCryptLog2Round", 10);
+ forceOnlyAfterLogin = configFile.getBoolean(
+ "settings.GameMode.ForceOnlyAfterLogin", false);
+ useEssentialsMotd = configFile.getBoolean("Hooks.useEssentialsMotd",
+ false);
usePurge = configFile.getBoolean("Purge.useAutoPurge", false);
purgeDelay = configFile.getInt("Purge.daysBeforeRemovePlayer", 60);
purgePlayerDat = configFile.getBoolean("Purge.removePlayerDat", false);
- purgeEssentialsFile = configFile.getBoolean("Purge.removeEssentialsFile", false);
+ purgeEssentialsFile = configFile.getBoolean(
+ "Purge.removeEssentialsFile", false);
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
- getPhpbbPrefix = configFile.getString("ExternalBoardOptions.phpbbTablePrefix", "phpbb_");
- getPhpbbGroup = configFile.getInt("ExternalBoardOptions.phpbbActivatedGroupId", 2);
- supportOldPassword = configFile.getBoolean("settings.security.supportOldPasswordHash", false);
- getWordPressPrefix = configFile.getString("ExternalBoardOptions.wordpressTablePrefix", "wp_");
- purgeLimitedCreative = configFile.getBoolean("Purge.removeLimitedCreativesInventories", false);
- purgeAntiXray = configFile.getBoolean("Purge.removeAntiXRayFile", false);
- //purgePermissions = configFile.getBoolean("Purge.removePermissions", false);
- enableProtection = configFile.getBoolean("Protection.enableProtection", false);
+ getPhpbbPrefix = configFile.getString(
+ "ExternalBoardOptions.phpbbTablePrefix", "phpbb_");
+ getPhpbbGroup = configFile.getInt(
+ "ExternalBoardOptions.phpbbActivatedGroupId", 2);
+ supportOldPassword = configFile.getBoolean(
+ "settings.security.supportOldPasswordHash", false);
+ getWordPressPrefix = configFile.getString(
+ "ExternalBoardOptions.wordpressTablePrefix", "wp_");
+ purgeLimitedCreative = configFile.getBoolean(
+ "Purge.removeLimitedCreativesInventories", false);
+ purgeAntiXray = configFile
+ .getBoolean("Purge.removeAntiXRayFile", false);
+ // purgePermissions = configFile.getBoolean("Purge.removePermissions",
+ // false);
+ enableProtection = configFile.getBoolean("Protection.enableProtection",
+ false);
countries = (List) configFile.getList("Protection.countries");
- enableAntiBot = configFile.getBoolean("Protection.enableAntiBot", false);
- antiBotSensibility = configFile.getInt("Protection.antiBotSensibility", 5);
+ enableAntiBot = configFile
+ .getBoolean("Protection.enableAntiBot", false);
+ antiBotSensibility = configFile.getInt("Protection.antiBotSensibility",
+ 5);
antiBotDuration = configFile.getInt("Protection.antiBotDuration", 10);
- forceCommands = (List) configFile.getList("settings.forceCommands", new ArrayList());
- forceCommandsAsConsole = (List) configFile.getList("settings.forceCommandsAsConsole", new ArrayList());
+ forceCommands = (List) configFile.getList(
+ "settings.forceCommands", new ArrayList());
+ forceCommandsAsConsole = (List) configFile.getList(
+ "settings.forceCommandsAsConsole", new ArrayList());
recallEmail = configFile.getBoolean("Email.recallPlayers", false);
delayRecall = configFile.getInt("Email.delayRecall", 5);
- useWelcomeMessage = configFile.getBoolean("settings.useWelcomeMessage", true);
- unsafePasswords = (List) configFile.getList("settings.security.unsafePasswords", new ArrayList());
- countriesBlacklist = (List) configFile.getList("Protection.countriesBlacklist", new ArrayList());
- broadcastWelcomeMessage = configFile.getBoolean("settings.broadcastWelcomeMessage", false);
- forceRegKick = configFile.getBoolean("settings.registration.forceKickAfterRegister", false);
- forceRegLogin = configFile.getBoolean("settings.registration.forceLoginAfterRegister", false);
- getMySQLColumnLogged = configFile.getString("DataSource.mySQLColumnLogged","isLogged");
- spawnPriority = configFile.getString("settings.restrictions.spawnPriority", "authme,essentials,multiverse,default");
- getMaxLoginPerIp = configFile.getInt("settings.restrictions.maxLoginPerIp", 0);
- getMaxJoinPerIp = configFile.getInt("settings.restrictions.maxJoinPerIp", 0);
- checkVeryGames = configFile.getBoolean("VeryGames.enableIpCheck", false);
- delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage", false);
- noTeleport = configFile.getBoolean("settings.restrictions.noTeleport", false);
- crazyloginFileName = configFile.getString("Converter.CrazyLogin.fileName", "accounts.db");
- getPassRegex = configFile.getString("settings.restrictions.allowedPasswordCharacters","[a-zA-Z0-9_?!@+&-]*");
- applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false);
+ useWelcomeMessage = configFile.getBoolean("settings.useWelcomeMessage",
+ true);
+ unsafePasswords = (List) configFile.getList(
+ "settings.security.unsafePasswords", new ArrayList());
+ countriesBlacklist = (List) configFile.getList(
+ "Protection.countriesBlacklist", new ArrayList());
+ broadcastWelcomeMessage = configFile.getBoolean(
+ "settings.broadcastWelcomeMessage", false);
+ forceRegKick = configFile.getBoolean(
+ "settings.registration.forceKickAfterRegister", false);
+ forceRegLogin = configFile.getBoolean(
+ "settings.registration.forceLoginAfterRegister", false);
+ getMySQLColumnLogged = configFile.getString(
+ "DataSource.mySQLColumnLogged", "isLogged");
+ spawnPriority = configFile.getString(
+ "settings.restrictions.spawnPriority",
+ "authme,essentials,multiverse,default");
+ getMaxLoginPerIp = configFile.getInt(
+ "settings.restrictions.maxLoginPerIp", 0);
+ getMaxJoinPerIp = configFile.getInt(
+ "settings.restrictions.maxJoinPerIp", 0);
+ checkVeryGames = configFile
+ .getBoolean("VeryGames.enableIpCheck", false);
+ delayJoinMessage = configFile.getBoolean("settings.delayJoinMessage",
+ false);
+ noTeleport = configFile.getBoolean("settings.restrictions.noTeleport",
+ false);
+ crazyloginFileName = configFile.getString(
+ "Converter.CrazyLogin.fileName", "accounts.db");
+ getPassRegex = configFile.getString(
+ "settings.restrictions.allowedPasswordCharacters",
+ "[a-zA-Z0-9_?!@+&-]*");
+ applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect",
+ false);
emailBlacklist = configFile.getStringList("Email.emailBlacklisted");
// Reload the welcome message
getWelcomeMessage(AuthMe.getInstance());
-
-}
- public void mergeConfig() {
- boolean changes = false;
- if(contains("Xenoforo.predefinedSalt"))
- set("Xenoforo.predefinedSalt", null);
- if(configFile.getString("settings.security.passwordHash","SHA256").toUpperCase().equals("XFSHA1") || configFile.getString("settings.security.passwordHash","SHA256").toUpperCase().equals("XFSHA256"))
- set("settings.security.passwordHash", "XENFORO");
- if(!contains("Protection.enableProtection")) {
- set("Protection.enableProtection", false);
- changes = true;
- }
- if(!contains("Protection.countries")) {
- countries = new ArrayList();
- countries.add("US");
- countries.add("GB");
- set("Protection.countries", countries);
- changes = true;
- }
- if(!contains("Protection.enableAntiBot")) {
- set("Protection.enableAntiBot", false);
- changes = true;
- }
- if(!contains("Protection.antiBotSensibility")) {
- set("Protection.antiBotSensibility", 5);
- changes = true;
- }
- if(!contains("Protection.antiBotDuration")) {
- set("Protection.antiBotDuration", 10);
- changes = true;
- }
- if(!contains("settings.forceCommands")) {
- set("settings.forceCommands", new ArrayList());
- changes = true;
- }
- if(!contains("settings.forceCommandsAsConsole")) {
- set("settings.forceCommandsAsConsole", new ArrayList());
- changes = true;
- }
- if(!contains("Email.recallPlayers")) {
- set("Email.recallPlayers", false);
- changes = true;
- }
- if(!contains("Email.delayRecall")) {
- set("Email.delayRecall", 5);
- changes = true;
- }
- if(!contains("settings.useWelcomeMessage")) {
- set("settings.useWelcomeMessage", true);
- changes = true;
- }
- if(!contains("settings.security.unsafePasswords")) {
- List str = new ArrayList();
- str.add("123456");
- str.add("password");
- set("settings.security.unsafePasswords", str);
- changes = true;
- }
- if(!contains("Protection.countriesBlacklist")) {
- countriesBlacklist = new ArrayList();
- countriesBlacklist.add("A1");
- set("Protection.countriesBlacklist", countriesBlacklist);
- changes = true;
- }
- if(!contains("settings.broadcastWelcomeMessage")) {
- set("settings.broadcastWelcomeMessage", false);
- changes = true;
- }
- if(!contains("settings.registration.forceKickAfterRegister")) {
- set("settings.registration.forceKickAfterRegister", false);
- changes = true;
- }
- if(!contains("settings.registration.forceLoginAfterRegister")) {
- set("settings.registration.forceLoginAfterRegister", false);
- changes = true;
- }
- if(!contains("DataSource.mySQLColumnLogged")) {
- set("DataSource.mySQLColumnLogged", "isLogged");
- changes = true;
- }
- if(!contains("settings.restrictions.spawnPriority")) {
- set("settings.restrictions.spawnPriority", "authme,essentials,multiverse,default");
- changes = true;
- }
- if(!contains("settings.restrictions.maxLoginPerIp")) {
- set("settings.restrictions.maxLoginPerIp", 0);
- changes = true;
- }
- if(!contains("settings.restrictions.maxJoinPerIp")) {
- set("settings.restrictions.maxJoinPerIp", 0);
- changes = true;
- }
- if(!contains("VeryGames.enableIpCheck")) {
- set("VeryGames.enableIpCheck", false);
- changes = true;
- }
- if(getString("settings.restrictions.allowedNicknameCharacters").equals("[a-zA-Z0-9_?]*"))
- set("settings.restrictions.allowedNicknameCharacters", "[a-zA-Z0-9_]*");
- if(!contains("settings.delayJoinMessage")) {
- set("settings.delayJoinMessage", false);
- changes = true;
- }
- if(!contains("settings.restrictions.noTeleport")) {
- set("settings.restrictions.noTeleport", false);
- changes = true;
- }
- if(contains("Converter.Rakamak.newPasswordHash"))
- set("Converter.Rakamak.newPasswordHash", null);
- if(!contains("Converter.CrazyLogin.fileName")) {
- set("Converter.CrazyLogin.fileName", "accounts.db");
- changes = true;
- }
- if(!contains("settings.restrictions.allowedPasswordCharacters")) {
- set("settings.restrictions.allowedPasswordCharacters", "[a-zA-Z0-9_?!@+&-]*");
- changes = true;
- }
- if(!contains("settings.applyBlindEffect")) {
- set("settings.applyBlindEffect", false);
- changes = true;
- }
- if(!contains("Email.emailBlacklisted")) {
- set("Email.emailBlacklisted", new ArrayList());
- changes = true;
- }
- if (contains("Performances.useMultiThreading"))
- set("Performances.useMultiThreading", null);
+ }
- if (changes) {
- plugin.getLogger().warning("Merge new Config Options - I'm not an error, please don't report me");
- plugin.getLogger().warning("Please check your config.yml file for new configs!");
- }
- plugin.saveConfig();
+ public void mergeConfig() {
+ boolean changes = false;
+ if (contains("Xenoforo.predefinedSalt")) set("Xenoforo.predefinedSalt",
+ null);
+ if (configFile.getString("settings.security.passwordHash", "SHA256")
+ .toUpperCase().equals("XFSHA1")
+ || configFile
+ .getString("settings.security.passwordHash", "SHA256")
+ .toUpperCase().equals("XFSHA256")) set(
+ "settings.security.passwordHash", "XENFORO");
+ if (!contains("Protection.enableProtection")) {
+ set("Protection.enableProtection", false);
+ changes = true;
+ }
+ if (!contains("Protection.countries")) {
+ countries = new ArrayList();
+ countries.add("US");
+ countries.add("GB");
+ set("Protection.countries", countries);
+ changes = true;
+ }
+ if (!contains("Protection.enableAntiBot")) {
+ set("Protection.enableAntiBot", false);
+ changes = true;
+ }
+ if (!contains("Protection.antiBotSensibility")) {
+ set("Protection.antiBotSensibility", 5);
+ changes = true;
+ }
+ if (!contains("Protection.antiBotDuration")) {
+ set("Protection.antiBotDuration", 10);
+ changes = true;
+ }
+ if (!contains("settings.forceCommands")) {
+ set("settings.forceCommands", new ArrayList());
+ changes = true;
+ }
+ if (!contains("settings.forceCommandsAsConsole")) {
+ set("settings.forceCommandsAsConsole", new ArrayList());
+ changes = true;
+ }
+ if (!contains("Email.recallPlayers")) {
+ set("Email.recallPlayers", false);
+ changes = true;
+ }
+ if (!contains("Email.delayRecall")) {
+ set("Email.delayRecall", 5);
+ changes = true;
+ }
+ if (!contains("settings.useWelcomeMessage")) {
+ set("settings.useWelcomeMessage", true);
+ changes = true;
+ }
+ if (!contains("settings.security.unsafePasswords")) {
+ List str = new ArrayList();
+ str.add("123456");
+ str.add("password");
+ set("settings.security.unsafePasswords", str);
+ changes = true;
+ }
+ if (!contains("Protection.countriesBlacklist")) {
+ countriesBlacklist = new ArrayList();
+ countriesBlacklist.add("A1");
+ set("Protection.countriesBlacklist", countriesBlacklist);
+ changes = true;
+ }
+ if (!contains("settings.broadcastWelcomeMessage")) {
+ set("settings.broadcastWelcomeMessage", false);
+ changes = true;
+ }
+ if (!contains("settings.registration.forceKickAfterRegister")) {
+ set("settings.registration.forceKickAfterRegister", false);
+ changes = true;
+ }
+ if (!contains("settings.registration.forceLoginAfterRegister")) {
+ set("settings.registration.forceLoginAfterRegister", false);
+ changes = true;
+ }
+ if (!contains("DataSource.mySQLColumnLogged")) {
+ set("DataSource.mySQLColumnLogged", "isLogged");
+ changes = true;
+ }
+ if (!contains("settings.restrictions.spawnPriority")) {
+ set("settings.restrictions.spawnPriority",
+ "authme,essentials,multiverse,default");
+ changes = true;
+ }
+ if (!contains("settings.restrictions.maxLoginPerIp")) {
+ set("settings.restrictions.maxLoginPerIp", 0);
+ changes = true;
+ }
+ if (!contains("settings.restrictions.maxJoinPerIp")) {
+ set("settings.restrictions.maxJoinPerIp", 0);
+ changes = true;
+ }
+ if (!contains("VeryGames.enableIpCheck")) {
+ set("VeryGames.enableIpCheck", false);
+ changes = true;
+ }
+ if (getString("settings.restrictions.allowedNicknameCharacters")
+ .equals("[a-zA-Z0-9_?]*")) set(
+ "settings.restrictions.allowedNicknameCharacters",
+ "[a-zA-Z0-9_]*");
+ if (!contains("settings.delayJoinMessage")) {
+ set("settings.delayJoinMessage", false);
+ changes = true;
+ }
+ if (!contains("settings.restrictions.noTeleport")) {
+ set("settings.restrictions.noTeleport", false);
+ changes = true;
+ }
+ if (contains("Converter.Rakamak.newPasswordHash")) set(
+ "Converter.Rakamak.newPasswordHash", null);
+ if (!contains("Converter.CrazyLogin.fileName")) {
+ set("Converter.CrazyLogin.fileName", "accounts.db");
+ changes = true;
+ }
+ if (!contains("settings.restrictions.allowedPasswordCharacters")) {
+ set("settings.restrictions.allowedPasswordCharacters",
+ "[a-zA-Z0-9_?!@+&-]*");
+ changes = true;
+ }
+ if (!contains("settings.applyBlindEffect")) {
+ set("settings.applyBlindEffect", false);
+ changes = true;
+ }
+ if (!contains("Email.emailBlacklisted")) {
+ set("Email.emailBlacklisted", new ArrayList());
+ changes = true;
+ }
+ if (contains("Performances.useMultiThreading")) set(
+ "Performances.useMultiThreading", null);
- return;
- }
+ if (changes) {
+ plugin.getLogger()
+ .warning(
+ "Merge new Config Options - I'm not an error, please don't report me");
+ plugin.getLogger().warning(
+ "Please check your config.yml file for new configs!");
+ }
+ plugin.saveConfig();
+
+ return;
+ }
private static HashAlgorithm getPasswordHash() {
String key = "settings.security.passwordHash";
try {
- return HashAlgorithm.valueOf(configFile.getString(key,"SHA256").toUpperCase());
+ return HashAlgorithm.valueOf(configFile.getString(key, "SHA256")
+ .toUpperCase());
} catch (IllegalArgumentException ex) {
- ConsoleLogger.showError("Unknown Hash Algorithm; defaulting to SHA256");
+ ConsoleLogger
+ .showError("Unknown Hash Algorithm; defaulting to SHA256");
return HashAlgorithm.SHA256;
}
}
@@ -566,45 +819,47 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
private static DataSourceType getDataSource() {
String key = "DataSource.backend";
try {
- return DataSource.DataSourceType.valueOf(configFile.getString(key).toUpperCase());
+ return DataSource.DataSourceType.valueOf(configFile.getString(key)
+ .toUpperCase());
} catch (IllegalArgumentException ex) {
- ConsoleLogger.showError("Unknown database backend; defaulting to file database");
+ ConsoleLogger
+ .showError("Unknown database backend; defaulting to file database");
return DataSource.DataSourceType.FILE;
}
}
/**
- * Config option for setting and check restricted user by
- * username;ip , return false if ip and name doesnt amtch with
- * player that join the server, so player has a restricted access
- */
+ * Config option for setting and check restricted user by username;ip ,
+ * return false if ip and name doesnt amtch with player that join the
+ * server, so player has a restricted access
+ */
public static Boolean getRestrictedIp(String name, String ip) {
Iterator iter = getRestrictedIp.iterator();
Boolean trueonce = false;
Boolean namefound = false;
- while (iter.hasNext()) {
- String[] args = iter.next().split(";");
- String testname = args[0];
- String testip = args[1];
- if(testname.equalsIgnoreCase(name) ) {
- namefound = true;
- if(testip.equalsIgnoreCase(ip)) {
- trueonce = true;
- };
- }
- }
- if ( namefound == false){
- return true;
- }
- else {
- if ( trueonce == true ){
- return true;
- } else {
- return false;
- }
- }
-}
+ while (iter.hasNext()) {
+ String[] args = iter.next().split(";");
+ String testname = args[0];
+ String testip = args[1];
+ if (testname.equalsIgnoreCase(name)) {
+ namefound = true;
+ if (testip.equalsIgnoreCase(ip)) {
+ trueonce = true;
+ }
+ ;
+ }
+ }
+ if (namefound == false) {
+ return true;
+ } else {
+ if (trueonce == true) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
/**
* Loads the configuration from disk
@@ -651,11 +906,12 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
/**
* Loads a file from the plugin jar and sets as default
*
- * @param filename The filename to open
+ * @param filename
+ * The filename to open
*/
public final void loadDefaults(String filename) {
InputStream stream = plugin.getResource(filename);
- if(stream == null) return;
+ if (stream == null) return;
setDefaults(YamlConfiguration.loadConfiguration(stream));
}
@@ -696,61 +952,61 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
}
public static String checkLang(String lang) {
- for(messagesLang language: messagesLang.values()) {
- if(lang.toLowerCase().contains(language.toString())) {
- ConsoleLogger.info("Set Language: "+lang);
+ for (messagesLang language : messagesLang.values()) {
+ if (lang.toLowerCase().contains(language.toString())) {
+ ConsoleLogger.info("Set Language: " + lang);
return lang;
- }
+ }
}
ConsoleLogger.info("Set Default Language: En ");
return "en";
}
public static void switchAntiBotMod(boolean mode) {
- if (mode)
- isKickNonRegisteredEnabled = true;
- else
- isKickNonRegisteredEnabled = configFile.getBoolean("settings.restrictions.kickNonRegistered",false);
+ if (mode) isKickNonRegisteredEnabled = true;
+ else isKickNonRegisteredEnabled = configFile.getBoolean(
+ "settings.restrictions.kickNonRegistered", false);
}
private static void getWelcomeMessage(AuthMe plugin) {
- welcomeMsg = new ArrayList();
- if(!useWelcomeMessage) {
- return;
- }
- if (!(new File(plugin.getDataFolder() + File.separator + "welcome.txt").exists())) {
+ welcomeMsg = new ArrayList();
+ if (!useWelcomeMessage) {
+ return;
+ }
+ if (!(new File(plugin.getDataFolder() + File.separator + "welcome.txt")
+ .exists())) {
try {
- FileWriter fw = new FileWriter(plugin.getDataFolder() + File.separator + "welcome.txt", true);
- BufferedWriter w = new BufferedWriter(fw);
- w.write("Welcome {PLAYER} on {SERVER} server");
- w.newLine();
- w.write("This server use AuthMe protection!");
- w.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- try {
- FileReader fr = new FileReader(plugin.getDataFolder() + File.separator + "welcome.txt");
- BufferedReader br = new BufferedReader(fr);
- String line = "";
- while((line = br.readLine()) != null) {
- welcomeMsg.add(line);
- }
- br.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
+ FileWriter fw = new FileWriter(plugin.getDataFolder()
+ + File.separator + "welcome.txt", true);
+ BufferedWriter w = new BufferedWriter(fw);
+ w.write("Welcome {PLAYER} on {SERVER} server");
+ w.newLine();
+ w.write("This server use AuthMe protection!");
+ w.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ try {
+ FileReader fr = new FileReader(plugin.getDataFolder()
+ + File.separator + "welcome.txt");
+ BufferedReader br = new BufferedReader(fr);
+ String line = "";
+ while ((line = br.readLine()) != null) {
+ welcomeMsg.add(line);
+ }
+ br.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
-
+
public static boolean isEmailCorrect(String email) {
boolean correct = true;
- if (!email.contains("@"))
- correct = false;
- if (!email.equalsIgnoreCase("your@email.com"))
- correct = false;
+ if (!email.contains("@")) correct = false;
+ if (!email.equalsIgnoreCase("your@email.com")) correct = false;
String emailDomain = email.split("@")[1];
for (String domain : emailBlacklist) {
if (domain.equalsIgnoreCase(emailDomain)) {
@@ -762,6 +1018,6 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
}
public enum messagesLang {
- en, de, br, cz, pl, fr, uk, ru, hu, sk, es, fi, zhtw, zhhk, zhcn, lt, it, ko, pt, nl, gl
+ en, de, br, cz, pl, fr, uk, ru, hu, sk, es, fi, zhtw, zhhk, zhcn, lt, it, ko, pt, nl, gl
}
}
diff --git a/src/main/java/fr/xephi/authme/settings/Spawn.java b/src/main/java/fr/xephi/authme/settings/Spawn.java
index b346ce60..243a6b30 100644
--- a/src/main/java/fr/xephi/authme/settings/Spawn.java
+++ b/src/main/java/fr/xephi/authme/settings/Spawn.java
@@ -5,106 +5,118 @@ import org.bukkit.Bukkit;
import org.bukkit.Location;
/**
-*
-* @author Xephi59
-*/
+ *
+ * @author Xephi59
+ */
public class Spawn extends CustomConfiguration {
- private static Spawn spawn;
+ private static Spawn spawn;
- public Spawn() {
- super(new File("./plugins/AuthMe/spawn.yml"));
- spawn = this;
- load();
- save();
- saveDefault();
- }
+ public Spawn() {
+ super(new File("./plugins/AuthMe/spawn.yml"));
+ spawn = this;
+ load();
+ save();
+ saveDefault();
+ }
- private void saveDefault() {
- if (!contains("spawn")) {
- set("spawn.world", "");
- set("spawn.x", "");
- set("spawn.y", "");
- set("spawn.z", "");
- set("spawn.yaw", "");
- set("spawn.pitch", "");
- save();
- }
- if (!contains("firstspawn")) {
- set("firstspawn.world", "");
- set("firstspawn.x", "");
- set("firstspawn.y", "");
- set("firstspawn.z", "");
- set("firstspawn.yaw", "");
- set("firstspawn.pitch", "");
- save();
- }
- }
+ private void saveDefault() {
+ if (!contains("spawn")) {
+ set("spawn.world", "");
+ set("spawn.x", "");
+ set("spawn.y", "");
+ set("spawn.z", "");
+ set("spawn.yaw", "");
+ set("spawn.pitch", "");
+ save();
+ }
+ if (!contains("firstspawn")) {
+ set("firstspawn.world", "");
+ set("firstspawn.x", "");
+ set("firstspawn.y", "");
+ set("firstspawn.z", "");
+ set("firstspawn.yaw", "");
+ set("firstspawn.pitch", "");
+ save();
+ }
+ }
- public static Spawn getInstance() {
+ public static Spawn getInstance() {
if (spawn == null) {
spawn = new Spawn();
- }
+ }
return spawn;
}
- public boolean setSpawn(Location location) {
- try {
- set("spawn.world", location.getWorld().getName());
- set("spawn.x", location.getX());
- set("spawn.y", location.getY());
- set("spawn.z", location.getZ());
- set("spawn.yaw", location.getYaw());
- set("spawn.pitch", location.getPitch());
- save();
- return true;
- } catch (NullPointerException npe) {
- return false;
- }
- }
+ public boolean setSpawn(Location location) {
+ try {
+ set("spawn.world", location.getWorld().getName());
+ set("spawn.x", location.getX());
+ set("spawn.y", location.getY());
+ set("spawn.z", location.getZ());
+ set("spawn.yaw", location.getYaw());
+ set("spawn.pitch", location.getPitch());
+ save();
+ return true;
+ } catch (NullPointerException npe) {
+ return false;
+ }
+ }
- public boolean setFirstSpawn(Location location) {
- try {
- set("firstspawn.world", location.getWorld().getName());
- set("firstspawn.x", location.getX());
- set("firstspawn.y", location.getY());
- set("firstspawn.z", location.getZ());
- set("firstspawn.yaw", location.getYaw());
- set("firstspawn.pitch", location.getPitch());
- save();
- return true;
- } catch (NullPointerException npe) {
- return false;
- }
- }
-
- @Deprecated
- public Location getLocation() {
- return getSpawn();
- }
-
- public Location getSpawn() {
- try {
- if (this.getString("spawn.world").isEmpty() || this.getString("spawn.world") == "") return null;
- Location location = new Location(Bukkit.getWorld(this.getString("spawn.world")), this.getDouble("spawn.x"), this.getDouble("spawn.y"), this.getDouble("spawn.z"), Float.parseFloat(this.getString("spawn.yaw")), Float.parseFloat(this.getString("spawn.pitch")));
- return location;
- } catch (NullPointerException npe) {
- return null;
- } catch (NumberFormatException nfe) {
- return null;
- }
- }
-
- public Location getFirstSpawn() {
- try {
- if (this.getString("firstspawn.world").isEmpty() || this.getString("firstspawn.world") == "") return null;
- Location location = new Location(Bukkit.getWorld(this.getString("firstspawn.world")), this.getDouble("firstspawn.x"), this.getDouble("firstspawn.y"), this.getDouble("firstspawn.z"), Float.parseFloat(this.getString("firstspawn.yaw")), Float.parseFloat(this.getString("firstspawn.pitch")));
- return location;
- } catch (NullPointerException npe) {
- return null;
- } catch (NumberFormatException nfe) {
- return null;
- }
- }
+ public boolean setFirstSpawn(Location location) {
+ try {
+ set("firstspawn.world", location.getWorld().getName());
+ set("firstspawn.x", location.getX());
+ set("firstspawn.y", location.getY());
+ set("firstspawn.z", location.getZ());
+ set("firstspawn.yaw", location.getYaw());
+ set("firstspawn.pitch", location.getPitch());
+ save();
+ return true;
+ } catch (NullPointerException npe) {
+ return false;
+ }
+ }
+
+ @Deprecated
+ public Location getLocation() {
+ return getSpawn();
+ }
+
+ public Location getSpawn() {
+ try {
+ if (this.getString("spawn.world").isEmpty()
+ || this.getString("spawn.world") == "") return null;
+ Location location = new Location(Bukkit.getWorld(this
+ .getString("spawn.world")), this.getDouble("spawn.x"),
+ this.getDouble("spawn.y"), this.getDouble("spawn.z"),
+ Float.parseFloat(this.getString("spawn.yaw")),
+ Float.parseFloat(this.getString("spawn.pitch")));
+ return location;
+ } catch (NullPointerException npe) {
+ return null;
+ } catch (NumberFormatException nfe) {
+ return null;
+ }
+ }
+
+ public Location getFirstSpawn() {
+ try {
+ if (this.getString("firstspawn.world").isEmpty()
+ || this.getString("firstspawn.world") == "") return null;
+ Location location = new Location(Bukkit.getWorld(this
+ .getString("firstspawn.world")),
+ this.getDouble("firstspawn.x"),
+ this.getDouble("firstspawn.y"),
+ this.getDouble("firstspawn.z"), Float.parseFloat(this
+ .getString("firstspawn.yaw")),
+ Float.parseFloat(this.getString("firstspawn.pitch")));
+ return location;
+ } catch (NullPointerException npe) {
+ return null;
+ } catch (NumberFormatException nfe) {
+ return null;
+ }
+ }
}
diff --git a/src/main/java/fr/xephi/authme/settings/SpoutCfg.java b/src/main/java/fr/xephi/authme/settings/SpoutCfg.java
index 083bbb9e..f7cea432 100644
--- a/src/main/java/fr/xephi/authme/settings/SpoutCfg.java
+++ b/src/main/java/fr/xephi/authme/settings/SpoutCfg.java
@@ -3,36 +3,38 @@ package fr.xephi.authme.settings;
import java.io.File;
import java.util.ArrayList;
-public class SpoutCfg extends CustomConfiguration{
+public class SpoutCfg extends CustomConfiguration {
- private static SpoutCfg instance = null;
+ private static SpoutCfg instance = null;
- public SpoutCfg(File file)
- {
- super(file);
- loadDefaults();
- load();
- save();
- }
+ public SpoutCfg(File file) {
+ super(file);
+ loadDefaults();
+ load();
+ save();
+ }
- @SuppressWarnings("serial")
- private void loadDefaults() {
- this.set("Spout GUI enabled", true);
- this.set("LoginScreen.enabled", true);
- this.set("LoginScreen.exit button", "Quit");
- this.set("LoginScreen.exit message", "Good Bye");
- this.set("LoginScreen.login button", "Login");
- this.set("LoginScreen.title", "LOGIN");
- this.set("LoginScreen.text", new ArrayList() {{
- add("Sample text");
- add("Change this at spout.yml");
- add("--- AuthMe Reloaded by ---");
- add("Xephi59");
- }});
- }
+ @SuppressWarnings("serial")
+ private void loadDefaults() {
+ this.set("Spout GUI enabled", true);
+ this.set("LoginScreen.enabled", true);
+ this.set("LoginScreen.exit button", "Quit");
+ this.set("LoginScreen.exit message", "Good Bye");
+ this.set("LoginScreen.login button", "Login");
+ this.set("LoginScreen.title", "LOGIN");
+ this.set("LoginScreen.text", new ArrayList() {
+ {
+ add("Sample text");
+ add("Change this at spout.yml");
+ add("--- AuthMe Reloaded by ---");
+ add("Xephi59");
+ }
+ });
+ }
- public static SpoutCfg getInstance() {
- if (instance == null) instance = new SpoutCfg(new File("plugins/AuthMe", "spout.yml"));
- return instance;
- }
+ public static SpoutCfg getInstance() {
+ if (instance == null) instance = new SpoutCfg(new File(
+ "plugins/AuthMe", "spout.yml"));
+ return instance;
+ }
}
diff --git a/src/main/java/fr/xephi/authme/task/MessageTask.java b/src/main/java/fr/xephi/authme/task/MessageTask.java
index d4b9c19f..247ca500 100644
--- a/src/main/java/fr/xephi/authme/task/MessageTask.java
+++ b/src/main/java/fr/xephi/authme/task/MessageTask.java
@@ -7,7 +7,6 @@ import fr.xephi.authme.AuthMe;
import fr.xephi.authme.cache.auth.PlayerCache;
import fr.xephi.authme.cache.limbo.LimboCache;
-
public class MessageTask implements Runnable {
private AuthMe plugin;
@@ -15,7 +14,8 @@ public class MessageTask implements Runnable {
private String[] msg;
private int interval;
- public MessageTask(AuthMe plugin, String name, String[] strings, int interval) {
+ public MessageTask(AuthMe plugin, String name, String[] strings,
+ int interval) {
this.plugin = plugin;
this.name = name;
this.msg = strings;
@@ -24,18 +24,19 @@ public class MessageTask implements Runnable {
@Override
public void run() {
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
for (Player player : plugin.getServer().getOnlinePlayers()) {
if (player.getName().toLowerCase().equals(name)) {
- for (String ms : msg) {
- player.sendMessage(ms);
- }
+ for (String ms : msg) {
+ player.sendMessage(ms);
+ }
BukkitScheduler sched = plugin.getServer().getScheduler();
- int late = sched.scheduleSyncDelayedTask(plugin, this, interval * 20);
- if(LimboCache.getInstance().hasLimboPlayer(name)) {
- LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(late);
+ int late = sched.scheduleSyncDelayedTask(plugin, this,
+ interval * 20);
+ if (LimboCache.getInstance().hasLimboPlayer(name)) {
+ LimboCache.getInstance().getLimboPlayer(name)
+ .setMessageTaskId(late);
}
}
}
diff --git a/src/main/java/fr/xephi/authme/task/TimeoutTask.java b/src/main/java/fr/xephi/authme/task/TimeoutTask.java
index ad38a55b..159976af 100644
--- a/src/main/java/fr/xephi/authme/task/TimeoutTask.java
+++ b/src/main/java/fr/xephi/authme/task/TimeoutTask.java
@@ -12,8 +12,6 @@ import fr.xephi.authme.cache.limbo.LimboPlayer;
import fr.xephi.authme.listener.AuthMePlayerListener;
import fr.xephi.authme.settings.Messages;
-
-
public class TimeoutTask implements Runnable {
private JavaPlugin plugin;
@@ -32,22 +30,25 @@ public class TimeoutTask implements Runnable {
@Override
public void run() {
- if (PlayerCache.getInstance().isAuthenticated(name))
- return;
+ if (PlayerCache.getInstance().isAuthenticated(name)) return;
for (Player player : plugin.getServer().getOnlinePlayers()) {
if (player.getName().toLowerCase().equals(name)) {
if (LimboCache.getInstance().hasLimboPlayer(name)) {
- LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(name);
- player.getServer().getScheduler().cancelTask(inv.getMessageTaskId());
- player.getServer().getScheduler().cancelTask(inv.getTimeoutTaskId());
- if(playerCache.doesCacheExist(name)) {
+ LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(
+ name);
+ player.getServer().getScheduler()
+ .cancelTask(inv.getMessageTaskId());
+ player.getServer().getScheduler()
+ .cancelTask(inv.getTimeoutTaskId());
+ if (playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
- }
- }
+ }
+ }
GameMode gm = AuthMePlayerListener.gameMode.get(name);
- player.setGameMode(gm);
- ConsoleLogger.info("Set " + player.getName() + " to gamemode: " + gm.name());
+ player.setGameMode(gm);
+ ConsoleLogger.info("Set " + player.getName() + " to gamemode: "
+ + gm.name());
player.kickPlayer(m._("timeout")[0]);
break;
}