diff --git a/lib/BungeeCord.jar b/lib/BungeeCord.jar
index 6e131460d..6a71d747c 100644
Binary files a/lib/BungeeCord.jar and b/lib/BungeeCord.jar differ
diff --git a/pom.xml b/pom.xml
index 018ea2e87..d4ab57d49 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
- 2.7.13b2
+ 2.7.14
org.bukkit
diff --git a/src/main/java/uk/org/whoami/authme/AuthMe.java b/src/main/java/uk/org/whoami/authme/AuthMe.java
index 7cd12665f..824d9661a 100644
--- a/src/main/java/uk/org/whoami/authme/AuthMe.java
+++ b/src/main/java/uk/org/whoami/authme/AuthMe.java
@@ -97,28 +97,26 @@ public class AuthMe extends JavaPlugin {
public HashMap captcha = new HashMap();
public HashMap cap = new HashMap();
public MultiverseCore mv = null;
-
+
@Override
public void onEnable() {
instance = this;
authme = instance;
-
+
citizens = new CitizensCommunicator(this);
settings = new Settings(this);
settings.loadConfigOptions();
-
+
setMessages(Messages.getInstance());
pllog = PlayersLogs.getInstance();
-
+
server = getServer();
-
-
+
//Set Console Filter
if (Settings.removePassword)
Bukkit.getLogger().setFilter(new ConsoleFilter());
-
-
+
//Load MailApi
File mailFile = new File("lib", "mail.jar");
if (mailFile.exists()) {
@@ -127,22 +125,22 @@ public class AuthMe extends JavaPlugin {
} else {
mail = null;
}
-
+
//Check Citizens Version
citizensVersion();
-
+
//Check Combat Tag Version
combatTag();
-
+
//Check Notifications
checkNotifications();
-
+
//Check Multiverse
checkMultiverse();
-
+
//Check ChestShop
checkChestShop();
-
+
/*
* Back style on start if avaible
*/
@@ -151,7 +149,7 @@ public class AuthMe extends JavaPlugin {
if(Backup) ConsoleLogger.info("Backup Complete");
else ConsoleLogger.showError("Error while making Backup");
}
-
+
/*
* Backend MYSQL - FILE - SQLITE
*/
@@ -230,11 +228,11 @@ public class AuthMe extends JavaPlugin {
if (Settings.isCachingEnabled) {
database = new CacheDataSource(this, database);
}
-
+
api = new API(this, database);
-
+
management = new Management(database, this);
-
+
PluginManager pm = getServer().getPluginManager();
if (pm.isPluginEnabled("Spout")) {
pm.registerEvents(new AuthMeSpoutListener(database), this);
@@ -247,8 +245,7 @@ public class AuthMe extends JavaPlugin {
pm.registerEvents(new AuthMeChestShopListener(database, this), this);
ConsoleLogger.info("Successfully hook with ChestShop!");
}
-
-
+
//Find Permissions
if(Settings.isPermissionCheckEnabled) {
RegisteredServiceProvider permissionProvider =
@@ -257,10 +254,11 @@ public class AuthMe extends JavaPlugin {
permission = permissionProvider.getProvider();
else {
ConsoleLogger.showError("Vault and Permissions plugins is needed for enable AuthMe Reloaded!");
- this.getServer().getPluginManager().disablePlugin(this);
+ ConsoleLogger.showError("Server Shutdown for Security");
+ this.getServer().shutdown();
}
}
-
+
this.getCommand("authme").setExecutor(new AdminCommand(this, database));
this.getCommand("register").setExecutor(new RegisterCommand(database, this));
this.getCommand("login").setExecutor(new LoginCommand(this));
@@ -270,11 +268,11 @@ public class AuthMe extends JavaPlugin {
this.getCommand("passpartu").setExecutor(new PasspartuCommand(database, this));
this.getCommand("email").setExecutor(new EmailCommand(this, database));
this.getCommand("captcha").setExecutor(new CaptchaCommand(this));
-
+
if(!Settings.isForceSingleSessionEnabled) {
ConsoleLogger.showError("ATTENTION by disabling ForceSingleSession, your server protection is set to low");
}
-
+
if (Settings.reloadSupport)
try {
if (!new File(getDataFolder() + File.separator + "players.yml").exists()) {
@@ -289,13 +287,10 @@ public class AuthMe extends JavaPlugin {
}
}
} catch (NullPointerException ex) {
-
}
-
ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " enabled");
}
-
private void checkChestShop() {
if (!Settings.chestshop) {
this.ChestShop = 0;
@@ -320,16 +315,12 @@ public class AuthMe extends JavaPlugin {
ConsoleLogger.showError("Please Update your ChestShop version!");
}
} catch (NumberFormatException nfee) {
-
}
-
}
-
} catch (NullPointerException npe) {}
catch (NoClassDefFoundError ncdfe) {}
catch (ClassCastException cce) {}
}
-
}
private void checkMultiverse() {
@@ -362,7 +353,6 @@ public class AuthMe extends JavaPlugin {
} else {
this.notifications = null;
}
-
}
private void combatTag() {
@@ -395,23 +385,17 @@ public class AuthMe extends JavaPlugin {
this.savePlayer(player);
}
pllog.save();
-
+
if (database != null) {
database.close();
}
- //utils = Utils.getInstance();
-
- /*
- * Back style on start if avaible
- */
+
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");
-
-
}
private void onReload() {
@@ -421,7 +405,6 @@ public class AuthMe extends JavaPlugin {
if (PlayersLogs.players.contains(player.getName())) {
String name = player.getName().toLowerCase();
PlayerAuth pAuth = database.getAuth(name);
- // if Mysql is unavaible
if(pAuth == null)
break;
PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(), pAuth.getIp(), new Date().getTime());
@@ -435,18 +418,17 @@ public class AuthMe extends JavaPlugin {
return;
}
}
-
+
public static AuthMe getInstance() {
return instance;
}
-
+
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()) &&
@@ -454,7 +436,6 @@ public class AuthMe extends JavaPlugin {
PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
this.database.updateQuitLoc(auth);
}
-
if (LimboCache.getInstance().hasLimboPlayer(name))
{
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
@@ -468,14 +449,12 @@ public class AuthMe extends JavaPlugin {
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);
player.saveData();
} catch (Exception ex) {
@@ -497,7 +476,7 @@ public class AuthMe extends JavaPlugin {
public Messages getMessages() {
return m;
}
-
+
public Player generateKickPlayer(Player[] players) {
Player player = null;
int i;
@@ -509,7 +488,13 @@ public class AuthMe extends JavaPlugin {
break;
}
}
+ if (player == null) {
+ for (Player p : this.getServer().getOnlinePlayers()) {
+ if (p.hasPermission("authme.vip"))
+ player = p;
+ }
+ }
return player;
}
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/ConsoleLogger.java b/src/main/java/uk/org/whoami/authme/ConsoleLogger.java
index 99bfb763f..937998981 100644
--- a/src/main/java/uk/org/whoami/authme/ConsoleLogger.java
+++ b/src/main/java/uk/org/whoami/authme/ConsoleLogger.java
@@ -16,17 +16,65 @@
package uk.org.whoami.authme;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.util.Calendar;
import java.util.logging.Logger;
+import org.bukkit.Bukkit;
+
+import uk.org.whoami.authme.settings.Settings;
+
public class ConsoleLogger {
private static final Logger log = Logger.getLogger("Minecraft");
public static void info(String message) {
- log.info("[AuthMe] " + 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);
+ }
+ });
+ }
+ }
}
public static void showError(String message) {
- log.severe("[AuthMe] ERROR: " + message);
+ if (AuthMe.getInstance().isEnabled()) {
+ log.severe("[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);
+ }
+ });
+ }
+ }
}
+
+ public static void writeLog(String string) {
+ try {
+ FileWriter fw = new FileWriter(AuthMe.getInstance().getDataFolder() + File.separator + "authme.log", true);
+ BufferedWriter w = null;
+ w = new BufferedWriter(fw);
+ w.write(string);
+ w.newLine();
+ w.close();
+ } catch (IOException e) {
+ ConsoleLogger.showError(e.getMessage());
+ }
+ }
+
}
diff --git a/src/main/java/uk/org/whoami/authme/Management.java b/src/main/java/uk/org/whoami/authme/Management.java
index e4a0f3e58..73543d00c 100644
--- a/src/main/java/uk/org/whoami/authme/Management.java
+++ b/src/main/java/uk/org/whoami/authme/Management.java
@@ -6,6 +6,7 @@ import java.util.List;
import me.muizers.Notifications.Notification;
import net.md_5.bungee.BungeeCord;
+import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -44,7 +45,7 @@ public class Management {
private boolean passpartu = false;
public static RandomString rdm = new RandomString(Settings.captchaLength);
public PluginManager pm;
-
+
public Management(DataSource database, AuthMe plugin) {
this.database = database;
this.plugin = plugin;
@@ -57,342 +58,423 @@ public class Management {
this.plugin = plugin;
this.pm = plugin.getServer().getPluginManager();
}
-
- public String performLogin(Player player, String password) {
-
- String name = player.getName().toLowerCase();
- String ip = player.getAddress().getAddress().getHostAddress();
- if (Settings.bungee) {
- try {
- ip = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
- } catch (NoClassDefFoundError ncdfe) {
- ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
- }
- }
- World world = player.getWorld();
- Location spawnLoc = world.getSpawnLocation();
- if (plugin.mv != null) {
- try {
- spawnLoc = plugin.mv.getMVWorldManager().getMVWorld(world).getSpawnLocation();
- } catch (NullPointerException npe) {
- } catch (ClassCastException cce) {
- } catch (NoClassDefFoundError ncdfe) {
- }
- }
- if (Spawn.getInstance().getLocation() != null)
- spawnLoc = Spawn.getInstance().getLocation();
-
- if (PlayerCache.getInstance().isAuthenticated(name)) {
- return m._("logged_in");
-
- }
- if (!database.isAuthAvailable(player.getName().toLowerCase())) {
- return m._("user_unknown");
- }
-
- PlayerAuth pAuth = database.getAuth(name);
- // if Mysql is unavaible
- if(pAuth == null)
- return m._("user_unknown");
-
- //if columnGroup is set
- if(!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
- return m._("vb_nonActiv");
- }
-
- String hash = pAuth.getHash();
- String email = pAuth.getEmail();
-
+ public void performLogin(final Player player, final String password) {
+ final String name = player.getName().toLowerCase();
- try {
- if(!passpartu) {
- if (Settings.useCaptcha) {
- if(!plugin.captcha.containsKey(name)) {
- plugin.captcha.put(name, 1);
- } else {
- int i = plugin.captcha.get(name) + 1;
- plugin.captcha.remove(name);
- plugin.captcha.put(name, i);
- }
-
- if(plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
- player.sendMessage(m._("need_captcha"));
- plugin.cap.put(name, rdm.nextString());
- return "Type : /captcha " + plugin.cap.get(name);
- } else if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
- try {
- plugin.captcha.remove(name);
- plugin.cap.remove(name);
- } catch (NullPointerException npe) {
- }
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
- }
- }
- if (PasswordSecurity.comparePasswordWithHash(password, hash, name)) {
- PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
-
- database.updateSession(auth);
- PlayerCache.getInstance().addPlayer(auth);
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if (limbo != null) {
+ @Override
+ public void run() {
+ String ip = player.getAddress().getAddress().getHostAddress();
+ if (Settings.bungee) {
+ try {
+ for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
+ if (pp.getName().toLowerCase() == name) {
+ ip = pp.getAddress().getAddress().getHostAddress();
+ break;
+ }
+ }
+ } catch (NoClassDefFoundError ncdfe) {
+ }
+ }
+ World world = player.getWorld();
+ Location spawnLoc = world.getSpawnLocation();
+ if (plugin.mv != null) {
+ try {
+ spawnLoc = plugin.mv.getMVWorldManager().getMVWorld(world).getSpawnLocation();
+ } catch (NullPointerException npe) {
+ } catch (ClassCastException cce) {
+ } catch (NoClassDefFoundError ncdfe) {
+ }
+ }
+ if (Spawn.getInstance().getLocation() != null)
+ spawnLoc = Spawn.getInstance().getLocation();
+ if (PlayerCache.getInstance().isAuthenticated(name)) {
+ player.sendMessage(m._("logged_in"));
+ return;
+ }
+ if (!database.isAuthAvailable(player.getName().toLowerCase())) {
+ player.sendMessage(m._("user_unknown"));
+ return;
+ }
+ PlayerAuth pAuth = database.getAuth(name);
+ if(pAuth == null) {
+ player.sendMessage(m._("user_unknown"));
+ return;
+ }
+ if(!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
+ player.sendMessage(m._("vb_nonActiv"));
+ return;
+ }
+ String hash = pAuth.getHash();
+ String email = pAuth.getEmail();
+ try {
+ if(!passpartu) {
+ if (Settings.useCaptcha) {
+ if(!plugin.captcha.containsKey(name)) {
+ plugin.captcha.put(name, 1);
+ } else {
+ int i = plugin.captcha.get(name) + 1;
+ plugin.captcha.remove(name);
+ plugin.captcha.put(name, i);
+ }
+ if(plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
+ player.sendMessage(m._("need_captcha"));
+ plugin.cap.put(name, rdm.nextString());
+ player.sendMessage("Type : /captcha " + plugin.cap.get(name));
+ return;
+ } else if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
+ try {
+ plugin.captcha.remove(name);
+ plugin.cap.remove(name);
+ } catch (NullPointerException npe) {
+ }
+ }
+ }
+ if (PasswordSecurity.comparePasswordWithHash(password, hash, name)) {
+ PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
+ database.updateSession(auth);
+ PlayerCache.getInstance().addPlayer(auth);
+ final LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
+ PlayerAuth getAuth = database.getAuth(name);
+ if (limbo != null) {
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.setOp(limbo.getOperator());
+ }
+ });
-
- player.setOp(limbo.getOperator());
-
- this.utils.addNormal(player, limbo.getGroup());
-
-
- if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
- {
- if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0))
- {
- this.utils.packCoords(this.database.getAuth(name).getQuitLocX(), this.database.getAuth(name).getQuitLocY(), this.database.getAuth(name).getQuitLocZ(), player);
- }
- else {
+ utils.addNormal(player, limbo.getGroup());
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
-
- }
-
- }
- else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
- else if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0))
- {
- this.utils.packCoords(this.database.getAuth(name).getQuitLocX(), this.database.getAuth(name).getQuitLocY(), this.database.getAuth(name).getQuitLocZ(), player);
- }
- else {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
-
-
- player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
-
- if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
- RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- API.setPlayerInventory(player, limbo.getInventory(), limbo.getArmour());
- }
- }
+ if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
+ {
+ if ((Settings.isSaveQuitLocationEnabled) && (getAuth.getQuitLocY() != 0))
+ {
+ utils.packCoords(getAuth.getQuitLocX(), getAuth.getQuitLocY(), getAuth.getQuitLocZ(), player);
+ }
+ else {
-
- player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
- LimboCache.getInstance().deleteLimboPlayer(name);
- if (this.playerCache.doesCacheExist(name)) {
- this.playerCache.removeCache(name);
- }
-
- }
-
- /*
- * Little Work Around under Registration Group Switching for admins that
- * add Registration thru a web Scripts.
- */
- if ( Settings.isPermissionCheckEnabled && AuthMe.permission.playerInGroup(player, Settings.unRegisteredGroup) && !Settings.unRegisteredGroup.isEmpty() ) {
- AuthMe.permission.playerRemoveGroup(player.getWorld(), player.getName(), Settings.unRegisteredGroup);
- AuthMe.permission.playerAddGroup(player.getWorld(), player.getName(), Settings.getRegisteredGroup);
- }
-
- try {
- if (!PlayersLogs.players.contains(player.getName()))
- PlayersLogs.players.add(player.getName());
- pllog.save();
- } catch (NullPointerException ex) {
-
- }
-
- Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
- if (Settings.useCaptcha) {
- if(plugin.captcha.containsKey(name)) {
- plugin.captcha.remove(name);
- }
- if(plugin.cap.containsKey(name)) {
- plugin.cap.containsKey(name);
- }
- }
- player.sendMessage(m._("login"));
- displayOtherAccounts(auth);
- if(!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " logged in!");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
- }
- player.saveData();
-
- } else {
- if (!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " used the wrong password");
- if (Settings.isKickOnWrongPasswordEnabled) {
- try {
- int gm = AuthMePlayerListener.gameMode.get(name);
- player.setGameMode(GameMode.getByValue(gm));
- } catch (NullPointerException npe) {}
- player.kickPlayer(m._("wrong_pwd"));
- } else {
- return (m._("wrong_pwd"));
- }
- }
- } else {
- // need for bypass password check if passpartu command is enabled
- PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
- database.updateSession(auth);
- PlayerCache.getInstance().addPlayer(auth);
- LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
- if (limbo != null) {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ }
+ else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ else if ((Settings.isSaveQuitLocationEnabled) && (getAuth.getQuitLocY() != 0))
+ {
+ utils.packCoords(getAuth.getQuitLocX(), getAuth.getQuitLocY(), getAuth.getQuitLocZ(), player);
+ }
+ else {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
-
- player.setOp(limbo.getOperator());
-
- this.utils.addNormal(player, limbo.getGroup());
-
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
+ }
+ });
- if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
- {
- if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0)) {
- Location quitLoc = new Location(player.getWorld(), this.database.getAuth(name).getQuitLocX() + 0.5D, this.database.getAuth(name).getQuitLocY() + 0.5D, this.database.getAuth(name).getQuitLocZ() + 0.5D);
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
- else
- {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
-
- }
- else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
+ if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
+ RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (!event.isCancelled()) {
+ API.setPlayerInventory(player, limbo.getInventory(), limbo.getArmour());
+ }
+ }
+
+ player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
+ player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ if (playerCache.doesCacheExist(name)) {
+ playerCache.removeCache(name);
+ }
+ }
+
+ /*
+ * Little Work Around under Registration Group Switching for admins that
+ * add Registration thru a web Scripts.
+ */
+ if ( Settings.isPermissionCheckEnabled && AuthMe.permission.playerInGroup(player, Settings.unRegisteredGroup) && !Settings.unRegisteredGroup.isEmpty() ) {
+ AuthMe.permission.playerRemoveGroup(player.getWorld(), player.getName(), Settings.unRegisteredGroup);
+ AuthMe.permission.playerAddGroup(player.getWorld(), player.getName(), Settings.getRegisteredGroup);
+ }
+
+ try {
+ if (!PlayersLogs.players.contains(player.getName()))
+ PlayersLogs.players.add(player.getName());
+ pllog.save();
+ } catch (NullPointerException ex) {
+ }
+
+ Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
+ if (Settings.useCaptcha) {
+ if(plugin.captcha.containsKey(name)) {
+ plugin.captcha.remove(name);
+ }
+ if(plugin.cap.containsKey(name)) {
+ plugin.cap.containsKey(name);
+ }
+ }
+ player.sendMessage(m._("login"));
+ displayOtherAccounts(auth);
+ if(!Settings.noConsoleSpam)
+ ConsoleLogger.info(player.getName() + " logged in!");
+ if(plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
+ }
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.saveData();
+ }
+ });
+
+ } else {
+ if (!Settings.noConsoleSpam)
+ ConsoleLogger.info(player.getName() + " used the wrong password");
+ if (Settings.isKickOnWrongPasswordEnabled) {
+ try {
+ final int gm = AuthMePlayerListener.gameMode.get(name);
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.setGameMode(GameMode.getByValue(gm));
+ }
+ });
+ } catch (NullPointerException npe) {}
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.kickPlayer(m._("wrong_pwd"));
+ }
+ });
+ } else {
+ player.sendMessage(m._("wrong_pwd"));
+ return;
+ }
+ }
+ } else {
+ // need for bypass password check if passpartu command is enabled
+ PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
+ database.updateSession(auth);
+ PlayerCache.getInstance().addPlayer(auth);
+ final LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
+ if (limbo != null) {
+
+ Bukkit.getScheduler().runTask(plugin, new Runnable(){
+ @Override
+ public void run() {
+ player.setOp(limbo.getOperator());
+ }
+ });
+
+ utils.addNormal(player, limbo.getGroup());
+
+ if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
+ {
+ if ((Settings.isSaveQuitLocationEnabled) && (database.getAuth(name).getQuitLocY() != 0)) {
+ Location quitLoc = new Location(player.getWorld(), database.getAuth(name).getQuitLocX() + 0.5D, database.getAuth(name).getQuitLocY() + 0.5D, database.getAuth(name).getQuitLocZ() + 0.5D);
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ else
+ {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ }
+ else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
+
+ SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ else if ((Settings.isSaveQuitLocationEnabled) && (database.getAuth(name).getQuitLocY() != 0)) {
+ Location quitLoc = new Location(player.getWorld(), database.getAuth(name).getQuitLocX() + 0.5D, database.getAuth(name).getQuitLocY() + 0.5D, database.getAuth(name).getQuitLocZ() + 0.5D);
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+ else
+ {
+ AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
+ pm.callEvent(tpEvent);
+ if(!tpEvent.isCancelled()) {
+ if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
+ tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
+ }
+ final Location fLoc = tpEvent.getTo();
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.teleport(fLoc);
+ }
+ });
+ }
+ }
+
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
+ }
+ });
+
+ if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
+ RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (!event.isCancelled()) {
+ API.setPlayerInventory(player, limbo.getInventory(), limbo.getArmour());
+ }
+ }
+
+ player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
+ player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ if (playerCache.doesCacheExist(name)) {
+ playerCache.removeCache(name);
+ }
+ }
+
+ /*
+ * Little Work Around under Registration Group Switching for admins that
+ * add Registration thru a web Scripts.
+ */
+ if ( Settings.isPermissionCheckEnabled && AuthMe.permission.playerInGroup(player, Settings.unRegisteredGroup) && !Settings.unRegisteredGroup.isEmpty() ) {
+ AuthMe.permission.playerRemoveGroup(player.getWorld(), player.getName(), Settings.unRegisteredGroup);
+ AuthMe.permission.playerAddGroup(player.getWorld(), player.getName(), Settings.getRegisteredGroup);
+ }
+
+ try {
+ if (!PlayersLogs.players.contains(player.getName()))
+ PlayersLogs.players.add(player.getName());
+ pllog.save();
+ } catch (NullPointerException ex) { }
+
+ Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
+ if (Settings.useCaptcha) {
+ if(plugin.captcha.containsKey(name)) {
+ plugin.captcha.remove(name);
+ }
+ if(plugin.cap.containsKey(name)) {
+ plugin.cap.containsKey(name);
+ }
+ }
+ player.sendMessage(m._("login"));
+ displayOtherAccounts(auth);
+ if(!Settings.noConsoleSpam)
+ ConsoleLogger.info(player.getName() + " logged in!");
+ if(plugin.notifications != null) {
+ plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
+ }
+ Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ @Override
+ public void run() {
+ player.saveData();
+ }
+ });
+ passpartu = false;
+ }
+ } catch (NoSuchAlgorithmException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ player.sendMessage(m._("error"));
+ return;
+ }
+ return;
+ }
+
+ });
- SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
- else if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0)) {
- Location quitLoc = new Location(player.getWorld(), this.database.getAuth(name).getQuitLocX() + 0.5D, this.database.getAuth(name).getQuitLocY() + 0.5D, this.database.getAuth(name).getQuitLocZ() + 0.5D);
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
- else
- {
- AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
- pm.callEvent(tpEvent);
- if(!tpEvent.isCancelled()) {
- if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
- tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
- }
- player.teleport(tpEvent.getTo());
- }
- }
-
-
- player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
-
- if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
- RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- API.setPlayerInventory(player, limbo.getInventory(), limbo.getArmour());
- }
- }
-
-
- player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
- player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
- LimboCache.getInstance().deleteLimboPlayer(name);
- if (this.playerCache.doesCacheExist(name)) {
- this.playerCache.removeCache(name);
- }
- }
-
- /*
- * Little Work Around under Registration Group Switching for admins that
- * add Registration thru a web Scripts.
- */
- if ( Settings.isPermissionCheckEnabled && AuthMe.permission.playerInGroup(player, Settings.unRegisteredGroup) && !Settings.unRegisteredGroup.isEmpty() ) {
- AuthMe.permission.playerRemoveGroup(player.getWorld(), player.getName(), Settings.unRegisteredGroup);
- AuthMe.permission.playerAddGroup(player.getWorld(), player.getName(), Settings.getRegisteredGroup);
- }
-
- try {
- if (!PlayersLogs.players.contains(player.getName()))
- PlayersLogs.players.add(player.getName());
- pllog.save();
- } catch (NullPointerException ex) { }
-
- Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
- if (Settings.useCaptcha) {
- if(plugin.captcha.containsKey(name)) {
- plugin.captcha.remove(name);
- }
- if(plugin.cap.containsKey(name)) {
- plugin.cap.containsKey(name);
- }
- }
- player.sendMessage(m._("login"));
- displayOtherAccounts(auth);
- if(!Settings.noConsoleSpam)
- ConsoleLogger.info(player.getName() + " logged in!");
- if(plugin.notifications != null) {
- plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
- }
- player.saveData();
- this.passpartu = false;
- }
-
- } catch (NoSuchAlgorithmException ex) {
- ConsoleLogger.showError(ex.getMessage());
- return (m._("error"));
- }
- return "";
}
-
+
private void displayOtherAccounts(PlayerAuth auth) {
if (!Settings.displayOtherAccounts) {
return;
@@ -417,7 +499,7 @@ public class Management {
} else {
message = message + ".";
}
-
+
}
for (Player player : AuthMe.getInstance().getServer().getOnlinePlayers()) {
if (player.hasPermission("authme.seeOtherAccounts")) {
@@ -426,6 +508,5 @@ public class Management {
}
}
}
-
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/PerformBackup.java b/src/main/java/uk/org/whoami/authme/PerformBackup.java
index 5d995f1e4..dd69ceb29 100644
--- a/src/main/java/uk/org/whoami/authme/PerformBackup.java
+++ b/src/main/java/uk/org/whoami/authme/PerformBackup.java
@@ -4,7 +4,6 @@
*/
package uk.org.whoami.authme;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -20,7 +19,7 @@ import uk.org.whoami.authme.settings.Settings;
* @author stefano
*/
public class PerformBackup {
-
+
private String dbName = Settings.getMySQLDatabase;
private String dbUserName = Settings.getMySQLUsername;
private String dbPassword = Settings.getMySQLPassword;
@@ -29,14 +28,13 @@ public class PerformBackup {
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 boolean DoBackup() {
-
+
switch(Settings.getDataSource) {
case FILE: return FileBackup("auths.db");
@@ -45,24 +43,21 @@ public class PerformBackup {
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";
- //ConsoleLogger.info(executeCmd);
Process runtimeProcess;
try {
- //System.out.println("path "+path+" cmd "+executeCmd);
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
int processComplete = runtimeProcess.waitFor();
-
if (processComplete == 0) {
ConsoleLogger.info("Backup created successfully");
return true;
@@ -76,10 +71,8 @@ public class PerformBackup {
String executeCmd = "mysqldump -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
Process runtimeProcess;
try {
- //System.out.println("path "+path+" cmd "+executeCmd);
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
int processComplete = runtimeProcess.waitFor();
-
if (processComplete == 0) {
ConsoleLogger.info("Backup created successfully");
return true;
@@ -92,35 +85,30 @@ public class PerformBackup {
}
return false;
}
-
+
private boolean FileBackup(String backend) {
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) {
- //ConsoleLogger.info(windowsPath+"\\bin\\mysqldump.exe");
if(new File(windowsPath+"\\bin\\mysqldump.exe").exists()) {
return true;
} else {
@@ -128,8 +116,6 @@ public class PerformBackup {
return true;
}
} else return false;
-
-
}
/*
@@ -156,5 +142,5 @@ public void setInstance(AuthMe instance) {
public AuthMe getInstance() {
return instance;
}
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/SendMailSSL.java b/src/main/java/uk/org/whoami/authme/SendMailSSL.java
index f15a906f4..1f8bc4377 100644
--- a/src/main/java/uk/org/whoami/authme/SendMailSSL.java
+++ b/src/main/java/uk/org/whoami/authme/SendMailSSL.java
@@ -14,24 +14,28 @@ import org.bukkit.Bukkit;
import uk.org.whoami.authme.cache.auth.PlayerAuth;
import uk.org.whoami.authme.settings.Settings;
-
+
+/**
+*
+* @author Xephi59
+*/
public class SendMailSSL {
-
+
public AuthMe instance;
-
+
public SendMailSSL(AuthMe instance) {
this.instance = instance;
}
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;
}
-
+
Properties props = new Properties();
props.put("mail.smtp.host", Settings.getmailSMTP);
props.put("mail.smtp.socketFactory.port", String.valueOf(Settings.getMailPort));
@@ -39,7 +43,7 @@ public class SendMailSSL {
"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() {
@@ -48,7 +52,7 @@ public class SendMailSSL {
});
try {
-
+
final Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(Settings.getmailAccount, sendername));
@@ -63,9 +67,7 @@ public class SendMailSSL {
text = text.replaceAll("", instance.getServer().getServerName());
text = text.replaceAll("", newPass);
message.setText(text);
-
Bukkit.getScheduler().runTaskAsynchronously(instance, new Runnable() {
-
@Override
public void run() {
try {
@@ -73,16 +75,13 @@ public class SendMailSSL {
} catch (MessagingException e) {
e.printStackTrace();
}
-
}
-
});
-
if(!Settings.noConsoleSpam)
ConsoleLogger.info("Email sent to : " + auth.getNickname());
-
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
-}
\ No newline at end of file
+
+}
diff --git a/src/main/java/uk/org/whoami/authme/Utils.java b/src/main/java/uk/org/whoami/authme/Utils.java
index 9e28d0e8d..f313422e7 100644
--- a/src/main/java/uk/org/whoami/authme/Utils.java
+++ b/src/main/java/uk/org/whoami/authme/Utils.java
@@ -24,23 +24,17 @@ import uk.org.whoami.authme.settings.Settings;
* @author stefano
*/
public class Utils {
- //private Settings settings = Settings.getInstance();
private String currentGroup;
private static Utils singleton;
private String unLoggedGroup = Settings.getUnloggedinGroup;
BukkitTask id;
- /*
- public Utils(Player player) {
- this.player = player;
-
- }
- */
+
public void setGroup(Player player, groupType group) {
if (!player.isOnline())
return;
if(!Settings.isPermissionCheckEnabled)
return;
-
+
switch(group) {
case UNREGISTERED: {
currentGroup = AuthMe.permission.getPrimaryGroup(player);
@@ -57,95 +51,74 @@ public class Utils {
}
return;
}
-
+
public String removeAll(Player player) {
+
if(!Utils.getInstance().useGroupSystem()){
return null;
}
-
if( !Settings.getJoinPermissions.isEmpty() ) {
hasPermOnJoin(player);
}
-
this.currentGroup = AuthMe.permission.getPrimaryGroup(player.getWorld(),player.getName().toString());
- //System.out.println("current grop" + currentGroup);
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(), currentGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup)) {
-
return currentGroup;
}
-
return null;
-
}
-
+
public boolean addNormal(Player player, String group) {
if(!Utils.getInstance().useGroupSystem()){
return false;
- }
- // System.out.println("in add normal");
- /* if (AuthMe.permission.playerRemove(this.player, "-*"))
- return true;
- */
+ }
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),group)) {
- //System.out.println("vecchio "+this.unLoggedGroup+ "nuovo" + group);
return true;
-
}
return false;
- }
+ }
private String hasPermOnJoin(Player player) {
- /* if(Settings.getJoinPermissions.isEmpty())
- return null; */
- Iterator iter = Settings.getJoinPermissions.iterator();
- while (iter.hasNext()) {
- String permission = iter.next();
- // System.out.println("permissions? "+ permission);
-
- if(AuthMe.permission.playerHas(player, permission)){
- // System.out.println("player has permissions " +permission);
- AuthMe.permission.playerAddTransient(player, permission);
- }
- }
- return null;
+
+ Iterator iter = Settings.getJoinPermissions.iterator();
+ while (iter.hasNext()) {
+ String permission = iter.next();
+ if(AuthMe.permission.playerHas(player, permission)){
+ AuthMe.permission.playerAddTransient(player, permission);
+ }
+ }
+ return null;
}
-
+
public boolean isUnrestricted(Player player) {
-
-
+
if(Settings.getUnrestrictedName.isEmpty() || Settings.getUnrestrictedName == null)
return false;
-
- // System.out.println("name to escape "+player.getName());
- if(Settings.getUnrestrictedName.contains(player.getName())) {
- // System.out.println("name to escape correctly"+player.getName());
+
+ if(Settings.getUnrestrictedName.contains(player.getName()))
return true;
- }
-
+
return false;
-
-
+
}
public static Utils getInstance() {
-
- singleton = new Utils();
-
- return singleton;
+
+ singleton = new Utils();
+
+ return singleton;
}
-
+
private boolean useGroupSystem() {
-
+
if(Settings.isPermissionCheckEnabled && !Settings.getUnloggedinGroup.isEmpty()) {
return true;
} return false;
-
}
-
+
public void packCoords(int x, int y, int z, final Player pl)
{
final World world = pl.getWorld();
final int fY = y;
- final Location loc = new Location(world, x + 0.5D, y + 0.6D, z + 0.5D);
+ final Location loc = new Location(world, x, y + 0.6D, z);
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(pl, loc);
AuthMe.getInstance().getServer().getPluginManager().callEvent(tpEvent);
@@ -154,31 +127,25 @@ public class Utils {
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
pl.teleport(tpEvent.getTo());
}
-
+
id = Bukkit.getScheduler().runTaskTimer(AuthMe.authme, new Runnable()
{
@Override
public void run() {
int current = (int)pl.getLocation().getY();
World currentWorld = pl.getWorld();
-
if (current != fY && world.getName() == currentWorld.getName()) {
pl.teleport(loc);
}
}
-
}, 1L, 20L);
-
-
Bukkit.getScheduler().runTaskLaterAsynchronously(AuthMe.authme, new Runnable()
{
-
@Override
public void run() {
id.cancel();
}
-
}, 60L);
}
@@ -205,34 +172,27 @@ public class Utils {
} catch(Exception e) {
e.printStackTrace();
}
-
-
return false;
}
-
+
/*
* Read Toekn
*/
public boolean readToken(String inputToken) {
File file = new File("plugins/AuthMe/passpartu.token");
-
+
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(":");
- //System.err.println("Authme input token "+inputToken+" saved token "+tokenInfo[0]);
- //System.err.println("Authme time "+System.currentTimeMillis()/1000+"saved time "+Integer.parseInt(tokenInfo[1]));
if(tokenInfo[0].equals(inputToken) && System.currentTimeMillis()/1000-30 <= Integer.parseInt(tokenInfo[1]) ) {
file.delete();
reader.close();
@@ -243,7 +203,6 @@ public class Utils {
} catch(Exception e) {
e.printStackTrace();
}
-
reader.close();
return false;
}
@@ -251,19 +210,18 @@ public class Utils {
* Generate Random Token
*/
private String generateToken() {
- // obtain new random token
+ // 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);
}
+
public enum groupType {
UNREGISTERED, REGISTERED, NOTLOGGEDIN, LOGGEDIN
}
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/api/API.java b/src/main/java/uk/org/whoami/authme/api/API.java
index eb0a8e318..6cec7d55e 100644
--- a/src/main/java/uk/org/whoami/authme/api/API.java
+++ b/src/main/java/uk/org/whoami/authme/api/API.java
@@ -19,10 +19,10 @@ import uk.org.whoami.authme.security.PasswordSecurity.HashAlgorithm;
import uk.org.whoami.authme.settings.Settings;
public class API {
-
+
public AuthMe instance;
public DataSource database;
-
+
public API(AuthMe instance, DataSource database) {
this.instance = instance;
this.database = database;
@@ -42,7 +42,7 @@ public class API {
public AuthMe getPlugin() {
return instance;
}
-
+
/**
*
* @param player
@@ -51,7 +51,7 @@ public class API {
public static boolean isAuthenticated(Player player) {
return PlayerCache.getInstance().isAuthenticated(player.getName());
}
-
+
/**
*
* @param player
@@ -60,7 +60,7 @@ public class API {
public boolean isaNPC(Player player) {
return instance.getCitizensCommunicator().isNPC(player, instance);
}
-
+
/**
*
* @param player
@@ -69,43 +69,43 @@ public class API {
public static boolean isUnrestricted(Player player) {
return Utils.getInstance().isUnrestricted(player);
}
-
+
public static boolean isChatAllowed() {
return Settings.isChatAllowed;
}
-
+
public static boolean isAllowRestrictedIp() {
return Settings.isAllowRestrictedIp;
}
-
+
public static boolean isBackupActivated() {
return Settings.isBackupActivated;
}
-
+
public static boolean isForceSpawnLocOnJoinEnabled() {
return Settings.isForceSpawnLocOnJoinEnabled;
}
-
+
public static DataSourceType getDataSource() {
return Settings.getDataSource;
}
-
+
public static int getMovementRadius() {
return Settings.getMovementRadius;
}
-
+
public static List getJoinPermissions() {
return Settings.getJoinPermissions;
}
-
+
public static Boolean isPasspartuEnable() {
return Settings.enablePasspartu;
}
-
+
public static String getcUnrestrictedName() {
return Settings.getcUnrestrictedName;
}
-
+
public static Boolean getEnablePasswordVerifier() {
return Settings.getEnablePasswordVerifier;
}
@@ -113,11 +113,11 @@ public class API {
public static int getMaxNickLength() {
return Settings.getMaxNickLength;
}
-
+
public static int getMinNickLength() {
return Settings.getMinNickLength;
}
-
+
public static Array getLastLocationColumns() {
Array columns = null;
Array.set(columns, 0, Settings.getMySQLlastlocX);
@@ -125,7 +125,7 @@ public class API {
Array.set(columns, 2, Settings.getMySQLlastlocZ);
return columns;
}
-
+
public static Location getLastLocation(Player player) {
try {
PlayerAuth auth = PlayerCache.getInstance().getAuth(player.getName());
@@ -140,52 +140,47 @@ public class API {
} catch (NullPointerException ex) {
return null;
}
-
}
-
+
public static String getNickRegex() {
return Settings.getNickRegex;
}
-
+
public static int getPasswordMinLen() {
return Settings.getPasswordMinLen;
}
-
+
public static HashAlgorithm getPasswordHash() {
return Settings.getPasswordHash;
}
-
+
public static int getRegistrationTimeout() {
return Settings.getRegistrationTimeout;
}
-
+
public static int getSessionTimeout() {
return Settings.getSessionTimeout;
}
-
+
public static String getUnloggedinGroup() {
return Settings.getUnloggedinGroup;
}
-
+
public static void setPlayerInventory(Player player, ItemStack[] content, ItemStack[] armor) {
try {
player.getInventory().setContents(content);
player.getInventory().setArmorContents(armor);
} catch (NullPointerException npe) {
}
-
-
}
-
+
public void saveAuth(final PlayerAuth auth) {
instance.getServer().getScheduler().runTask(instance, new Runnable() {
-
@Override
public void run() {
database.saveAuth(auth);
}
-
});
}
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/cache/auth/PlayerAuth.java b/src/main/java/uk/org/whoami/authme/cache/auth/PlayerAuth.java
index 37cff4f95..eab1ccaf6 100644
--- a/src/main/java/uk/org/whoami/authme/cache/auth/PlayerAuth.java
+++ b/src/main/java/uk/org/whoami/authme/cache/auth/PlayerAuth.java
@@ -19,7 +19,6 @@ package uk.org.whoami.authme.cache.auth;
import uk.org.whoami.authme.security.PasswordSecurity;
import uk.org.whoami.authme.settings.Settings;
-
public class PlayerAuth {
private String nickname;
@@ -33,14 +32,14 @@ public class PlayerAuth {
private String vBhash = null;
private int groupId;
private String email = "your@email.com";
-
+
public PlayerAuth(String nickname, String hash, String ip, long lastLogin) {
this.nickname = nickname;
this.hash = hash;
this.ip = ip;
this.lastLogin = lastLogin;
}
-
+
public PlayerAuth(String nickname, String hash, String ip, long lastLogin, String email) {
this.nickname = nickname;
this.hash = hash;
@@ -48,14 +47,14 @@ public class PlayerAuth {
this.lastLogin = lastLogin;
this.email = email;
}
-
+
public PlayerAuth(String nickname, int x, int y, int z) {
this.nickname = nickname;
this.x = x;
this.y = y;
this.z = z;
}
-
+
public PlayerAuth(String nickname, String hash, String ip, long lastLogin, int x, int y, int z, String email) {
this.nickname = nickname;
this.hash = hash;
@@ -66,10 +65,7 @@ public class PlayerAuth {
this.z = z;
this.email = email;
}
-
- //
- // This constructor is needed for Vbulletin board Auth!
- //
+
public PlayerAuth(String nickname, String hash, String salt, int groupId, String ip, long lastLogin, int x, int y, int z, String email) {
this.nickname = nickname;
this.hash = hash;
@@ -82,8 +78,7 @@ public class PlayerAuth {
this.groupId = groupId;
this.email = email;
}
-
- // IPB Constructor with groups
+
public PlayerAuth(String nickname, String hash, String salt, int groupId , String ip, long lastLogin) {
this.nickname = nickname;
this.hash = hash;
@@ -92,8 +87,7 @@ public class PlayerAuth {
this.salt = salt;
this.groupId = groupId;
}
-
- // IPB Constructor without groups
+
public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin) {
this.nickname = nickname;
this.hash = hash;
@@ -101,7 +95,7 @@ public class PlayerAuth {
this.lastLogin = lastLogin;
this.salt = salt;
}
-
+
public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin, int x, int y, int z, String email) {
this.nickname = nickname;
this.hash = hash;
@@ -114,7 +108,6 @@ public class PlayerAuth {
this.email = email;
}
-
public PlayerAuth(String nickname, String hash, String ip, long lastLogin, int x, int y, int z) {
this.nickname = nickname;
this.hash = hash;
@@ -126,7 +119,6 @@ public class PlayerAuth {
this.email = "your@email.com";
}
-
public String getIp() {
return ip;
}
@@ -138,26 +130,21 @@ public class PlayerAuth {
public String getHash() {
if(!salt.isEmpty() && Settings.getPasswordHash == PasswordSecurity.HashAlgorithm.MD5VB) {
vBhash = "$MD5vb$"+salt+"$"+hash;
- // Compose Vbullettin Hash System!
return vBhash;
}
else {
return hash;
}
}
-
- //Get Salt
+
public String getSalt() {
return this.salt;
}
-
- //
- // GroupId for unactivated User on Vbullettin Board
- //
+
public int getGroupId() {
return groupId;
}
-
+
public int getQuitLocX() {
return x;
}
@@ -194,11 +181,11 @@ public class PlayerAuth {
public void setLastLogin(long lastLogin) {
this.lastLogin = lastLogin;
}
-
+
public void setEmail(String email) {
this.email = email;
}
-
+
public void setSalt(String salt) {
this.salt = salt;
}
@@ -209,7 +196,6 @@ public class PlayerAuth {
return false;
}
PlayerAuth other = (PlayerAuth) obj;
-
return other.getIp().equals(this.ip) && other.getNickname().equals(this.nickname);
}
@@ -220,4 +206,5 @@ public class PlayerAuth {
hashCode = 71 * hashCode + (this.ip != null ? this.ip.hashCode() : 0);
return hashCode;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/cache/auth/PlayerCache.java b/src/main/java/uk/org/whoami/authme/cache/auth/PlayerCache.java
index 505fdad42..ccba6ef29 100644
--- a/src/main/java/uk/org/whoami/authme/cache/auth/PlayerCache.java
+++ b/src/main/java/uk/org/whoami/authme/cache/auth/PlayerCache.java
@@ -54,4 +54,5 @@ public class PlayerCache {
}
return singleton;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/cache/backup/DataFileCache.java b/src/main/java/uk/org/whoami/authme/cache/backup/DataFileCache.java
index 908163a22..eaf7b6565 100644
--- a/src/main/java/uk/org/whoami/authme/cache/backup/DataFileCache.java
+++ b/src/main/java/uk/org/whoami/authme/cache/backup/DataFileCache.java
@@ -12,24 +12,22 @@ import org.bukkit.inventory.ItemStack;
public class DataFileCache {
-
private ItemStack[] inventory;
private ItemStack[] armor;
- private String group;
- private boolean operator;
+ private String group;
+ private boolean operator;
public DataFileCache(ItemStack[] inventory, ItemStack[] armor){
this.inventory = inventory;
this.armor = armor;
-
}
public DataFileCache(ItemStack[] inventory, ItemStack[] armor, String group, boolean operator){
this.inventory = inventory;
this.armor = armor;
- this.group = group;
- this.operator = operator;
- }
+ this.group = group;
+ this.operator = operator;
+ }
public ItemStack[] getInventory(){
return inventory;
}
@@ -37,13 +35,13 @@ public class DataFileCache {
public ItemStack[] getArmour(){
return armor;
}
-
+
public String getGroup(){
return group;
}
-
+
public Boolean getOperator(){
return operator;
- }
-}
+ }
+}
diff --git a/src/main/java/uk/org/whoami/authme/cache/backup/FileCache.java b/src/main/java/uk/org/whoami/authme/cache/backup/FileCache.java
index 240d35b2e..a5841af8d 100644
--- a/src/main/java/uk/org/whoami/authme/cache/backup/FileCache.java
+++ b/src/main/java/uk/org/whoami/authme/cache/backup/FileCache.java
@@ -15,11 +15,8 @@ import java.util.Scanner;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
-
public class FileCache {
- //private HashMap ench;
-
-
+
public FileCache() {
final File folder = new File("cache");
if (!folder.exists()) {
@@ -40,17 +37,13 @@ public class FileCache {
file.createNewFile();
writer = new FileWriter(file);
-
- // put player group in cache
- // put if player is an op or not 1: is op 0: isnet op!
- // line format Group|OperatorStatus
-
- if(operator)
- writer.write(group+";1\r\n");
- else writer.write(group+";0\r\n");
-
- writer.flush();
-
+
+ // line format Group|OperatorStatus
+ if(operator)
+ writer.write(group+";1\r\n");
+ else writer.write(group+";0\r\n");
+ writer.flush();
+
ItemStack[] invstack = playerData.getInventory();
for (int i = 0; i < invstack.length; i++) {
@@ -58,24 +51,15 @@ public class FileCache {
int itemid = 0;
int amount = 0;
int durability = 0;
- String enchList = "";
- //ench = new HashMap();
-
+ String enchList = "";
if (invstack[i] != null) {
itemid = invstack[i].getTypeId();
amount = invstack[i].getAmount();
durability = invstack[i].getDurability();
-
-
- for(Enchantment e : invstack[i].getEnchantments().keySet())
- {
- //System.out.println("enchant "+e.getName()+" bog "+invstack[i].getEnchantmentLevel(e));
- enchList = enchList.concat(e.getName()+":"+invstack[i].getEnchantmentLevel(e)+":");
- //System.out.println(enchList);
-
- }
- }
-
+ for(Enchantment e : invstack[i].getEnchantments().keySet()) {
+ enchList = enchList.concat(e.getName()+":"+invstack[i].getEnchantmentLevel(e)+":");
+ }
+ }
writer.write("i" + ":" + itemid + ":" + amount + ":"
+ durability + ":"+ enchList + "\r\n");
writer.flush();
@@ -87,27 +71,19 @@ public class FileCache {
int itemid = 0;
int amount = 0;
int durability = 0;
- String enchList = "";
-
+ String enchList = "";
if (armorstack[i] != null) {
itemid = armorstack[i].getTypeId();
amount = armorstack[i].getAmount();
durability = armorstack[i].getDurability();
-
- for(Enchantment e : armorstack[i].getEnchantments().keySet())
- {
- //System.out.println("enchant "+e.getName()+" bog "+armorstack[i].getEnchantmentLevel(e));
- enchList = enchList.concat(e.getName()+":"+armorstack[i].getEnchantmentLevel(e)+":");
- //System.out.println(enchList);
-
- }
+ for(Enchantment e : armorstack[i].getEnchantments().keySet()) {
+ enchList = enchList.concat(e.getName()+":"+armorstack[i].getEnchantmentLevel(e)+":");
+ }
}
-
writer.write("w" + ":" + itemid + ":" + amount + ":"
+ durability + ":"+ enchList + "\r\n");
writer.flush();
}
-
writer.close();
} catch (final Exception e) {
e.printStackTrace();
@@ -120,9 +96,8 @@ public class FileCache {
ItemStack[] stacki = new ItemStack[36];
ItemStack[] stacka = new ItemStack[4];
- String group = null;
- boolean op = false;
-
+ String group = null;
+ boolean op = false;
if (!file.exists()) {
return new DataFileCache(stacki, stacka);
}
@@ -149,41 +124,31 @@ public class FileCache {
}
final String[] in = line.split(":");
-
- /*if (in.length != 4) {
- continue;
- } */
-
if (!in[0].equals("i") && !in[0].equals("w")) {
continue;
}
// can enchant item? size ofstring in file - 4 all / 2 = number of enchant
if (in[0].equals("i")) {
-
stacki[i] = new ItemStack(Integer.parseInt(in[1]),
- Integer.parseInt(in[2]), Short.parseShort((in[3])));
- // qui c'e' un problema serio!
- if(in.length > 4 && !in[4].isEmpty()) {
- for(int k=4;k 4 && !in[4].isEmpty()) {
+ for(int k=4;k 4 && !in[4].isEmpty()) {
- for(int k=4;k 4 && !in[4].isEmpty()) {
+ for(int k=4;k cache;
private FileCache playerData = new FileCache();
public AuthMe plugin;
-
+
private LimboCache(AuthMe plugin) {
this.plugin = plugin;
this.cache = new HashMap();
@@ -49,7 +49,7 @@ public class LimboCache {
ItemStack[] inv;
boolean operator;
String playerGroup = "";
-
+
if (playerData.doesCacheExist(name)) {
StoreInventoryEvent event = new StoreInventoryEvent(player, playerData);
Bukkit.getServer().getPluginManager().callEvent(event);
@@ -72,7 +72,6 @@ public class LimboCache {
inv = null;
arm = null;
}
-
if(player.isOp() ) {
operator = true;
} else {
@@ -80,8 +79,6 @@ public class LimboCache {
}
}
-
-
if(Settings.isForceSurvivalModeEnabled) {
if(Settings.isResetInventoryIfCreative && gameMode != 0 ) {
ResetInventoryEvent event = new ResetInventoryEvent(player);
@@ -100,7 +97,6 @@ public class LimboCache {
loc = plugin.mv.getMVWorldManager().getMVWorld(player.getWorld().getName()).getSpawnLocation();
} catch (NullPointerException npe) {}
}
-
}
try {
if(cache.containsKey(name) && playerGroup.isEmpty()) {
@@ -109,15 +105,13 @@ public class LimboCache {
}
} catch (NullPointerException ex) {
}
-
cache.put(player.getName().toLowerCase(), new LimboPlayer(name, loc, inv, arm, gameMode, operator, playerGroup));
}
-
+
public void addLimboPlayer(Player player, String group) {
-
cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group));
}
-
+
public void deleteLimboPlayer(String name) {
cache.remove(name);
}
@@ -129,8 +123,7 @@ public class LimboCache {
public boolean hasLimboPlayer(String name) {
return cache.containsKey(name);
}
-
-
+
public static LimboCache getInstance() {
if (singleton == null) {
singleton = new LimboCache(AuthMe.getInstance());
@@ -144,4 +137,5 @@ public class LimboCache {
}
this.addLimboPlayer(player);
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/cache/limbo/LimboPlayer.java b/src/main/java/uk/org/whoami/authme/cache/limbo/LimboPlayer.java
index a688f3707..d4291b233 100644
--- a/src/main/java/uk/org/whoami/authme/cache/limbo/LimboPlayer.java
+++ b/src/main/java/uk/org/whoami/authme/cache/limbo/LimboPlayer.java
@@ -40,7 +40,7 @@ public class LimboPlayer {
this.operator = operator;
this.group = group;
}
-
+
public LimboPlayer(String name, Location loc, int gameMode, boolean operator, String group) {
this.name = name;
this.loc = loc;
@@ -48,13 +48,12 @@ public class LimboPlayer {
this.operator = operator;
this.group = group;
}
-
+
public LimboPlayer(String name, String group) {
this.name = name;
this.group = group;
}
-
-
+
public String getName() {
return name;
}
@@ -74,11 +73,11 @@ public class LimboPlayer {
public int getGameMode() {
return gameMode;
}
-
+
public boolean getOperator() {
return operator;
}
-
+
public String getGroup() {
return group;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java b/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
index e47552835..ed9f89b06 100644
--- a/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
@@ -21,12 +21,14 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
+import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@@ -52,14 +54,12 @@ import uk.org.whoami.authme.settings.Spawn;
import uk.org.whoami.authme.settings.SpoutCfg;
public class AdminCommand implements CommandExecutor {
-
- public AuthMe plugin;
+ public AuthMe plugin;
private Messages m = Messages.getInstance();
private SpoutCfg s = SpoutCfg.getInstance();
- //private Settings settings = Settings.getInstance();
public DataSource database;
-
+
public AdminCommand(AuthMe plugin, DataSource database) {
this.database = database;
this.plugin = plugin;
@@ -77,13 +77,12 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("/authme lastlogin - Display Date about the Player's LastLogin");
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 {
@@ -91,40 +90,32 @@ public class AdminCommand implements CommandExecutor {
}
return true;
}
-
-
+
if (!sender.hasPermission("authme.admin." + args[0].toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
-
-
+
if (args[0].equalsIgnoreCase("version")) {
sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion());
return true;
}
-
-
+
if (args[0].equalsIgnoreCase("purge")) {
if (args.length != 2) {
sender.sendMessage("Usage: /authme purge ");
return true;
}
-
try {
long days = Long.parseLong(args[1]) * 86400000;
long until = new Date().getTime() - days;
-
sender.sendMessage("Deleted " + database.purgeDatabase(until) + " user accounts");
-
} catch (NumberFormatException e) {
sender.sendMessage("Usage: /authme purge ");
return true;
}
} else if (args[0].equalsIgnoreCase("reload")) {
database.reload();
-
- //Trying to load config from JAR-Ressources, if config.yml doesn't exist...
File newConfigFile = new File("plugins/AuthMe","config.yml");
if (!newConfigFile.exists()) {
InputStream fis = getClass().getResourceAsStream("/config.yml");
@@ -186,7 +177,6 @@ public class AdminCommand implements CommandExecutor {
final CommandSender fSender = sender;
final String[] arguments = args;
Bukkit.getScheduler().runTask(plugin, new Runnable() {
-
@Override
public void run() {
PlayerAuth pAuth = null;
@@ -223,16 +213,13 @@ public class AdminCommand implements CommandExecutor {
fSender.sendMessage("[AuthMe] This player is unknown");
return;
}
-
}
-
});
return true;
} else {
final CommandSender fSender = sender;
final String[] arguments = args;
Bukkit.getScheduler().runTask(plugin, new Runnable() {
-
@Override
public void run() {
String message = "[AuthMe] ";
@@ -262,9 +249,7 @@ public class AdminCommand implements CommandExecutor {
fSender.sendMessage("[AuthMe] Please put a valid IP");
return;
}
-
}
-
});
return true;
}
@@ -273,16 +258,13 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme register playername password");
return true;
}
-
try {
String name = args[1].toLowerCase();
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
-
if (database.isAuthAvailable(name)) {
sender.sendMessage(m._("user_regged"));
return true;
}
-
PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0);
if (!database.saveAuth(auth)) {
sender.sendMessage(m._("error"));
@@ -304,7 +286,6 @@ public class AdminCommand implements CommandExecutor {
} catch (NullPointerException ex) {
System.out.println(ex.getMessage());
}
-
} else if (args[0].equalsIgnoreCase("xauthimport")) {
xAuthToFlat converter = new xAuthToFlat(plugin, database);
if (converter.convert(sender)) {
@@ -312,7 +293,6 @@ public class AdminCommand implements CommandExecutor {
} else {
sender.sendMessage("[AuthMe] Error while trying to convert from xAuth database");
}
-
} else if (args[0].equalsIgnoreCase("getemail")) {
if (args.length != 2) {
sender.sendMessage("Usage: /authme getemail playername");
@@ -322,7 +302,6 @@ public class AdminCommand implements CommandExecutor {
PlayerAuth getAuth = PlayerCache.getInstance().getAuth(playername);
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");
@@ -337,7 +316,6 @@ public class AdminCommand implements CommandExecutor {
}
PlayerCache.getInstance().updatePlayer(getAuth);
return true;
-
} else if (args[0].equalsIgnoreCase("convertfromrakamak")) {
try {
RakamakConverter.RakamakConvert();
@@ -348,7 +326,6 @@ public class AdminCommand implements CommandExecutor {
} catch (NullPointerException ex) {
ConsoleLogger.showError(ex.getMessage());
}
-
} else if (args[0].equalsIgnoreCase("setspawn")) {
try {
if (sender instanceof Player) {
@@ -361,7 +338,18 @@ public class AdminCommand implements CommandExecutor {
} catch (NullPointerException ex) {
ConsoleLogger.showError(ex.getMessage());
}
-
+ } 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;
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ database.purgeBanned(bP);
+ }
+ });
} else if (args[0].equalsIgnoreCase("spawn")) {
try {
if (sender instanceof Player) {
@@ -374,17 +362,14 @@ public class AdminCommand implements CommandExecutor {
} catch (NullPointerException ex) {
ConsoleLogger.showError(ex.getMessage());
}
-
} 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);
-
PlayerAuth auth = null;
if (PlayerCache.getInstance().isAuthenticated(name)) {
auth = PlayerCache.getInstance().getAuth(name);
@@ -395,12 +380,10 @@ public class AdminCommand implements CommandExecutor {
return true;
}
auth.setHash(hash);
-
if (!database.updatePassword(auth)) {
sender.sendMessage(m._("error"));
return true;
}
-
sender.sendMessage("pwd_changed");
ConsoleLogger.info(args[1] + "'s password changed");
} catch (NoSuchAlgorithmException ex) {
@@ -412,17 +395,13 @@ public class AdminCommand implements CommandExecutor {
sender.sendMessage("Usage: /authme unregister playername");
return true;
}
-
String name = args[1].toLowerCase();
-
if (!database.removeAuth(name)) {
sender.sendMessage(m._("error"));
return true;
}
-
PlayerCache.getInstance().removePlayer(name);
sender.sendMessage("unregistered");
-
ConsoleLogger.info(args[1] + " unregistered");
} else {
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
diff --git a/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java b/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
index fbb854410..406c4efea 100644
--- a/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
@@ -12,33 +12,31 @@ import uk.org.whoami.authme.settings.Messages;
import uk.org.whoami.authme.settings.Settings;
public class CaptchaCommand implements CommandExecutor {
-
+
public AuthMe plugin;
private Messages m = Messages.getInstance();
public static RandomString rdm = new RandomString(Settings.captchaLength);
-
+
public CaptchaCommand(AuthMe plugin) {
this.plugin = plugin;
}
-
-
+
@Override
public boolean onCommand(CommandSender sender, Command cmnd,
String label, String[] args) {
-
+
if (!(sender instanceof Player)) {
return true;
}
-
+
Player player = (Player) sender;
String name = player.getName().toLowerCase();
-
-
+
if (args.length == 0) {
player.sendMessage(m._("usage_captcha"));
return true;
}
-
+
if (PlayerCache.getInstance().isAuthenticated(name)) {
player.sendMessage(m._("logged_in"));
return true;
@@ -48,12 +46,12 @@ public class CaptchaCommand implements CommandExecutor {
player.sendMessage(m._("no_perm"));
return true;
}
-
+
if (!Settings.useCaptcha) {
player.sendMessage(m._("usage_log"));
return true;
}
-
+
if(!plugin.cap.containsKey(name)) {
player.sendMessage(m._("usage_log"));
return true;
@@ -70,12 +68,9 @@ public class CaptchaCommand implements CommandExecutor {
plugin.cap.remove(name);
} catch (NullPointerException npe) {
}
-
player.sendMessage("Your captcha is correct");
player.sendMessage(m._("login_msg"));
return true;
-
-
}
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java b/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
index 32e0c5f4b..2c0d71e52 100644
--- a/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
@@ -37,7 +37,6 @@ import uk.org.whoami.authme.settings.Settings;
public class ChangePasswordCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
- //private Settings settings = Settings.getInstance();
private DataSource database;
public AuthMe plugin;
@@ -63,7 +62,7 @@ public class ChangePasswordCommand implements CommandExecutor {
player.sendMessage(m._("not_logged_in"));
return true;
}
-
+
if (args.length != 2) {
player.sendMessage(m._("usage_changepassword"));
return true;
diff --git a/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java b/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
index f686f1189..54830dd18 100644
--- a/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
@@ -34,25 +34,25 @@ import uk.org.whoami.authme.settings.Settings;
/**
*
- * @author darkwarriors
+ * @author Xephi59
*/
public class EmailCommand implements CommandExecutor {
public AuthMe plugin;
private DataSource data;
private Messages m = Messages.getInstance();
-
+
public EmailCommand(AuthMe plugin, DataSource data) {
this.plugin = plugin;
this.data = data;
}
-
+
@Override
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
if (!(sender instanceof Player)) {
return true;
}
-
+
if (!sender.hasPermission("authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
@@ -61,13 +61,13 @@ public class EmailCommand implements CommandExecutor {
Player player = (Player) sender;
String name = player.getName().toLowerCase();
- if (args.length == 0) {
- player.sendMessage("usage: /email add ");
- player.sendMessage("usage: /email change ");
- player.sendMessage("usage: /email recovery ");
- return true;
- }
-
+ if (args.length == 0) {
+ player.sendMessage("usage: /email add ");
+ player.sendMessage("usage: /email change ");
+ player.sendMessage("usage: /email recovery ");
+ return true;
+ }
+
if(args[0].equalsIgnoreCase("add")) {
if (args.length != 3) {
player.sendMessage("[AuthMe] /email add ");
@@ -148,7 +148,6 @@ public class EmailCommand implements CommandExecutor {
player.sendMessage(m._("logged_in"));
return true;
}
-
try {
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
String thePass = rand.nextString();
@@ -171,19 +170,14 @@ public class EmailCommand implements CommandExecutor {
player.sendMessage("[AuthMe] Invalid Email");
return true;
}
-
final String finalhashnew = hashnew;
final PlayerAuth finalauth = auth;
-
- Bukkit.getScheduler().runTask(plugin, new Runnable() {
-
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
finalauth.setHash(finalhashnew);
data.updatePassword(finalauth);
-
}
-
});
plugin.mail.main(auth, thePass);
player.sendMessage("[AuthMe] Recovery Email Send !");
@@ -198,7 +192,6 @@ public class EmailCommand implements CommandExecutor {
player.sendMessage(m._("reg_msg"));
}
}
-
return true;
}
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java b/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
index 01018725f..e8c8f546b 100644
--- a/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
@@ -23,13 +23,12 @@ import org.bukkit.entity.Player;
import uk.org.whoami.authme.AuthMe;
import uk.org.whoami.authme.settings.Messages;
-import uk.org.whoami.authme.settings.Settings;
public class LoginCommand implements CommandExecutor {
private AuthMe plugin;
private Messages m = Messages.getInstance();
-
+
public LoginCommand(AuthMe plugin) {
this.plugin = plugin;
}
@@ -39,13 +38,9 @@ public class LoginCommand implements CommandExecutor {
if (!(sender instanceof Player)) {
return true;
}
-
- if(!Settings.useCaptcha) {
-
- }
-
+
final Player player = (Player) sender;
-
+
if (args.length == 0) {
player.sendMessage(m._("usage_log"));
return true;
@@ -56,10 +51,7 @@ public class LoginCommand implements CommandExecutor {
return true;
}
- String result = plugin.management.performLogin(player, args[0]);
- if (result != "") player.sendMessage(result);
-
+ plugin.management.performLogin(player, args[0]);
return true;
}
}
-
diff --git a/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java b/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
index 909f414d1..ce6c1d849 100644
--- a/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
@@ -48,12 +48,11 @@ public class LogoutCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
private PlayersLogs pllog = PlayersLogs.getInstance();
- //private Settings settings = Settings.getInstance();
private AuthMe plugin;
private DataSource database;
private Utils utils = Utils.getInstance();
private FileCache playerBackup = new FileCache();
-
+
public LogoutCommand(AuthMe plugin, DataSource database) {
this.plugin = plugin;
this.database = database;
@@ -78,13 +77,12 @@ public class LogoutCommand implements CommandExecutor {
return true;
}
- //clear session
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
auth.setIp("198.18.0.1");
database.updateSession(auth);
PlayerCache.getInstance().removePlayer(name);
-
+
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
LimboCache.getInstance().addLimboPlayer(player);
if(Settings.protectInventoryBeforeLogInEnabled) {
@@ -117,22 +115,19 @@ public class LogoutCommand implements CommandExecutor {
}
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
-
try {
if (PlayersLogs.players.contains(player.getName())) {
PlayersLogs.players.remove(player.getName());
pllog.save();
}
} catch (NullPointerException npe) {
-
}
-
player.sendMessage(m._("logout"));
ConsoleLogger.info(player.getDisplayName() + " logged out");
if(plugin.notifications != null) {
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!"));
}
-
return true;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java b/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
index 537de5445..f044f5720 100644
--- a/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
@@ -23,7 +23,7 @@ public class PasspartuCommand implements CommandExecutor {
private Utils utils = new Utils();
private DataSource database;
public AuthMe plugin;
-
+
public PasspartuCommand(DataSource database, AuthMe plugin) {
this.database = database;
this.plugin = plugin;
@@ -31,20 +31,18 @@ public class PasspartuCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
-
+
if (PlayerCache.getInstance().isAuthenticated(sender.getName().toLowerCase())) {
return true;
}
-
+
if ((sender instanceof Player) && args.length == 1) {
if(utils.readToken(args[0])) {
//bypass login!
Management bypass = new Management(database,true, plugin);
- String result = bypass.performLogin((Player)sender, "dontneed");
- if (result != "") sender.sendMessage(result);
+ bypass.performLogin((Player)sender, "dontneed");
return true;
}
-
sender.sendMessage("Time is expired or Token is Wrong!");
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/RecoveryCommand.java b/src/main/java/uk/org/whoami/authme/commands/RecoveryCommand.java
deleted file mode 100644
index 14bcbb08d..000000000
--- a/src/main/java/uk/org/whoami/authme/commands/RecoveryCommand.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2012 darkwarriors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package uk.org.whoami.authme.commands;
-
-/**
- *
- * @author darkwarriors
- */
-public class RecoveryCommand {
-
-}
diff --git a/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java b/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
index c0b923706..d858cc61b 100644
--- a/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
@@ -21,6 +21,7 @@ import java.util.Date;
import me.muizers.Notifications.Notification;
import net.md_5.bungee.BungeeCord;
+import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -75,21 +76,24 @@ public class RegisterCommand implements CommandExecutor {
sender.sendMessage(m._("no_perm"));
return true;
}
-
+
final Player player = (Player) sender;
final String name = player.getName().toLowerCase();
String ipA = player.getAddress().getAddress().getHostAddress();
-
+
if (Settings.bungee) {
try {
- ipA = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
+ for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
+ if (pp.getName().toLowerCase() == name) {
+ ipA = pp.getAddress().getAddress().getHostAddress();
+ break;
+ }
+ }
} catch (NoClassDefFoundError ncdfe) {
- ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
}
}
-
- final String ip = ipA;
+ final String ip = ipA;
if (PlayerCache.getInstance().isAuthenticated(name)) {
player.sendMessage(m._("logged_in"));
return true;
@@ -107,18 +111,14 @@ public class RegisterCommand implements CommandExecutor {
}
return true;
}
- //
- // Check if player exeded the max number of registration
- //
-
+
if(Settings.getmaxRegPerIp > 0 ){
-
- if(!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
- player.sendMessage(m._("max_reg"));
+ if(!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
+ player.sendMessage(m._("max_reg"));
return true;
- }
- }
-
+ }
+ }
+
if(Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) {
if(!args[0].contains("@")) {
player.sendMessage(m._("usage_reg"));
@@ -143,10 +143,8 @@ public class RegisterCommand implements CommandExecutor {
}
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
final String thePass = rand.nextString();
-
if (!thePass.isEmpty()) {
Bukkit.getScheduler().runTask(plugin, new Runnable() {
-
@Override
public void run() {
if (PasswordSecurity.userSalt.containsKey(name)) {
@@ -173,10 +171,8 @@ public class RegisterCommand implements CommandExecutor {
}
}
}
-
});
-
if(!Settings.getRegisteredGroup.isEmpty()){
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
}
@@ -202,16 +198,12 @@ public class RegisterCommand implements CommandExecutor {
try {
loca = plugin.mv.getMVWorldManager().getMVWorld(world).getSpawnLocation();
} catch (NullPointerException npe) {
-
} catch (ClassCastException cce) {
-
} catch (NoClassDefFoundError ncdfe) {
-
}
}
if (Spawn.getInstance().getLocation() != null)
loca = Spawn.getInstance().getLocation();
-
RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player, loca);
plugin.getServer().getPluginManager().callEvent(tpEvent);
if(!tpEvent.isCancelled()) {
@@ -231,20 +223,16 @@ public class RegisterCommand implements CommandExecutor {
return true;
}
}
-
+
if (args.length == 0 || (Settings.getEnablePasswordVerifier && args.length < 2) ) {
player.sendMessage(m._("usage_reg"));
return true;
}
- //System.out.println("pass legth "+args[0].length());
- //System.out.println("pass length permit"+Settings.passwordMaxLength);
+
if(args[0].length() < Settings.getPasswordMinLen || args[0].length() > Settings.passwordMaxLength) {
player.sendMessage(m._("pass_len"));
return true;
}
-
-
-
try {
String hash;
if(Settings.getEnablePasswordVerifier) {
@@ -256,7 +244,6 @@ public class RegisterCommand implements CommandExecutor {
}
} else
hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[0], name);
-
if (Settings.getMySQLColumnSalt.isEmpty())
{
auth = new PlayerAuth(name, hash, ip, new Date().getTime());
@@ -268,7 +255,6 @@ public class RegisterCommand implements CommandExecutor {
return true;
}
PlayerCache.getInstance().addPlayer(auth);
-
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
if (limbo != null) {
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
@@ -297,13 +283,11 @@ public class RegisterCommand implements CommandExecutor {
player.teleport(tpEvent.getTo());
}
}
-
sender.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
sender.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
}
-
-
+
if(!Settings.getRegisteredGroup.isEmpty()){
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
}
@@ -317,7 +301,6 @@ public class RegisterCommand implements CommandExecutor {
if(plugin.notifications != null) {
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered!"));
}
-
} catch (NoSuchAlgorithmException ex) {
ConsoleLogger.showError(ex.getMessage());
sender.sendMessage(m._("error"));
diff --git a/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java b/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
index 62e87c74a..252c1c973 100644
--- a/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
@@ -49,11 +49,10 @@ public class UnregisterCommand implements CommandExecutor {
private Messages m = Messages.getInstance();
private PlayersLogs pllog = PlayersLogs.getInstance();
- //private Settings settings = Settings.getInstance();
public AuthMe plugin;
private DataSource database;
private FileCache playerCache = new FileCache();
-
+
public UnregisterCommand(AuthMe plugin, DataSource database) {
this.plugin = plugin;
this.database = database;
@@ -94,8 +93,6 @@ public class UnregisterCommand implements CommandExecutor {
player.saveData();
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
LimboCache.getInstance().addLimboPlayer(player);
-
-
int delay = Settings.getRegistrationTimeout * 20;
int interval = Settings.getWarnMessageInterval;
BukkitScheduler sched = sender.getServer().getScheduler();
@@ -121,8 +118,7 @@ public class UnregisterCommand implements CommandExecutor {
// check if Player cache File Exist and delete it, preventing duplication of items
if(playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
- }
-
+ }
if (PlayersLogs.players.contains(player.getName())) {
PlayersLogs.players.remove(player.getName());
pllog.save();
diff --git a/src/main/java/uk/org/whoami/authme/converter/FlatToSql.java b/src/main/java/uk/org/whoami/authme/converter/FlatToSql.java
index eed144b7b..178554e3e 100644
--- a/src/main/java/uk/org/whoami/authme/converter/FlatToSql.java
+++ b/src/main/java/uk/org/whoami/authme/converter/FlatToSql.java
@@ -12,15 +12,18 @@ import uk.org.whoami.authme.AuthMe;
import uk.org.whoami.authme.ConsoleLogger;
import uk.org.whoami.authme.settings.Settings;
-
+/**
+*
+* @author Xephi59
+*/
public class FlatToSql {
-
+
public AuthMe instance;
-
+
public FlatToSql (AuthMe instance) {
this.instance = instance;
}
-
+
public FlatToSql getInstance() {
return this;
}
@@ -34,10 +37,9 @@ public class FlatToSql {
private static String lastlocY;
private static String lastlocZ;
private static String columnEmail;
-
private static File source;
private static File output;
-
+
public static void FlatToSqlConverter() throws IOException {
tableName = Settings.getMySQLTablename;
columnName = Settings.getMySQLColumnName;
@@ -76,9 +78,9 @@ public class FlatToSql {
sql.newLine();
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, " + "your@email.com" + ");";
+ newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", 0, 0, 0, " + "'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] + ", " + "your@email.com" + ");";
+ newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", " + "'your@email.com'" + ");";
else
newline = "";
if (newline != "")
@@ -87,8 +89,7 @@ public class FlatToSql {
}
sql.close();
br.close();
- System.out.println("[AuthMe] 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) {
diff --git a/src/main/java/uk/org/whoami/authme/converter/RakamakConverter.java b/src/main/java/uk/org/whoami/authme/converter/RakamakConverter.java
index a1c21c1d7..546d4e974 100644
--- a/src/main/java/uk/org/whoami/authme/converter/RakamakConverter.java
+++ b/src/main/java/uk/org/whoami/authme/converter/RakamakConverter.java
@@ -17,15 +17,18 @@ import uk.org.whoami.authme.security.PasswordSecurity;
import uk.org.whoami.authme.security.PasswordSecurity.HashAlgorithm;
import uk.org.whoami.authme.settings.Settings;
-
+/**
+*
+* @author Xephi59
+*/
public class RakamakConverter {
-
+
public AuthMe instance;
-
+
public RakamakConverter (AuthMe instance) {
this.instance = instance;
}
-
+
public RakamakConverter getInstance() {
return this;
}
@@ -34,12 +37,11 @@ public class RakamakConverter {
private static Boolean useIP;
private static String fileName;
private static String ipFileName;
-
private static File source;
private static File output;
private static File ipfiles;
private static boolean alreadyExist = false;
-
+
public static void RakamakConvert() throws IOException {
hash = Settings.rakamakHash;
useIP = Settings.rakamakUseIp;
@@ -47,8 +49,6 @@ public class RakamakConverter {
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);
@@ -86,8 +86,6 @@ public class RakamakConverter {
}
}
}
-
-
users.close();
outputDB = new BufferedWriter(new FileWriter(output));
for (Entry m : playerPSW.entrySet()) {
@@ -96,7 +94,6 @@ public class RakamakConverter {
String psw = playerPSW.get(player);
String ip = playerIP.get(player);
newLine = player + ":" + psw + ":" + ip + ":1325376060:0:0:0";
-
} else {
String player = m.getKey();
String psw = playerPSW.get(player);
@@ -108,14 +105,8 @@ public class RakamakConverter {
System.out.println("Write line");
outputDB.newLine();
}
-
-
outputDB.close();
-
- System.out.println("[AuthMe] Rakamak database has been converted to auths.db");
-
-
-
+ ConsoleLogger.info("Rakamak database has been converted to auths.db");
} catch (FileNotFoundException ex) {
ConsoleLogger.showError(ex.getMessage());
} catch (IOException ex) {
diff --git a/src/main/java/uk/org/whoami/authme/converter/xAuthToFlat.java b/src/main/java/uk/org/whoami/authme/converter/xAuthToFlat.java
index 68746e4b9..255313434 100644
--- a/src/main/java/uk/org/whoami/authme/converter/xAuthToFlat.java
+++ b/src/main/java/uk/org/whoami/authme/converter/xAuthToFlat.java
@@ -18,16 +18,20 @@ import uk.org.whoami.authme.AuthMe;
import uk.org.whoami.authme.cache.auth.PlayerAuth;
import uk.org.whoami.authme.datasource.DataSource;
+/**
+*
+* @author Xephi59
+*/
public class xAuthToFlat {
public AuthMe instance;
public DataSource database;
-
+
public xAuthToFlat(AuthMe instance, DataSource database) {
this.instance = instance;
this.database = database;
}
-
+
public boolean convert(CommandSender sender) {
if (instance.getServer().getPluginManager().getPlugin("xAuth") == null) {
sender.sendMessage("[AuthMe] xAuth plugin not found");
@@ -41,7 +45,6 @@ public class xAuthToFlat {
sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
return false;
}
-
sender.sendMessage("[AuthMe] Starting import...");
for (int id : players) {
String pl = getIdPlayer(id);
@@ -54,13 +57,12 @@ public class xAuthToFlat {
sender.sendMessage("[AuthMe] Import done!");
return true;
}
-
+
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));
@@ -69,7 +71,6 @@ public class xAuthToFlat {
rs = ps.executeQuery();
if (!rs.next())
return null;
-
realPass = rs.getString("playername").toLowerCase();
} catch (SQLException e) {
xAuthLog.severe("Failed to retrieve name for account: " + id, e);
@@ -107,7 +108,6 @@ public class xAuthToFlat {
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));
@@ -116,7 +116,6 @@ public class xAuthToFlat {
rs = ps.executeQuery();
if (!rs.next())
return null;
-
realPass = rs.getString("password");
} catch (SQLException e) {
xAuthLog.severe("Failed to retrieve password hash for account: " + accountId, e);
diff --git a/src/main/java/uk/org/whoami/authme/datasource/CacheDataSource.java b/src/main/java/uk/org/whoami/authme/datasource/CacheDataSource.java
index 1ea0a4e91..4d443858b 100644
--- a/src/main/java/uk/org/whoami/authme/datasource/CacheDataSource.java
+++ b/src/main/java/uk/org/whoami/authme/datasource/CacheDataSource.java
@@ -35,7 +35,7 @@ public class CacheDataSource implements DataSource {
this.plugin = plugin;
this.source = source;
}
-
+
@Override
public synchronized boolean isAuthAvailable(String user) {
return cache.containsKey(user) ? true : source.isAuthAvailable(user);
@@ -79,30 +79,26 @@ public class CacheDataSource implements DataSource {
}
return false;
}
-
+
@Override
public boolean updateQuitLoc(PlayerAuth auth) {
- //System.out.println("[debug name chace non work]"+auth.getNickname()+"[debug loc]"+auth.getQuitLocX());
if (source.updateQuitLoc(auth)) {
- //System.out.println("[debug name chace]"+auth.getNickname()+"[debug loc]"+auth.getQuitLocX());
cache.get(auth.getNickname()).setQuitLocX(auth.getQuitLocX());
cache.get(auth.getNickname()).setQuitLocY(auth.getQuitLocY());
cache.get(auth.getNickname()).setQuitLocZ(auth.getQuitLocZ());
return true;
-
}
return false;
}
-
+
@Override
public int getIps(String ip) {
return source.getIps(ip);
}
-
+
@Override
public int purgeDatabase(long until) {
int cleared = source.purgeDatabase(until);
-
if (cleared > 0) {
for (PlayerAuth auth : cache.values()) {
if(auth.getLastLogin() < until) {
@@ -151,7 +147,7 @@ public class CacheDataSource implements DataSource {
}
return false;
}
-
+
@Override
public boolean updateSalt(PlayerAuth auth) {
if(source.updateSalt(auth)) {
@@ -170,9 +166,19 @@ public class CacheDataSource implements DataSource {
public List getAllAuthsByIp(String ip) {
return source.getAllAuthsByIp(ip);
}
-
+
@Override
public List getAllAuthsByEmail(String email) {
return source.getAllAuthsByEmail(email);
}
+
+ @Override
+ public void purgeBanned(List banned) {
+ source.purgeBanned(banned);
+ for (PlayerAuth auth : cache.values()) {
+ if (banned.contains(auth.getNickname())) {
+ cache.remove(auth.getNickname());
+ }
+ }
+ }
}
diff --git a/src/main/java/uk/org/whoami/authme/datasource/DataSource.java b/src/main/java/uk/org/whoami/authme/datasource/DataSource.java
index 21fc0568b..b3b5a8306 100644
--- a/src/main/java/uk/org/whoami/authme/datasource/DataSource.java
+++ b/src/main/java/uk/org/whoami/authme/datasource/DataSource.java
@@ -40,23 +40,25 @@ public interface DataSource {
int purgeDatabase(long until);
boolean removeAuth(String user);
-
+
boolean updateQuitLoc(PlayerAuth auth);
-
+
int getIps(String ip);
-
+
List getAllAuthsByName(PlayerAuth auth);
-
+
List getAllAuthsByIp(String ip);
-
+
List getAllAuthsByEmail(String email);
-
+
boolean updateEmail(PlayerAuth auth);
-
+
boolean updateSalt(PlayerAuth auth);
-
+
void close();
void reload();
-
+
+ void purgeBanned(List banned);
+
}
diff --git a/src/main/java/uk/org/whoami/authme/datasource/FileDataSource.java b/src/main/java/uk/org/whoami/authme/datasource/FileDataSource.java
index 436163f83..a169c248b 100644
--- a/src/main/java/uk/org/whoami/authme/datasource/FileDataSource.java
+++ b/src/main/java/uk/org/whoami/authme/datasource/FileDataSource.java
@@ -32,7 +32,6 @@ import uk.org.whoami.authme.settings.Settings;
public class FileDataSource implements DataSource {
-
/* file layout:
*
* PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:COORDS
@@ -48,7 +47,7 @@ public class FileDataSource implements DataSource {
source = new File(Settings.AUTH_FILE);
source.createNewFile();
}
-
+
@Override
public synchronized boolean isAuthAvailable(String user) {
BufferedReader br = null;
@@ -83,17 +82,14 @@ public class FileDataSource implements DataSource {
if (isAuthAvailable(auth.getNickname())) {
return false;
}
-
BufferedWriter bw = null;
try {
if( auth.getQuitLocY() == 0 ) {
bw = new BufferedWriter(new FileWriter(source, true));
bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + "\n");
- //System.out.println("[Debug save1] "+auth.getQuitLocY());
} else {
bw = new BufferedWriter(new FileWriter(source, true));
- bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + ":" + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":" + auth.getQuitLocZ() + "\n");
- //System.out.println("[Debug save2] "+auth.getQuitLocY());
+ bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + ":" + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":" + auth.getQuitLocZ() + "\n");
}
} catch (IOException ex) {
ConsoleLogger.showError(ex.getMessage());
@@ -114,9 +110,7 @@ public class FileDataSource implements DataSource {
if (!isAuthAvailable(auth.getNickname())) {
return false;
}
-
PlayerAuth newAuth = null;
-
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(source));
@@ -152,9 +146,7 @@ public class FileDataSource implements DataSource {
if (!isAuthAvailable(auth.getNickname())) {
return false;
}
-
PlayerAuth newAuth = null;
-
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(source));
@@ -187,13 +179,10 @@ public class FileDataSource implements DataSource {
@Override
public boolean updateQuitLoc(PlayerAuth auth) {
-
if (!isAuthAvailable(auth.getNickname())) {
return false;
}
-
PlayerAuth newAuth = null;
-
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(source));
@@ -201,7 +190,6 @@ public class FileDataSource implements DataSource {
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
if (args[0].equals(auth.getNickname())) {
- //System.out.println("[Debug update] "+auth.getQuitLocX());
newAuth = new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ());
break;
}
@@ -224,7 +212,7 @@ public class FileDataSource implements DataSource {
saveAuth(newAuth);
return true;
}
-
+
@Override
public int getIps(String ip) {
BufferedReader br = null;
@@ -234,7 +222,6 @@ public class FileDataSource implements DataSource {
String line;
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
- //System.out.println(ip+" match? "+args[2]);
if (args.length > 3 && args[2].equals(ip)) {
countIp++;
}
@@ -255,14 +242,13 @@ public class FileDataSource implements DataSource {
}
}
}
-
+
@Override
public int purgeDatabase(long until) {
BufferedReader br = null;
BufferedWriter bw = null;
ArrayList lines = new ArrayList();
int cleared = 0;
-
try {
br = new BufferedReader(new FileReader(source));
String line;
@@ -276,7 +262,6 @@ public class FileDataSource implements DataSource {
}
cleared++;
}
-
bw = new BufferedWriter(new FileWriter(source));
for (String l : lines) {
bw.write(l + "\n");
@@ -309,7 +294,6 @@ public class FileDataSource implements DataSource {
if (!isAuthAvailable(user)) {
return false;
}
-
BufferedReader br = null;
BufferedWriter bw = null;
ArrayList lines = new ArrayList();
@@ -322,7 +306,6 @@ public class FileDataSource implements DataSource {
lines.add(line);
}
}
-
bw = new BufferedWriter(new FileWriter(source));
for (String l : lines) {
bw.write(l + "\n");
@@ -400,7 +383,7 @@ public class FileDataSource implements DataSource {
public boolean updateEmail(PlayerAuth auth) {
return false;
}
-
+
@Override
public boolean updateSalt(PlayerAuth auth) {
return false;
@@ -415,7 +398,6 @@ public class FileDataSource implements DataSource {
String line;
while ((line = br.readLine()) != null) {
String[] args = line.split(":");
- //System.out.println(ip+" match? "+args[2]);
if (args.length > 3 && args[2].equals(auth.getIp())) {
countIp.add(args[0]);
}
@@ -471,4 +453,49 @@ public class FileDataSource implements DataSource {
public List getAllAuthsByEmail(String email) {
return new ArrayList();
}
+
+ @Override
+ public void purgeBanned(List banned) {
+ BufferedReader br = null;
+ BufferedWriter bw = null;
+ ArrayList lines = new ArrayList();
+ try {
+ br = new BufferedReader(new FileReader(source));
+ String line;
+ while ((line = br.readLine()) != null) {
+ String[] args = line.split(":");
+ try {
+ if (banned.contains(args[0])) {
+ lines.add(line);
+ }
+ } catch (NullPointerException npe) {}
+ catch (ArrayIndexOutOfBoundsException aioobe) {}
+ }
+ bw = new BufferedWriter(new FileWriter(source));
+ for (String l : lines) {
+ bw.write(l + "\n");
+ }
+ } catch (FileNotFoundException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ return;
+ } catch (IOException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ return;
+ } finally {
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException ex) {
+ }
+ }
+ if (bw != null) {
+ try {
+ bw.close();
+ } catch (IOException ex) {
+ }
+ }
+ }
+ return;
+ }
+
}
diff --git a/src/main/java/uk/org/whoami/authme/datasource/MySQLDataSource.java b/src/main/java/uk/org/whoami/authme/datasource/MySQLDataSource.java
index 7999bc18b..08b963979 100644
--- a/src/main/java/uk/org/whoami/authme/datasource/MySQLDataSource.java
+++ b/src/main/java/uk/org/whoami/authme/datasource/MySQLDataSource.java
@@ -58,7 +58,6 @@ public class MySQLDataSource implements DataSource {
this.port = Settings.getMySQLPort;
this.username = Settings.getMySQLUsername;
this.password = Settings.getMySQLPassword;
-
this.database = Settings.getMySQLDatabase;
this.tableName = Settings.getMySQLTablename;
this.columnName = Settings.getMySQLColumnName;
@@ -73,7 +72,7 @@ public class MySQLDataSource implements DataSource {
this.columnEmail = Settings.getMySQLColumnEmail;
this.columnOthers = Settings.getMySQLOtherUsernameColumn;
this.columnID = Settings.getMySQLColumnId;
-
+
connect();
setup();
}
@@ -87,7 +86,6 @@ public class MySQLDataSource implements DataSource {
dataSource.setPort(Integer.parseInt(port));
dataSource.setUser(username);
dataSource.setPassword(password);
-
conPool = new MiniConnectionPoolManager(dataSource, 10);
ConsoleLogger.info("Connection pool ready");
}
@@ -110,7 +108,6 @@ public class MySQLDataSource implements DataSource {
+ lastlocZ + " smallint(6) DEFAULT '0',"
+ 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 "
@@ -343,7 +340,7 @@ public class MySQLDataSource implements DataSource {
}
return true;
}
-
+
@Override
public boolean updateQuitLoc(PlayerAuth auth) {
Connection con = null;
@@ -368,11 +365,7 @@ public class MySQLDataSource implements DataSource {
}
return true;
}
-
- //
- // Check how many registration by given ip has been done
- //
-
+
@Override
public int getIps(String ip) {
Connection con = null;
@@ -401,7 +394,7 @@ public class MySQLDataSource implements DataSource {
close(con);
}
}
-
+
@Override
public boolean updateEmail(PlayerAuth auth) {
Connection con = null;
@@ -424,7 +417,7 @@ public class MySQLDataSource implements DataSource {
}
return true;
}
-
+
@Override
public boolean updateSalt(PlayerAuth auth) {
if (columnSalt.isEmpty()) {
@@ -450,7 +443,7 @@ public class MySQLDataSource implements DataSource {
}
return true;
}
-
+
@Override
public synchronized void close() {
try {
@@ -551,7 +544,7 @@ public class MySQLDataSource implements DataSource {
close(con);
}
}
-
+
@Override
public List getAllAuthsByEmail(String email) {
Connection con = null;
@@ -581,5 +574,23 @@ public class MySQLDataSource implements DataSource {
}
}
+ @Override
+ public void purgeBanned(List banned) {
+ Connection con = null;
+ PreparedStatement pst = null;
+ try {
+ for (String name : banned) {
+ con = conPool.getValidConnection();
+ 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);
+ }
+ }
}
diff --git a/src/main/java/uk/org/whoami/authme/datasource/SqliteDataSource.java b/src/main/java/uk/org/whoami/authme/datasource/SqliteDataSource.java
index 2abef34fc..5438cbdf1 100644
--- a/src/main/java/uk/org/whoami/authme/datasource/SqliteDataSource.java
+++ b/src/main/java/uk/org/whoami/authme/datasource/SqliteDataSource.java
@@ -4,7 +4,6 @@
*/
package uk.org.whoami.authme.datasource;
-
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@@ -43,12 +42,10 @@ public class SqliteDataSource implements DataSource {
private Connection con;
public SqliteDataSource() throws ClassNotFoundException, SQLException {
- //Settings s = Settings.getInstance();
this.host = Settings.getMySQLHost;
this.port = Settings.getMySQLPort;
this.username = Settings.getMySQLUsername;
this.password = Settings.getMySQLPassword;
-
this.database = Settings.getMySQLDatabase;
this.tableName = Settings.getMySQLTablename;
this.columnName = Settings.getMySQLColumnName;
@@ -63,7 +60,7 @@ public class SqliteDataSource implements DataSource {
this.nonActivatedGroup = Settings.getNonActivatedGroup;
this.columnEmail = Settings.getMySQLColumnEmail;
this.columnID = Settings.getMySQLColumnId;
-
+
connect();
setup();
}
@@ -71,13 +68,11 @@ public class SqliteDataSource implements DataSource {
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");
}
private synchronized void setup() throws SQLException {
- //Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
@@ -93,7 +88,6 @@ public class SqliteDataSource implements DataSource {
+ lastlocZ + " smallint(6) DEFAULT '0',"
+ 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 "
@@ -126,7 +120,6 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(st);
- //close(con);
}
ConsoleLogger.info("SQLite Setup finished");
}
@@ -146,33 +139,26 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(pst);
- //close(con);
}
}
@Override
public synchronized PlayerAuth getAuth(String user) {
- //Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
-
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ columnName + "=?;");
pst.setString(1, user);
rs = pst.executeQuery();
if (rs.next()) {
if (rs.getString(columnIp).isEmpty() ) {
- //System.out.println("[Authme Debug] ColumnIp is empty");
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), "198.18.0.1", rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
} else {
if(!columnSalt.isEmpty()){
- //System.out.println("[Authme Debug] column Salt is" + rs.getString(columnSalt));
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword),rs.getString(columnSalt), rs.getInt(columnGroup), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
} else {
- //System.out.println("[Authme Debug] column Salt is empty");
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
-
}
}
} else {
@@ -184,13 +170,11 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(pst);
- //close(con);
}
}
@Override
public synchronized boolean saveAuth(PlayerAuth auth) {
- //Connection con = null;
PreparedStatement pst = null;
try {
if (columnSalt.isEmpty() && auth.getSalt().isEmpty()) {
@@ -214,14 +198,12 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
@Override
public synchronized boolean updatePassword(PlayerAuth auth) {
- //Connection con = null;
PreparedStatement pst = null;
try {
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnPassword + "=? WHERE " + columnName + "=?;");
@@ -233,14 +215,12 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
@Override
public boolean updateSession(PlayerAuth auth) {
- //Connection con = null;
PreparedStatement pst = null;
try {
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnIp + "=?, " + columnLastLogin + "=? WHERE " + columnName + "=?;");
@@ -253,14 +233,12 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
@Override
public int purgeDatabase(long until) {
- //Connection con = null;
PreparedStatement pst = null;
try {
@@ -272,16 +250,13 @@ public class SqliteDataSource implements DataSource {
return 0;
} finally {
close(pst);
- //close(con);
}
}
@Override
public synchronized boolean removeAuth(String user) {
- //Connection con = null;
PreparedStatement pst = null;
try {
-
pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
pst.setString(1, user);
pst.executeUpdate();
@@ -290,17 +265,14 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
-
+
@Override
public boolean updateQuitLoc(PlayerAuth auth) {
- //Connection con = null;
PreparedStatement pst = null;
try {
-
pst = con.prepareStatement("UPDATE " + tableName + " SET " + lastlocX + "=?, "+ lastlocY +"=?, "+ lastlocZ +"=? WHERE " + columnName + "=?;");
pst.setLong(1, auth.getQuitLocX());
pst.setLong(2, auth.getQuitLocY());
@@ -312,23 +284,16 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
-
- //
- // Check how many registration by given ip has been done
- //
-
+
@Override
public int getIps(String ip) {
- //Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
int countIp=0;
try {
-
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
+ columnIp + "=?;");
pst.setString(1, ip);
@@ -343,13 +308,11 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(pst);
- //close(con);
}
}
-
+
@Override
public boolean updateEmail(PlayerAuth auth) {
- //Connection con = null;
PreparedStatement pst = null;
try {
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnEmail + "=? WHERE " + columnName + "=?;");
@@ -361,17 +324,15 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
-
+
@Override
public boolean updateSalt(PlayerAuth auth) {
if(columnSalt.isEmpty()) {
return false;
}
- //Connection con = null;
PreparedStatement pst = null;
try {
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnSalt + "=? WHERE " + columnName + "=?;");
@@ -383,11 +344,10 @@ public class SqliteDataSource implements DataSource {
return false;
} finally {
close(pst);
- //close(con);
}
return true;
}
-
+
@Override
public synchronized void close() {
try {
@@ -456,7 +416,6 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(pst);
- //close(con);
}
}
@@ -485,10 +444,9 @@ public class SqliteDataSource implements DataSource {
} finally {
close(rs);
close(pst);
- //close(con);
}
}
-
+
@Override
public List getAllAuthsByEmail(String email) {
PreparedStatement pst = null;
@@ -516,5 +474,21 @@ public class SqliteDataSource implements DataSource {
close(pst);
}
}
-
+
+ @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();
+ }
+ } catch (SQLException ex) {
+ ConsoleLogger.showError(ex.getMessage());
+ } finally {
+ close(pst);
+ }
+ }
+
}
diff --git a/src/main/java/uk/org/whoami/authme/debug/CardboardBox.java b/src/main/java/uk/org/whoami/authme/debug/CardboardBox.java
index 161d8d244..dce062740 100644
--- a/src/main/java/uk/org/whoami/authme/debug/CardboardBox.java
+++ b/src/main/java/uk/org/whoami/authme/debug/CardboardBox.java
@@ -15,10 +15,8 @@ import org.bukkit.inventory.ItemStack;
public class CardboardBox implements Serializable {
private static final long serialVersionUID = 729890133797629668L;
-
private final int type, amount;
private final short damage;
-
private final HashMap enchants;
public CardboardBox(ItemStack item) {
diff --git a/src/main/java/uk/org/whoami/authme/debug/CardboardEnchantment.java b/src/main/java/uk/org/whoami/authme/debug/CardboardEnchantment.java
index c056ac2d3..e1da30c5e 100644
--- a/src/main/java/uk/org/whoami/authme/debug/CardboardEnchantment.java
+++ b/src/main/java/uk/org/whoami/authme/debug/CardboardEnchantment.java
@@ -22,4 +22,5 @@ public class CardboardEnchantment implements Serializable {
public Enchantment unbox() {
return Enchantment.getById(this.id);
}
-}
\ No newline at end of file
+
+}
diff --git a/src/main/java/uk/org/whoami/authme/events/AuthMeTeleportEvent.java b/src/main/java/uk/org/whoami/authme/events/AuthMeTeleportEvent.java
index be6ea5b0d..7f8b9a333 100644
--- a/src/main/java/uk/org/whoami/authme/events/AuthMeTeleportEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/AuthMeTeleportEvent.java
@@ -3,12 +3,16 @@ package uk.org.whoami.authme.events;
import org.bukkit.Location;
import org.bukkit.entity.Player;
+/**
+*
+* @author Xephi59
+*/
public class AuthMeTeleportEvent extends CustomEvent {
-
+
private Player player;
private Location to;
private Location from;
-
+
public AuthMeTeleportEvent(Player player, Location to) {
this.player = player;
this.from = player.getLocation();
diff --git a/src/main/java/uk/org/whoami/authme/events/CustomEvent.java b/src/main/java/uk/org/whoami/authme/events/CustomEvent.java
index b5f610e0c..31bdee99c 100644
--- a/src/main/java/uk/org/whoami/authme/events/CustomEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/CustomEvent.java
@@ -4,31 +4,32 @@ import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
+/**
+*
+* @author Xephi59
+*/
public class CustomEvent extends Event {
-
-
+
private boolean isCancelled;
private static final HandlerList handlers = new HandlerList();
private static Server s;
-
public HandlerList getHandlers() {
return handlers;
}
-
+
public static HandlerList getHandlerList() {
return handlers;
}
-
+
public boolean isCancelled() {
return this.isCancelled;
}
-
+
public void setCancelled(boolean cancelled) {
this.isCancelled = cancelled;
}
-
public static Server getServer() {
return s;
}
diff --git a/src/main/java/uk/org/whoami/authme/events/LoginEvent.java b/src/main/java/uk/org/whoami/authme/events/LoginEvent.java
index 4c6cca342..b7d0f7d42 100644
--- a/src/main/java/uk/org/whoami/authme/events/LoginEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/LoginEvent.java
@@ -2,21 +2,24 @@ package uk.org.whoami.authme.events;
import org.bukkit.entity.Player;
+/**
+*
+* @author Xephi59
+*/
public class LoginEvent extends UncancellableEvent {
-
private Player player;
private boolean isLogin;
-
+
public LoginEvent(Player player, boolean isLogin) {
this.player = player;
this.isLogin = isLogin;
}
-
+
public Player getPlayer() {
return this.player;
}
-
+
public void setPlayer(Player player) {
this.player = player;
}
@@ -28,4 +31,5 @@ public class LoginEvent extends UncancellableEvent {
public boolean isLogin() {
return isLogin;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/ProtectInventoryEvent.java b/src/main/java/uk/org/whoami/authme/events/ProtectInventoryEvent.java
index b6fd1551b..db4ca2610 100644
--- a/src/main/java/uk/org/whoami/authme/events/ProtectInventoryEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/ProtectInventoryEvent.java
@@ -5,20 +5,24 @@ import org.bukkit.inventory.ItemStack;
import uk.org.whoami.authme.api.API;
+/**
+*
+* @author Xephi59
+*/
public class ProtectInventoryEvent extends CustomEvent {
-
+
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;
}
-
+
public ProtectInventoryEvent(Player player, ItemStack[] storedinventory, ItemStack[] storedarmor, int newInventory, int newArmor) {
this.player = player;
this.storedinventory = storedinventory;
@@ -31,11 +35,11 @@ public class ProtectInventoryEvent extends CustomEvent {
public ItemStack[] getStoredInventory() {
return this.storedinventory;
}
-
+
public ItemStack[] getStoredArmor() {
return this.storedarmor;
}
-
+
public Player getPlayer() {
return this.player;
}
@@ -55,4 +59,5 @@ public class ProtectInventoryEvent extends CustomEvent {
public ItemStack[] getEmptyArmor() {
return this.emptyArmor;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/RegisterTeleportEvent.java b/src/main/java/uk/org/whoami/authme/events/RegisterTeleportEvent.java
index e2e8b9a59..fb553b909 100644
--- a/src/main/java/uk/org/whoami/authme/events/RegisterTeleportEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/RegisterTeleportEvent.java
@@ -3,12 +3,16 @@ package uk.org.whoami.authme.events;
import org.bukkit.Location;
import org.bukkit.entity.Player;
+/**
+*
+* @author Xephi59
+*/
public class RegisterTeleportEvent extends CustomEvent {
private Player player;
private Location to;
private Location from;
-
+
public RegisterTeleportEvent(Player player, Location to) {
this.player = player;
this.from = player.getLocation();
@@ -26,4 +30,5 @@ public class RegisterTeleportEvent extends CustomEvent {
public Location getFrom() {
return from;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/ResetInventoryEvent.java b/src/main/java/uk/org/whoami/authme/events/ResetInventoryEvent.java
index e2eff2098..cbb6f8237 100644
--- a/src/main/java/uk/org/whoami/authme/events/ResetInventoryEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/ResetInventoryEvent.java
@@ -5,20 +5,25 @@ import org.bukkit.inventory.ItemStack;
import uk.org.whoami.authme.api.API;
+/**
+*
+* @author Xephi59
+*/
public class ResetInventoryEvent extends CustomEvent {
-
+
private Player player;
-
+
public ResetInventoryEvent(Player player) {
this.player = player;
API.setPlayerInventory(player, new ItemStack[36], new ItemStack[4]);
}
-
+
public Player getPlayer() {
return this.player;
}
-
+
public void setPlayer(Player player) {
this.player = player;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/RestoreInventoryEvent.java b/src/main/java/uk/org/whoami/authme/events/RestoreInventoryEvent.java
index b2232195c..c14423152 100644
--- a/src/main/java/uk/org/whoami/authme/events/RestoreInventoryEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/RestoreInventoryEvent.java
@@ -3,12 +3,16 @@ package uk.org.whoami.authme.events;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
+/**
+*
+* @author Xephi59
+*/
public class RestoreInventoryEvent extends CustomEvent {
-
+
private ItemStack[] inventory;
private ItemStack[] armor;
private Player player;
-
+
public RestoreInventoryEvent(Player player, ItemStack[] inventory, ItemStack[] armor) {
this.player = player;
this.inventory = inventory;
@@ -18,24 +22,25 @@ public class RestoreInventoryEvent extends CustomEvent {
public ItemStack[] getInventory() {
return this.inventory;
}
-
+
public void setInventory(ItemStack[] inventory) {
this.inventory = inventory;
}
-
+
public ItemStack[] getArmor() {
return this.armor;
}
-
+
public void setArmor(ItemStack[] armor) {
this.armor = armor;
}
-
+
public Player getPlayer() {
return this.player;
}
-
+
public void setPlayer(Player player) {
this.player = player;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/SessionEvent.java b/src/main/java/uk/org/whoami/authme/events/SessionEvent.java
index 9b88cd3a8..0259716d0 100644
--- a/src/main/java/uk/org/whoami/authme/events/SessionEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/SessionEvent.java
@@ -2,21 +2,24 @@ package uk.org.whoami.authme.events;
import uk.org.whoami.authme.cache.auth.PlayerAuth;
+/**
+*
+* @author Xephi59
+*/
public class SessionEvent extends CustomEvent {
-
private PlayerAuth player;
private boolean isLogin;
-
+
public SessionEvent(PlayerAuth auth, boolean isLogin) {
this.player = auth;
this.isLogin = isLogin;
}
-
+
public PlayerAuth getPlayerAuth() {
return this.player;
}
-
+
public void setPlayer(PlayerAuth player) {
this.player = player;
}
@@ -24,4 +27,5 @@ public class SessionEvent extends CustomEvent {
public boolean isLogin() {
return isLogin;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/SpawnTeleportEvent.java b/src/main/java/uk/org/whoami/authme/events/SpawnTeleportEvent.java
index 7bbfc6288..f615b618f 100644
--- a/src/main/java/uk/org/whoami/authme/events/SpawnTeleportEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/SpawnTeleportEvent.java
@@ -3,13 +3,17 @@ package uk.org.whoami.authme.events;
import org.bukkit.Location;
import org.bukkit.entity.Player;
+/**
+*
+* @author Xephi59
+*/
public class SpawnTeleportEvent extends CustomEvent {
-
+
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;
diff --git a/src/main/java/uk/org/whoami/authme/events/StoreInventoryEvent.java b/src/main/java/uk/org/whoami/authme/events/StoreInventoryEvent.java
index 1d5a11a83..a7387f241 100644
--- a/src/main/java/uk/org/whoami/authme/events/StoreInventoryEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/StoreInventoryEvent.java
@@ -5,19 +5,22 @@ import org.bukkit.inventory.ItemStack;
import uk.org.whoami.authme.cache.backup.FileCache;
+/**
+*
+* @author Xephi59
+*/
public class StoreInventoryEvent extends CustomEvent {
-
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, FileCache fileCache) {
this.player = player;
this.inventory = fileCache.readCache(player.getName().toLowerCase()).getInventory();
@@ -27,24 +30,25 @@ public class StoreInventoryEvent extends CustomEvent {
public ItemStack[] getInventory() {
return this.inventory;
}
-
+
public void setInventory(ItemStack[] inventory) {
this.inventory = inventory;
}
-
+
public ItemStack[] getArmor() {
return this.armor;
}
-
+
public void setArmor(ItemStack[] armor) {
this.armor = armor;
}
-
+
public Player getPlayer() {
return this.player;
}
-
+
public void setPlayer(Player player) {
this.player = player;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/events/UncancellableEvent.java b/src/main/java/uk/org/whoami/authme/events/UncancellableEvent.java
index 1c6f17e40..c746ac73b 100644
--- a/src/main/java/uk/org/whoami/authme/events/UncancellableEvent.java
+++ b/src/main/java/uk/org/whoami/authme/events/UncancellableEvent.java
@@ -4,21 +4,23 @@ import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
+/**
+*
+* @author Xephi59
+*/
public class UncancellableEvent extends Event {
-
-
+
private static final HandlerList handlers = new HandlerList();
private static Server s;
-
public HandlerList getHandlers() {
return handlers;
}
-
+
public static HandlerList getHandlerList() {
return handlers;
}
-
+
public static Server getServer() {
return s;
}
diff --git a/src/main/java/uk/org/whoami/authme/filter/ConsoleFilter.java b/src/main/java/uk/org/whoami/authme/filter/ConsoleFilter.java
index 190495737..b86512080 100644
--- a/src/main/java/uk/org/whoami/authme/filter/ConsoleFilter.java
+++ b/src/main/java/uk/org/whoami/authme/filter/ConsoleFilter.java
@@ -3,10 +3,14 @@ package uk.org.whoami.authme.filter;
import java.util.logging.Filter;
import java.util.logging.LogRecord;
+/**
+*
+* @author Xephi59
+*/
public class ConsoleFilter implements Filter {
public ConsoleFilter() {}
-
+
@Override
public boolean isLoggable(LogRecord record) {
String logM = record.getMessage().toLowerCase();
@@ -17,7 +21,5 @@ public class ConsoleFilter implements Filter {
record.setMessage(playername + " issued an AuthMe command!");
return true;
}
-
-
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/gui/CustomButton.java b/src/main/java/uk/org/whoami/authme/gui/CustomButton.java
index 67ad0695d..9ba873a85 100644
--- a/src/main/java/uk/org/whoami/authme/gui/CustomButton.java
+++ b/src/main/java/uk/org/whoami/authme/gui/CustomButton.java
@@ -6,7 +6,7 @@ import org.getspout.spoutapi.gui.GenericButton;
public class CustomButton extends GenericButton
{
public Clickable handleRef = null;
-
+
public CustomButton(Clickable c) {
handleRef = c;
}
@@ -15,7 +15,7 @@ public class CustomButton extends GenericButton
public void onButtonClick(ButtonClickEvent event) {
handleRef.handleClick(event);
}
-
+
public CustomButton setMidPos(int x, int y)
{
this.setX(x)
@@ -24,4 +24,5 @@ public class CustomButton extends GenericButton
.shiftYPos(-(height / 2));
return this;
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/gui/screens/LoginScreen.java b/src/main/java/uk/org/whoami/authme/gui/screens/LoginScreen.java
index 91e9b13f3..654445267 100644
--- a/src/main/java/uk/org/whoami/authme/gui/screens/LoginScreen.java
+++ b/src/main/java/uk/org/whoami/authme/gui/screens/LoginScreen.java
@@ -27,7 +27,6 @@ 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;
@@ -35,17 +34,16 @@ public class LoginScreen extends GenericPopup implements Clickable{
private GenericLabel textLbl;
private GenericLabel errorLbl;
- String exitTxt = spoutCfg.getString("LoginScreen.exit button"); //"Quit";
- String loginTxt = spoutCfg.getString("LoginScreen.login button"); //"Login";
- String exitMsg = spoutCfg.getString("LoginScreen.exit message"); //"Good Bye";
- String title = spoutCfg.getString("LoginScreen.title"); //"LOGIN"
+ 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();
}
@@ -53,7 +51,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
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)
@@ -64,7 +61,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
.setX(maxWidth / 2 )
.setY(25);
this.attachWidget(plugin, titleLbl);
-
int ystart = 25 + h + part/2;
for (int x=0; x gameMode = new HashMap();
private Utils utils = Utils.getInstance();
@@ -96,8 +95,7 @@ public class AuthMePlayerListener implements Listener {
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
-
-
+
if (Utils.getInstance().isUnrestricted(player)) {
return;
}
@@ -122,30 +120,28 @@ public class AuthMePlayerListener implements Listener {
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.allowCommands.contains(cmd)) {
return;
}
-
event.setMessage("/notloggedin");
event.setCancelled(true);
}
-
+
@EventHandler( priority = EventPriority.NORMAL)
public void onPlayerNormalChat(AsyncPlayerChatEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
-
+
if(plugin.CitizensVersion != 0) {
if (plugin.getCitizensCommunicator().isNPC(player, plugin)) {
return;
}
}
-
+
if(plugin.CombatTag != 0) {
if (CombatTagComunicator.isNPC(player)) {
return;
@@ -159,7 +155,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -167,7 +163,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -178,7 +174,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -193,14 +188,13 @@ public class AuthMePlayerListener implements Listener {
}});
}
}
-
+
@EventHandler( priority = EventPriority.HIGH)
public void onPlayerHighChat(AsyncPlayerChatEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
@@ -223,7 +217,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -231,7 +225,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -242,7 +236,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -257,14 +250,13 @@ public class AuthMePlayerListener implements Listener {
}});
}
}
-
+
@EventHandler( priority = EventPriority.MONITOR)
public void onPlayerChat(AsyncPlayerChatEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
@@ -287,7 +279,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -295,7 +287,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -306,7 +298,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -321,14 +312,13 @@ public class AuthMePlayerListener implements Listener {
}});
}
}
-
+
@EventHandler( priority = EventPriority.HIGHEST)
public void onPlayerHighestChat(AsyncPlayerChatEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
@@ -351,7 +341,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -359,7 +349,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -370,7 +360,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -385,15 +374,13 @@ public class AuthMePlayerListener implements Listener {
}});
}
}
-
-
+
@EventHandler( priority = EventPriority.LOWEST)
public void onPlayerEarlyChat(AsyncPlayerChatEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
@@ -416,7 +403,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -424,7 +411,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -435,7 +422,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -456,8 +442,7 @@ public class AuthMePlayerListener implements Listener {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
-
+
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
@@ -480,7 +465,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
+
String cmd = event.getMessage().split(" ")[0];
if (!Settings.isChatAllowed && !(Settings.allowCommands.contains(cmd))) {
@@ -488,7 +473,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
return;
}
-
+
if (!event.isAsynchronous()) {
if (data.isAuthAvailable(name)) {
player.sendMessage(m._("login_msg"));
@@ -499,7 +484,6 @@ public class AuthMePlayerListener implements Listener {
player.sendMessage(m._("reg_msg"));
}
} else {
-
Bukkit.getScheduler().runTask(plugin, new Runnable()
{
@Override
@@ -520,7 +504,6 @@ public class AuthMePlayerListener implements Listener {
if (event.isCancelled() || event.getPlayer() == null) {
return;
}
-
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
@@ -536,7 +519,7 @@ public class AuthMePlayerListener implements Listener {
if (!Settings.isForcedRegistrationEnabled) {
return;
}
-
+
if (!Settings.isMovementAllowed) {
event.setTo(event.getFrom());
return;
@@ -545,7 +528,6 @@ public class AuthMePlayerListener implements Listener {
if (Settings.getMovementRadius == 0) {
return;
}
-
int radius = Settings.getMovementRadius;
Location spawn = player.getWorld().getSpawnLocation();
@@ -559,62 +541,44 @@ public class AuthMePlayerListener implements Listener {
}
if (Spawn.getInstance().getLocation() != null)
spawn = Spawn.getInstance().getLocation();
-
+
if ((spawn.distance(player.getLocation()) > radius) ) {
event.getPlayer().teleport(spawn);
}
-
}
-
+
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerLogin(PlayerLoginEvent event) {
final Player player = event.getPlayer();
final String name = player.getName().toLowerCase();
-
+
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return;
}
-
+
if (player.isOnline() && Settings.isForceSingleSessionEnabled) {
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick"));
return;
}
-
- if(!event.isAsynchronous()) {
- if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
- if(!Settings.isSessionsEnabled) {
- LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
- } else if(PlayerCache.getInstance().isAuthenticated(name)) {
- if(!Settings.sessionExpireOnIpChange)
- if(LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
- LimboCache.getInstance().deleteLimboPlayer(name);
- }
- LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
- }
- }
- } else {
- Bukkit.getScheduler().runTask(plugin, new Runnable() {
- @Override
- public void run() {
- if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
- if(!Settings.isSessionsEnabled) {
- LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
- } else if(PlayerCache.getInstance().isAuthenticated(name)) {
- if(!Settings.sessionExpireOnIpChange)
- if(LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
- LimboCache.getInstance().deleteLimboPlayer(name);
- }
- LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
- }
- }
-
- }
-
- });
- }
-
+ //Run that asynchronous
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
+ if(!Settings.isSessionsEnabled) {
+ LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
+ } else if(PlayerCache.getInstance().isAuthenticated(name)) {
+ if(!Settings.sessionExpireOnIpChange)
+ if(LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
+ LimboCache.getInstance().deleteLimboPlayer(name);
+ }
+ LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
+ }
+ }
+ }
+ });
//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());
@@ -625,9 +589,8 @@ public class AuthMePlayerListener implements Listener {
LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
}
return;
-
}
-
+
int min = Settings.getMinNickLength;
int max = Settings.getMaxNickLength;
String regex = Settings.getNickRegex;
@@ -645,7 +608,7 @@ public class AuthMePlayerListener implements Listener {
}
return;
}
-
+
if (Settings.isKickNonRegisteredEnabled) {
if (!data.isAuthAvailable(name)) {
event.disallow(Result.KICK_OTHER, m._("reg_only"));
@@ -658,6 +621,7 @@ public class AuthMePlayerListener implements Listener {
event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
return;
}
+
if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
event.allow();
return;
@@ -673,7 +637,6 @@ public class AuthMePlayerListener implements Listener {
}
}
}
-
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerJoin(PlayerJoinEvent event) {
@@ -699,9 +662,13 @@ public class AuthMePlayerListener implements Listener {
String ip = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) {
try {
- ip = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
+ for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
+ if (pp.getName().toLowerCase() == name) {
+ ip = pp.getAddress().getAddress().getHostAddress();
+ break;
+ }
+ }
} catch (NoClassDefFoundError ncdfe) {
- ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
}
}
if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
@@ -712,17 +679,13 @@ public class AuthMePlayerListener implements Listener {
plugin.getServer().banIP(ip);
return;
}
-
+
if (data.isAuthAvailable(name)) {
-
-
if (Settings.isSessionsEnabled) {
PlayerAuth auth = data.getAuth(name);
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) ) {
plugin.getServer().getPluginManager().callEvent(new SessionEvent(auth, true));
@@ -756,10 +719,8 @@ public class AuthMePlayerListener implements Listener {
}
// isent in session or session was ended correctly
LimboCache.getInstance().addLimboPlayer(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());
-
} else {
if(!Settings.unRegisteredGroup.isEmpty()){
utils.setGroup(player, Utils.groupType.UNREGISTERED);
@@ -768,9 +729,6 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
-
-
-
if(Settings.protectInventoryBeforeLogInEnabled) {
try {
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
@@ -783,10 +741,8 @@ public class AuthMePlayerListener implements Listener {
} catch (NullPointerException ex) {
}
}
-
if(player.isOp())
player.setOp(false);
-
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);
@@ -797,25 +753,19 @@ public class AuthMePlayerListener implements Listener {
player.teleport(tpEvent.getTo());
}
}
-
-
String msg = data.isAuthAvailable(name) ? m._("login_msg") : m._("reg_msg");
int time = Settings.getRegistrationTimeout * 20;
int msgInterval = Settings.getWarnMessageInterval;
if (time != 0) {
-
BukkitTask id = sched.runTaskLater(plugin, new TimeoutTask(plugin, name), time);
if(!LimboCache.getInstance().hasLimboPlayer(name))
LimboCache.getInstance().addLimboPlayer(player);
-
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id.getTaskId());
}
-
if(!LimboCache.getInstance().hasLimboPlayer(name))
LimboCache.getInstance().addLimboPlayer(player);
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, msg, msgInterval));
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
-
if (Settings.isForceSurvivalModeEnabled)
sched.runTask(plugin, new Runnable() {
public void run() {
@@ -823,32 +773,34 @@ public class AuthMePlayerListener implements Listener {
}
});
}
-
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer() == null) {
return;
}
-
-
+
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
-
+
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
return;
}
-
- if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
- if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
- PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),(int)player.getLocation().getX(),(int)player.getLocation().getY(),(int)player.getLocation().getZ());
- try {
- data.updateQuitLoc(auth);
- } catch (NullPointerException npe) { }
-
- }
- }
-
+
+ if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
+ if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
+ final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),(int)player.getLocation().getX(),(int)player.getLocation().getY(),(int)player.getLocation().getZ());
+ try {
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ data.updateQuitLoc(auth);
+ }
+ });
+ } catch (NullPointerException npe) { }
+ }
+ }
+
if (LimboCache.getInstance().hasLimboPlayer(name)) {
//System.out.println("e' nel quit");
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
@@ -870,18 +822,13 @@ public class AuthMePlayerListener implements Listener {
}
try {
PlayerCache.getInstance().removePlayer(name);
- } catch (NullPointerException npe) {
-
- }
- try {
PlayersLogs.players.remove(player.getName());
PlayersLogs.getInstance().save();
+ player.getVehicle().eject();
} catch (NullPointerException ex) {
-
}
if (gameMode.containsKey(name)) gameMode.remove(name);
player.saveData();
-
}
@EventHandler(priority=EventPriority.MONITOR)
@@ -908,8 +855,13 @@ public class AuthMePlayerListener implements Listener {
String name = player.getName().toLowerCase();
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
(Settings.isSaveQuitLocationEnabled.booleanValue()) && data.isAuthAvailable(name)) {
- PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
- this.data.updateQuitLoc(auth);
+ final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ data.updateQuitLoc(auth);
+ }
+ });
}
if (LimboCache.getInstance().hasLimboPlayer(name))
@@ -936,7 +888,6 @@ public class AuthMePlayerListener implements Listener {
player.teleport(tpEvent.getTo());
}
} catch (NullPointerException npe) {
-
}
this.utils.addNormal(player, limbo.getGroup());
player.setOp(limbo.getOperator());
@@ -952,6 +903,7 @@ public class AuthMePlayerListener implements Listener {
PlayersLogs.players.remove(player.getName());
PlayersLogs.getInstance().save();
if (gameMode.containsKey(name)) gameMode.remove(name);
+ player.getVehicle().eject();
player.saveData();
} catch (NullPointerException ex) {}
}
@@ -982,11 +934,11 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
}
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.isCancelled() || event.getPlayer() == null) return;
if (event.getClickedBlock() == null) return;
-
+
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
@@ -1003,17 +955,14 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
-
+
try {
final int sign = event.getClickedBlock().getTypeId();
if (sign == Material.SIGN_POST.getId() || sign == Material.WALL_SIGN.getId()) {
event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
}
} catch (NullPointerException npe) {
-
}
-
-
event.setCancelled(true);
}
@@ -1063,8 +1012,6 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
- //System.out.println("player try to drop item");
-
event.setCancelled(true);
}
@@ -1091,8 +1038,8 @@ public class AuthMePlayerListener implements Listener {
}
event.setCancelled(true);
}
-
- @EventHandler(priority = EventPriority.MONITOR)
+
+ @EventHandler(priority = EventPriority.LOWEST)
public void onSignChange(SignChangeEvent event) {
if (event.isCancelled() || event.getPlayer() == null || event == null) {
return;
@@ -1114,8 +1061,5 @@ public class AuthMePlayerListener implements Listener {
}
}
event.setCancelled(true);
-
}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/main/java/uk/org/whoami/authme/listener/AuthMeSpoutListener.java b/src/main/java/uk/org/whoami/authme/listener/AuthMeSpoutListener.java
index 1357ce6cf..2846408cc 100644
--- a/src/main/java/uk/org/whoami/authme/listener/AuthMeSpoutListener.java
+++ b/src/main/java/uk/org/whoami/authme/listener/AuthMeSpoutListener.java
@@ -17,19 +17,16 @@ import uk.org.whoami.authme.settings.SpoutCfg;
public class AuthMeSpoutListener implements Listener {
private DataSource data;
-
public AuthMeSpoutListener(DataSource 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()));
- }
- }
- }
+ 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/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java b/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
index 81fe7a60a..c57674711 100644
--- a/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
+++ b/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
@@ -8,9 +8,9 @@ import org.bukkit.entity.Entity;
import uk.org.whoami.authme.AuthMe;
public class CitizensCommunicator {
-
+
public AuthMe instance;
-
+
public CitizensCommunicator(AuthMe instance) {
this.instance = instance;
}
diff --git a/src/main/java/uk/org/whoami/authme/plugin/manager/CombatTagComunicator.java b/src/main/java/uk/org/whoami/authme/plugin/manager/CombatTagComunicator.java
index dafa9b3af..caa7b5a56 100644
--- a/src/main/java/uk/org/whoami/authme/plugin/manager/CombatTagComunicator.java
+++ b/src/main/java/uk/org/whoami/authme/plugin/manager/CombatTagComunicator.java
@@ -16,8 +16,9 @@ import org.bukkit.entity.Player;
* @author stefano
*/
public abstract class CombatTagComunicator {
- static CombatTagApi combatApi;
-
+
+ static CombatTagApi combatApi;
+
public CombatTagComunicator() {
if(Bukkit.getServer().getPluginManager().getPlugin("CombatTag") != null){
combatApi = new CombatTagApi((CombatTag)Bukkit.getServer().getPluginManager().getPlugin("CombatTag"));
@@ -30,16 +31,15 @@ public abstract class CombatTagComunicator {
* @return true if player is in combat
*/
public abstract boolean isInCombat(String player);
-
- /**
+
+ /**
* Checks to see if the player is in combat. The combat time can be configured by the server owner
* If the player has died while in combat the player is no longer considered in combat and as such will return false
* @param player
* @return true if player is in combat
*/
- public abstract boolean isInCombat(Player player);
-
- /**
+ public abstract boolean isInCombat(Player player);
+ /**
* Returns the time before the tag is over
* -1 if the tag has expired
* -2 if the player is not in combat
@@ -48,25 +48,25 @@ public abstract class CombatTagComunicator {
*/
public abstract long getRemainingTagTime(String player);
- //(Implemented in 3.8)
- /**
+ /**
* 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"));
- return combatApi.isNPC(player);
- }
- } catch (ClassCastException ex) {
- return false;
- } catch (NullPointerException npe) {
- return false;
- } catch (NoClassDefFoundError ncdfe) {
- return false;
- }
- return false;
- }
+ public static boolean isNPC(Entity player) {
+ try {
+ if(Bukkit.getServer().getPluginManager().getPlugin("CombatTag") != null){
+ combatApi = new CombatTagApi((CombatTag) Bukkit.getServer().getPluginManager().getPlugin("CombatTag"));
+ return combatApi.isNPC(player);
+ }
+ } catch (ClassCastException ex) {
+ return false;
+ } catch (NullPointerException npe) {
+ return false;
+ } catch (NoClassDefFoundError ncdfe) {
+ return false;
+ }
+ return false;
+ }
+
}
diff --git a/src/main/java/uk/org/whoami/authme/security/PasswordSecurity.java b/src/main/java/uk/org/whoami/authme/security/PasswordSecurity.java
index efea449a4..e16affc40 100644
--- a/src/main/java/uk/org/whoami/authme/security/PasswordSecurity.java
+++ b/src/main/java/uk/org/whoami/authme/security/PasswordSecurity.java
@@ -31,19 +31,16 @@ import uk.org.whoami.authme.AuthMe;
import uk.org.whoami.authme.settings.Settings;
public class PasswordSecurity {
-
+
private static SecureRandom rnd = new SecureRandom();
public static HashMap userSalt = new HashMap();
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));
}
private static String getSHA1(String message) throws NoSuchAlgorithmException {
@@ -51,20 +48,15 @@ public class PasswordSecurity {
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));
}
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));
}
public static String getWhirlpool(String message) {
@@ -79,35 +71,28 @@ public class PasswordSecurity {
private static String getSaltedHash(String message, String salt) throws NoSuchAlgorithmException {
return "$SHA$" + salt + "$" + getSHA256(getSHA256(message) + salt);
}
-
- //
- // VBULLETIN 3.X 4.X METHOD
- //
-
+
private static String getSaltedMd5(String message, String salt) throws NoSuchAlgorithmException {
return "$MD5vb$" + salt + "$" + getMD5(getMD5(message) + salt);
}
-
+
private static String getSaltedMyBB(String message, String salt) throws NoSuchAlgorithmException {
return getMD5(getMD5(salt)+ getMD5(message));
}
-
+
private static String getXAuth(String message, String salt) {
String hash = getWhirlpool(salt + message).toLowerCase();
int saltPos = (message.length() >= hash.length() ? hash.length() - 1 : message.length());
return hash.substring(0, saltPos) + salt + hash.substring(saltPos);
}
-
- private static String getSaltedIPB3(String message, String salt) throws NoSuchAlgorithmException {
- return getMD5(getMD5(salt) + getMD5(message));
-
+ private static String getSaltedIPB3(String message, String salt) throws NoSuchAlgorithmException {
+ return getMD5(getMD5(salt) + getMD5(message));
}
private static String createSalt(int length) throws NoSuchAlgorithmException {
byte[] msg = new byte[40];
rnd.nextBytes(msg);
-
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
sha1.reset();
byte[] digest = sha1.digest(msg);
@@ -203,10 +188,9 @@ public class PasswordSecurity {
}
public static boolean comparePasswordWithHash(String password, String hash, String playername) throws NoSuchAlgorithmException {
- //System.out.println("[Authme Debug] debug hashString"+hash);
if(hash.contains("$H$")) {
- PhpBB checkHash = new PhpBB();
- return checkHash.phpbb_check_hash(password, hash);
+ PhpBB checkHash = new PhpBB();
+ return checkHash.phpbb_check_hash(password, hash);
}
if(!Settings.getMySQLColumnSalt.isEmpty() && Settings.getPasswordHash == HashAlgorithm.IPB3) {
String saltipb = AuthMe.getInstance().database.getAuth(playername).getSalt();
@@ -241,32 +225,23 @@ public class PasswordSecurity {
if(hash.length() < 32 ) {
return hash.equals(password);
}
-
if (hash.length() == 32) {
return hash.equals(getMD5(password));
}
-
if (hash.length() == 40) {
return hash.equals(getSHA1(password));
}
-
if (hash.length() == 140) {
int saltPos = (password.length() >= hash.length() ? hash.length() - 1 : password.length());
String salt = hash.substring(saltPos, saltPos + 12);
return hash.equals(getXAuth(password, salt));
}
-
if (hash.contains("$")) {
- //System.out.println("[Authme Debug] debug hashString"+hash);
String[] line = hash.split("\\$");
if (line.length > 3 && line[1].equals("SHA")) {
return hash.equals(getSaltedHash(password, line[2]));
} else {
if(line[1].equals("MD5vb")) {
- //System.out.println("[Authme Debug] password hashed from Authme"+getSaltedMd5(password, line[2]));
- //System.out.println("[Authme Debug] salt from Authme"+line[2]);
- //System.out.println("[Authme Debug] equals? Authme: "+hash);
- //hash = "$MD5vb$" + salt + "$" + hash;
return hash.equals(getSaltedMd5(password, line[2]));
}
}
@@ -280,11 +255,10 @@ public class PasswordSecurity {
return phpBBhash;
}
-
private static String getPlainText(String password) {
return password;
}
-
+
public static String getPhPFusion(String msg, String keyString) {
String digest = null;
String algo = "HmacSHA256";
@@ -292,9 +266,7 @@ public class PasswordSecurity {
SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), algo);
Mac mac = Mac.getInstance(algo);
mac.init(key);
-
byte[] bytes = mac.doFinal(msg.getBytes("ASCII"));
-
StringBuffer hash = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
@@ -315,4 +287,5 @@ public class PasswordSecurity {
MD5, SHA1, SHA256, WHIRLPOOL, XAUTH, MD5VB, PHPBB, PLAINTEXT, MYBB, IPB3, PHPFUSION, SMF, XFSHA1, XFSHA256, SALTED2MD5, JOOMLA
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/security/PhpBB.java b/src/main/java/uk/org/whoami/authme/security/PhpBB.java
index 8532c243e..e9af72c66 100644
--- a/src/main/java/uk/org/whoami/authme/security/PhpBB.java
+++ b/src/main/java/uk/org/whoami/authme/security/PhpBB.java
@@ -17,43 +17,34 @@ public class PhpBB {
private String itoa64 =
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
public String phpbb_hash(String password) {
String random_state = unique_id();
String random = "";
int count = 6;
-
if (random.length() < count) {
random = "";
-
for (int i = 0; i < count; i += 16) {
random_state = md5(unique_id() + 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);
}
- // global $config;
- // private boolean dss_seeded = false;
-
private String unique_id() {
return unique_id("c");
}
-
+
private String unique_id(String extra) {
//TODO: Maybe check the salt?
return "1234567890abcdef";
}
-
private String _hash_gensalt_private(String input, String itoa64) {
return _hash_gensalt_private(input, itoa64, 6);
}
@@ -64,13 +55,11 @@ private String _hash_gensalt_private(
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;
}
@@ -80,58 +69,41 @@ private String _hash_gensalt_private(
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 = "*";
-
- // Check for correct hash
+ 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;
}
@@ -154,18 +126,16 @@ private String _hash_gensalt_private(
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++) {
@@ -188,4 +158,3 @@ private String _hash_gensalt_private(
return buf.toString();
}
}
-
diff --git a/src/main/java/uk/org/whoami/authme/security/RandomString.java b/src/main/java/uk/org/whoami/authme/security/RandomString.java
index e599d8e60..4ae022a1b 100644
--- a/src/main/java/uk/org/whoami/authme/security/RandomString.java
+++ b/src/main/java/uk/org/whoami/authme/security/RandomString.java
@@ -2,16 +2,20 @@ package uk.org.whoami.authme.security;
import java.util.Random;
+/**
+*
+* @author Xephi59
+*/
public class RandomString
{
- private static final char[] symbols = new char[36];
+ private static final char[] chars = new char[36];
static {
for (int idx = 0; idx < 10; ++idx)
- symbols[idx] = (char) ('0' + idx);
+ chars[idx] = (char) ('0' + idx);
for (int idx = 10; idx < 36; ++idx)
- symbols[idx] = (char) ('a' + idx - 10);
+ chars[idx] = (char) ('a' + idx - 10);
}
private final Random random = new Random();
@@ -28,7 +32,7 @@ public class RandomString
public String nextString()
{
for (int idx = 0; idx < buf.length; ++idx)
- buf[idx] = symbols[random.nextInt(symbols.length)];
+ buf[idx] = chars[random.nextInt(chars.length)];
return new String(buf);
}
diff --git a/src/main/java/uk/org/whoami/authme/security/Whirlpool.java b/src/main/java/uk/org/whoami/authme/security/Whirlpool.java
index 01201c5b5..0066bfa3c 100644
--- a/src/main/java/uk/org/whoami/authme/security/Whirlpool.java
+++ b/src/main/java/uk/org/whoami/authme/security/Whirlpool.java
@@ -131,26 +131,6 @@ class Whirlpool {
C[t][x] = (C[t - 1][x] >>> 8) | ((C[t - 1][x] << 56));
}
}
- /*
- for (int t = 0; t < 8; t++) {
- System.out.println("static const u64 C" + t + "[256] = {");
- for (int i = 0; i < 64; i++) {
- System.out.print(" ");
- for (int j = 0; j < 4; j++) {
- String v = Long.toHexString(C[t][4*i + j]);
- while (v.length() < 16) {
- v = "0" + v;
- }
- System.out.print(" LL(0x" + v + "),");
- }
- System.out.println();
- }
- System.out.println("};");
- System.out.println();
- }
- System.out.println();
- //*/
-
/*
* build the round constants:
*/
@@ -167,18 +147,6 @@ class Whirlpool {
(C[6][i + 6] & 0x000000000000ff00L) ^
(C[7][i + 7] & 0x00000000000000ffL);
}
- /*
- System.out.println("static const u64 rc[R + 1] = {");
- for (int r = 0; r <= R; r++) {
- String v = Long.toHexString(rc[r]);
- while (v.length() < 16) {
- v = "0" + v;
- }
- System.out.println(" LL(0x" + v + "),");
- }
- System.out.println("};");
- System.out.println();
- //*/
}
/**
@@ -205,10 +173,10 @@ class Whirlpool {
* The hashing state.
*/
protected long[] hash = new long[8];
- protected long[] K = new long[8]; // the round key
+ protected long[] K = new long[8];
protected long[] L = new long[8];
- protected long[] block = new long[8]; // mu(buffer)
- protected long[] state = new long[8]; // the cipher state
+ protected long[] block = new long[8];
+ protected long[] state = new long[8];
public Whirlpool() {
}
@@ -281,8 +249,8 @@ class Whirlpool {
public void NESSIEinit() {
Arrays.fill(bitLength, (byte)0);
bufferBits = bufferPos = 0;
- buffer[0] = 0; // it's only necessary to cleanup buffer[bufferPos].
- Arrays.fill(hash, 0L); // initial value
+ buffer[0] = 0;
+ Arrays.fill(hash, 0L);
}
/**
diff --git a/src/main/java/uk/org/whoami/authme/settings/CustomConfiguration.java b/src/main/java/uk/org/whoami/authme/settings/CustomConfiguration.java
index 66523665e..c98e5895a 100644
--- a/src/main/java/uk/org/whoami/authme/settings/CustomConfiguration.java
+++ b/src/main/java/uk/org/whoami/authme/settings/CustomConfiguration.java
@@ -19,10 +19,10 @@ public class CustomConfiguration extends YamlConfiguration{
public CustomConfiguration(File file)
{
this.configFile = file;
-
+
load();
}
-
+
public void load()
{
try {
@@ -36,7 +36,7 @@ public class CustomConfiguration extends YamlConfiguration{
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())
@@ -46,7 +46,7 @@ public class CustomConfiguration extends YamlConfiguration{
if (out) load();
return out;
}
-
+
public void save() {
try {
super.save(configFile);
@@ -54,7 +54,7 @@ public class CustomConfiguration extends YamlConfiguration{
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()) {
@@ -64,7 +64,6 @@ public class CustomConfiguration extends YamlConfiguration{
fos = new FileOutputStream(file);
byte[] buf = new byte[1024];
int i = 0;
-
while ((i = fis.read(buf)) != -1) {
fos.write(buf, 0, i);
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/Messages.java b/src/main/java/uk/org/whoami/authme/settings/Messages.java
index 630a90c34..db47a950b 100644
--- a/src/main/java/uk/org/whoami/authme/settings/Messages.java
+++ b/src/main/java/uk/org/whoami/authme/settings/Messages.java
@@ -21,17 +21,14 @@ import java.io.File;
public class Messages extends CustomConfiguration {
private static Messages singleton = null;
-
public Messages() {
-
super(new File(Settings.MESSAGE_FILE+"_"+Settings.messagesLanguage+".yml"));
loadDefaults();
loadFile();
singleton = this;
-
}
-
+
private void loadDefaults() {
this.set("logged_in", "&cAlready logged in!");
this.set("not_logged_in", "&cNot logged in!");
@@ -80,7 +77,6 @@ public class Messages extends CustomConfiguration {
private void loadFile() {
this.load();
this.save();
-
}
public String _(String msg) {
@@ -90,13 +86,12 @@ public class Messages extends CustomConfiguration {
}
return msg;
}
-
-
+
public static Messages getInstance() {
if (singleton == null) {
singleton = new Messages();
}
return singleton;
}
-
+
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/PlayersLogs.java b/src/main/java/uk/org/whoami/authme/settings/PlayersLogs.java
index c84e7f974..d439d012b 100644
--- a/src/main/java/uk/org/whoami/authme/settings/PlayersLogs.java
+++ b/src/main/java/uk/org/whoami/authme/settings/PlayersLogs.java
@@ -3,11 +3,15 @@ package uk.org.whoami.authme.settings;
import java.io.File;
import java.util.List;
+/**
+*
+* @author Xephi59
+*/
public class PlayersLogs extends CustomConfiguration {
private static PlayersLogs pllog = null;
public static List players;
-
+
@SuppressWarnings("unchecked")
public PlayersLogs() {
super(new File("./plugins/AuthMe/players.yml"));
@@ -15,16 +19,13 @@ public class PlayersLogs extends CustomConfiguration {
load();
save();
players = (List) this.getList("players");
-
}
-
+
public static PlayersLogs getInstance() {
if (pllog == null) {
pllog = new PlayersLogs();
}
return pllog;
}
-
-
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/Settings.java b/src/main/java/uk/org/whoami/authme/settings/Settings.java
index b066e6477..60e5ff39a 100644
--- a/src/main/java/uk/org/whoami/authme/settings/Settings.java
+++ b/src/main/java/uk/org/whoami/authme/settings/Settings.java
@@ -45,14 +45,13 @@ public final class Settings extends YamlConfiguration {
private static List getRestrictedIp;
public static List getMySQLOtherUsernameColumn = null;
public static List getForcedWorlds = null;
-
public final Plugin plugin;
private final File file;
-
public static DataSourceType getDataSource;
public static HashAlgorithm getPasswordHash;
public static HashAlgorithm rakamakHash;
-
+ public static Boolean useLogging = false;
+
public static Boolean isPermissionCheckEnabled, isRegistrationEnabled, isForcedRegistrationEnabled,
isTeleportToSpawnEnabled, isSessionsEnabled, isChatAllowed, isAllowRestrictedIp,
isMovementAllowed, isKickNonRegisteredEnabled, isForceSingleSessionEnabled,
@@ -61,8 +60,7 @@ public final class Settings extends YamlConfiguration {
getEnablePasswordVerifier, protectInventoryBeforeLogInEnabled, isBackupActivated, isBackupOnStart,
isBackupOnStop, enablePasspartu, isStopEnabled, reloadSupport, rakamakUseIp, noConsoleSpam, removePassword, displayOtherAccounts,
useCaptcha, emailRegistration, multiverse, notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange;
-
-
+
public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort,
getMySQLUsername, getMySQLPassword, getMySQLDatabase, getMySQLTablename,
getMySQLColumnName, getMySQLColumnPassword, getMySQLColumnIp, getMySQLColumnLastLogin,
@@ -70,24 +68,16 @@ public final class Settings extends YamlConfiguration {
getcUnrestrictedName, getRegisteredGroup, messagesLanguage, getMySQLlastlocX, getMySQLlastlocY, getMySQLlastlocZ,
rakamakUsers, rakamakUsersIp, getmailAccount, getmailPassword, getmailSMTP, getMySQLColumnId, getmailSenderName,
getPredefinedSalt, getMailSubject, getMailText;
-
-
+
public static int getWarnMessageInterval, getSessionTimeout, getRegistrationTimeout, getMaxNickLength,
getMinNickLength, getPasswordMinLen, getMovementRadius, getmaxRegPerIp, getNonActivatedGroup,
passwordMaxLength, getRecoveryPassLength, getMailPort, maxLoginTry, captchaLength, saltLength, getmaxRegPerEmail;
-
+
protected static YamlConfiguration configFile;
-
+
public Settings(Plugin plugin) {
- //super(new File(Settings.PLUGIN_FOLDER + "/config.yml"), this.plugin);
this.file = new File(plugin.getDataFolder(),"config.yml");
-
this.plugin = plugin;
-
-
-
- //options().indent(4);
- // Override to always indent 4 spaces
if(exists()) {
load();
}
@@ -95,21 +85,14 @@ public final class Settings extends YamlConfiguration {
loadDefaults(file.getName());
load();
}
-
configFile = (YamlConfiguration) plugin.getConfig();
-
- //saveDefaults();
-
}
-
@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);
@@ -220,16 +203,15 @@ public void loadConfigOptions() {
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);
saveDefaults();
}
-
@SuppressWarnings("unchecked")
public static void reloadConfigOptions(YamlConfiguration newConfig) {
configFile = newConfig;
-
- //plugin.getLogger().info("RELoading Configuration File...");
+
messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
@@ -340,114 +322,84 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
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);
+
}
-
public void mergeConfig() {
-
if (contains("settings.restrictions.allowedPluginTeleportHandler"))
set("settings.restrictions.allowedPluginTeleportHandler", null);
-
if(!contains("DataSource.mySQLColumnEmail"))
set("DataSource.mySQLColumnEmail","email");
-
if(contains("Email.GmailAccount")) {
set("Email.mailAccount", getString("Email.GmailAccount"));
set("Email.GmailAccount", null);
}
-
if(contains("Email.GmailPassword")) {
set("Email.mailPassword", getString("Email.GmailPassword"));
set("Email.GmailPassword", null);
}
-
if(!contains("Email.RecoveryPasswordLength"))
set("Email.RecoveryPasswordLength", 8);
-
if(!contains("Email.mailPort"))
set("Email.mailPort", 465);
-
if(!contains("Email.mailSMTP"))
set("Email.mailSMTP", "smtp.gmail.com");
-
if(!contains("Email.mailAccount"))
set("Email.mailAccount", "");
-
if(!contains("Email.mailPassword"))
set("Email.mailPassword", "");
-
if(!contains("ExternalBoardOptions.mySQLOtherUsernameColumns"))
set("ExternalBoardOptions.mySQLOtherUsernameColumns", new ArrayList());
-
if(!contains("settings.restrictions.displayOtherAccounts"))
set("settings.restrictions.displayOtherAccounts", true);
-
if(!contains("DataSource.mySQLColumnId"))
set("DataSource.mySQLColumnId", "id");
-
if(!contains("Email.mailSenderName"))
set("Email.mailSenderName", "");
-
if(!contains("Xenoforo.predefinedSalt"))
set("Xenoforo.predefinedSalt", "");
-
if(!contains("Security.captcha.useCaptcha"))
set("Security.captcha.useCaptcha", false);
-
if(!contains("Security.captcha.maxLoginTry"))
set("Security.captcha.maxLoginTry", 5);
-
if(!contains("Security.captcha.captchaLength"))
set("Security.captcha.captchaLength", 5);
-
if(!contains("Email.mailSubject"))
set("Email.mailSubject", "");
-
if(!contains("Email.mailText"))
set("Email.mailText", "Dear , \n\n This is your new AuthMe password for the server : \n\n \n\n \n\n Do not forget to change password after login! \n /changepassword newPassword");
-
if(!contains("settings.registration.enableEmailRegistrationSystem"))
set("settings.registration.enableEmailRegistrationSystem", false);
-
if(!contains("settings.security.doubleMD5SaltLength"))
set("settings.security.doubleMD5SaltLength", 8);
-
if(!contains("Email.maxRegPerEmail"))
set("Email.maxRegPerEmail", 1);
-
if(!contains("Hooks.multiverse")) {
set("Hooks.multiverse", true);
set("Hooks.chestshop", true);
set("Hooks.notifications", true);
set("Hooks.bungeecord", false);
}
-
if(!contains("settings.restrictions.ForceSpawnOnTheseWorlds"))
set("settings.restrictions.ForceSpawnOnTheseWorlds", new ArrayList());
-
if(!contains("settings.restrictions.banUnsafedIP"))
set("settings.restrictions.banUnsafedIP", false);
-
if(!contains("settings.registration.doubleEmailCheck"))
set("settings.registration.doubleEmailCheck", false);
-
if(!contains("settings.sessions.sessionExpireOnIpChange"))
set("settings.sessions.sessionExpireOnIpChange", false);
+ if(!contains("Security.console.logConsole"))
+ set("Security.console.logConsole", false);
plugin.getLogger().info("Merge new Config Options if needed..");
plugin.saveConfig();
-
+
return;
}
- /**
- *
- *
- *
- */
+
private static HashAlgorithm getPasswordHash() {
String key = "settings.security.passwordHash";
-
try {
return PasswordSecurity.HashAlgorithm.valueOf(configFile.getString(key,"SHA256").toUpperCase());
} catch (IllegalArgumentException ex) {
@@ -455,8 +407,7 @@ public void mergeConfig() {
return PasswordSecurity.HashAlgorithm.SHA256;
}
}
-
-
+
private static HashAlgorithm getRakamakHash() {
String key = "Converter.Rakamak.newPasswordHash";
@@ -467,15 +418,9 @@ public void mergeConfig() {
return PasswordSecurity.HashAlgorithm.SHA256;
}
}
-
- /**
- *
- *
- *
- */
+
private static DataSourceType getDataSource() {
String key = "DataSource.backend";
-
try {
return DataSource.DataSourceType.valueOf(configFile.getString(key).toUpperCase());
} catch (IllegalArgumentException ex) {
@@ -490,48 +435,33 @@ public void mergeConfig() {
* player that join the server, so player has a restricted access
*/
public static Boolean getRestrictedIp(String name, String ip) {
-
+
Iterator iter = getRestrictedIp.iterator();
-
- /* setup a few boolean variables to test the parameters */
Boolean trueonce = false;
Boolean namefound = false;
-
while (iter.hasNext()) {
String[] args = iter.next().split(";");
-
String testname = args[0];
String testip = args[1];
-
- /** Changing this logic to be more customized
- * test each case against the entire
- * list not just the first one in the list.*/
-
- /* Fist Check the name */
if(testname.equalsIgnoreCase(name) ) {
- namefound = true;
- /* Check to see if the IP is the same */
- if(testip.equalsIgnoreCase(ip)) {
- trueonce = true;
- };
- }
- }
- // if the name is not found in the list let the user pass they are not being monitored
+ namefound = true;
+ if(testip.equalsIgnoreCase(ip)) {
+ trueonce = true;
+ };
+ }
+ }
if ( namefound == false){
return true;
}
else {
- // if the name and IP was found once in the list let the user pass they are in the config
if ( trueonce == true ){
return true;
- // otherwise nip them in the bud and THEY SHALL NOT PASS!
} else {
return false;
}
}
}
-
/**
* Loads the configuration from disk
*
@@ -545,7 +475,7 @@ public void mergeConfig() {
return false;
}
}
-
+
public final void reload() {
load();
loadDefaults(file.getName());
@@ -599,11 +529,9 @@ public void mergeConfig() {
boolean success = save();
options().copyDefaults(false);
options().copyHeader(false);
-
return success;
}
-
/**
* Clears current configuration defaults
*/
@@ -611,7 +539,7 @@ public void mergeConfig() {
setDefaults(new MemoryConfiguration());
}
- /**
+/**
* Check loaded defaults against current configuration
*
* @return false When all defaults aren't present in config
@@ -622,17 +550,9 @@ public void mergeConfig() {
}
return getKeys(true).containsAll(getDefaults().getKeys(true));
}
- /*
- public static Settings getInstance() {
- if (singleton == null) {
- singleton = new Settings();
- }
- return singleton;
- }
-*/
+
public static String checkLang(String lang) {
for(messagesLang language: messagesLang.values()) {
- //System.out.println(language.toString());
if(lang.toLowerCase().contains(language.toString())) {
ConsoleLogger.info("Set Language: "+lang);
return lang;
@@ -641,8 +561,9 @@ public void mergeConfig() {
ConsoleLogger.info("Set Default Language: En ");
return "en";
}
-
+
public enum messagesLang {
en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn
- }
+ }
+
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/Spawn.java b/src/main/java/uk/org/whoami/authme/settings/Spawn.java
index 29b27c9b8..16a85d104 100644
--- a/src/main/java/uk/org/whoami/authme/settings/Spawn.java
+++ b/src/main/java/uk/org/whoami/authme/settings/Spawn.java
@@ -7,8 +7,12 @@ import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Location;
+/**
+*
+* @author Xephi59
+*/
public class Spawn extends CustomConfiguration {
-
+
private static Spawn spawn;
private static List emptyList = new ArrayList();
@@ -19,7 +23,7 @@ public class Spawn extends CustomConfiguration {
save();
saveDefault();
}
-
+
private void saveDefault() {
if (!contains("spawn")) {
set("spawn", emptyList);
@@ -31,7 +35,6 @@ public class Spawn extends CustomConfiguration {
set("spawn.pitch", "");
save();
}
-
}
public static Spawn getInstance() {
@@ -40,7 +43,7 @@ public class Spawn extends CustomConfiguration {
}
return spawn;
}
-
+
public boolean setSpawn(Location location) {
try {
set("spawn.world", location.getWorld().getName());
@@ -55,7 +58,7 @@ public class Spawn extends CustomConfiguration {
return false;
}
}
-
+
public Location getLocation() {
try {
if (this.getString("spawn.world").isEmpty() || this.getString("spawn.world") == "") return null;
@@ -65,4 +68,5 @@ public class Spawn extends CustomConfiguration {
return null;
}
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/SpoutCfg.java b/src/main/java/uk/org/whoami/authme/settings/SpoutCfg.java
index 93efed4f3..7b6197c60 100644
--- a/src/main/java/uk/org/whoami/authme/settings/SpoutCfg.java
+++ b/src/main/java/uk/org/whoami/authme/settings/SpoutCfg.java
@@ -7,7 +7,7 @@ import java.io.File;
import java.util.ArrayList;
public class SpoutCfg extends CustomConfiguration{
-
+
private static SpoutCfg instance = null;
public SpoutCfg(File file)
@@ -21,7 +21,6 @@ public class SpoutCfg extends CustomConfiguration{
@SuppressWarnings("serial")
private void loadDefaults() {
this.set("Spout GUI enabled", true);
- //Login:
this.set("LoginScreen.enabled", true);
this.set("LoginScreen.exit button", "Quit");
this.set("LoginScreen.exit message", "Good Bye");
@@ -30,16 +29,13 @@ public class SpoutCfg extends CustomConfiguration{
this.set("LoginScreen.text", new ArrayList() {{
add("Sample text");
add("Change this at spout.yml");
- add("------------------");
- add("AuthMe Reloaded by d4rkwarriors");
+ add("--- AuthMe Reloaded by ---");
+ add("d4rkwarriors and Xephi59");
}});
- //Registration:
- //this.set("RegistrationScreen.enabled",true);
-
}
public static SpoutCfg getInstance() {
if (instance == null) instance = new SpoutCfg(new File("plugins/AuthMe", "spout.yml"));
return instance;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/uk/org/whoami/authme/task/MessageTask.java b/src/main/java/uk/org/whoami/authme/task/MessageTask.java
index 2bb0613b7..44d08ea42 100644
--- a/src/main/java/uk/org/whoami/authme/task/MessageTask.java
+++ b/src/main/java/uk/org/whoami/authme/task/MessageTask.java
@@ -43,17 +43,14 @@ public class MessageTask implements Runnable {
if (PlayerCache.getInstance().isAuthenticated(name)) {
return;
}
-
for (Player player : plugin.getServer().getOnlinePlayers()) {
if (player.getName().toLowerCase().equals(name)) {
player.sendMessage(msg);
-
BukkitScheduler sched = plugin.getServer().getScheduler();
BukkitTask late = sched.runTaskLater(plugin, this, interval * 20);
if(LimboCache.getInstance().hasLimboPlayer(name)) {
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(late.getTaskId());
}
-
}
}
}
diff --git a/src/main/java/uk/org/whoami/authme/task/TimeoutTask.java b/src/main/java/uk/org/whoami/authme/task/TimeoutTask.java
index 4b3e013a1..ff8993137 100644
--- a/src/main/java/uk/org/whoami/authme/task/TimeoutTask.java
+++ b/src/main/java/uk/org/whoami/authme/task/TimeoutTask.java
@@ -50,13 +50,11 @@ public class TimeoutTask implements Runnable {
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.getTimeoutTaskId());
-
if(playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 7350973eb..acff6f222 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -100,6 +100,7 @@ Security:
console:
noConsoleSpam: false
removePassword: true
+ logConsole: false
captcha:
useCaptcha: false
maxLoginTry: 5
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 03553ef62..eb52aa2c0 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -3,7 +3,7 @@ author: darkwarriros,Xephi
website: http://www.multiplayer-italia.com/
description: AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player.
main: uk.org.whoami.authme.AuthMe
-version: 2.7.13b2
+version: 2.7.14
softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag]
commands:
register:
@@ -134,4 +134,7 @@ permissions:
default: op
authme.vip:
description: Allow vip slot when the server is full
+ default: op
+ authme.admin.purgebannedplayers:
+ description: Purge banned players
default: op
\ No newline at end of file