Code Refactor - Whitespace Refactor
This commit is contained in:
@@ -43,10 +43,9 @@ import fr.xephi.authme.settings.SpoutCfg;
|
||||
import fr.xephi.authme.task.MessageTask;
|
||||
import fr.xephi.authme.task.TimeoutTask;
|
||||
|
||||
|
||||
public class AdminCommand implements CommandExecutor {
|
||||
|
||||
public AuthMe plugin;
|
||||
public AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
private SpoutCfg s = SpoutCfg.getInstance();
|
||||
public DataSource database;
|
||||
@@ -57,7 +56,8 @@ public class AdminCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("Usage: /authme reload - Reload the config");
|
||||
sender.sendMessage("/authme register <playername> <password> - Register a player");
|
||||
@@ -75,27 +75,33 @@ public class AdminCommand implements CommandExecutor {
|
||||
sender.sendMessage("/authme switchantibot on/off - Enable/Disable antibot method");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme.admin." + args[0].toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if((sender instanceof ConsoleCommandSender) && args[0].equalsIgnoreCase("passpartuToken")) {
|
||||
if(args.length > 1) {
|
||||
System.out.println("[AuthMe] command usage: /authme passpartuToken");
|
||||
return true;
|
||||
}
|
||||
if(Utils.getInstance().obtainToken()) {
|
||||
System.out.println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
|
||||
if (!plugin.authmePermissible(sender,
|
||||
"authme.admin." + args[0].toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((sender instanceof ConsoleCommandSender)
|
||||
&& args[0].equalsIgnoreCase("passpartuToken")) {
|
||||
if (args.length > 1) {
|
||||
System.out
|
||||
.println("[AuthMe] command usage: /authme passpartuToken");
|
||||
return true;
|
||||
}
|
||||
if (Utils.getInstance().obtainToken()) {
|
||||
System.out
|
||||
.println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
|
||||
} else {
|
||||
System.out.println("[AuthMe] Security error on passpartu token, redo it. ");
|
||||
System.out
|
||||
.println("[AuthMe] Security error on passpartu token, redo it. ");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("version")) {
|
||||
sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion());
|
||||
sender.sendMessage("AuthMe Version: "
|
||||
+ AuthMe.getInstance().getDescription().getVersion());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -109,15 +115,16 @@ public class AdminCommand implements CommandExecutor {
|
||||
calendar.add(Calendar.DATE, -(Integer.parseInt(args[1])));
|
||||
long until = calendar.getTimeInMillis();
|
||||
List<String> purged = database.autoPurgeDatabase(until);
|
||||
sender.sendMessage("Deleted " + purged.size() + " user accounts");
|
||||
if (Settings.purgeEssentialsFile && plugin.ess != null)
|
||||
plugin.dataManager.purgeEssentials(purged);
|
||||
if (Settings.purgePlayerDat)
|
||||
plugin.dataManager.purgeDat(purged);
|
||||
if (Settings.purgeLimitedCreative)
|
||||
plugin.dataManager.purgeLimitedCreative(purged);
|
||||
if (Settings.purgeAntiXray)
|
||||
plugin.dataManager.purgeAntiXray(purged);
|
||||
sender.sendMessage("Deleted " + purged.size()
|
||||
+ " user accounts");
|
||||
if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager
|
||||
.purgeEssentials(purged);
|
||||
if (Settings.purgePlayerDat) plugin.dataManager
|
||||
.purgeDat(purged);
|
||||
if (Settings.purgeLimitedCreative) plugin.dataManager
|
||||
.purgeLimitedCreative(purged);
|
||||
if (Settings.purgeAntiXray) plugin.dataManager
|
||||
.purgeAntiXray(purged);
|
||||
return true;
|
||||
} catch (NumberFormatException e) {
|
||||
sender.sendMessage("Usage: /authme purge <DAYS>");
|
||||
@@ -125,148 +132,176 @@ public class AdminCommand implements CommandExecutor {
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("reload")) {
|
||||
database.reload();
|
||||
File newConfigFile = new File("plugins/AuthMe","config.yml");
|
||||
File newConfigFile = new File("plugins/AuthMe", "config.yml");
|
||||
if (!newConfigFile.exists()) {
|
||||
InputStream fis = getClass().getResourceAsStream("/config.yml");
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
fos = new FileOutputStream(newConfigFile);
|
||||
byte[] buf = new byte[1024];
|
||||
int i = 0;
|
||||
|
||||
while ((i = fis.read(buf)) != -1) {
|
||||
fos.write(buf, 0, i);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Failed to load config from JAR");
|
||||
} finally {
|
||||
try {
|
||||
if (fis != null) {
|
||||
fis.close();
|
||||
}
|
||||
if (fos != null) {
|
||||
fos.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
InputStream fis = getClass().getResourceAsStream("/config.yml");
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
fos = new FileOutputStream(newConfigFile);
|
||||
byte[] buf = new byte[1024];
|
||||
int i = 0;
|
||||
|
||||
while ((i = fis.read(buf)) != -1) {
|
||||
fos.write(buf, 0, i);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger(JavaPlugin.class.getName()).log(
|
||||
Level.SEVERE, "Failed to load config from JAR");
|
||||
} finally {
|
||||
try {
|
||||
if (fis != null) {
|
||||
fis.close();
|
||||
}
|
||||
if (fos != null) {
|
||||
fos.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
YamlConfiguration newConfig = YamlConfiguration.loadConfiguration(newConfigFile);
|
||||
YamlConfiguration newConfig = YamlConfiguration
|
||||
.loadConfiguration(newConfigFile);
|
||||
Settings.reloadConfigOptions(newConfig);
|
||||
m.reLoad();
|
||||
s.reLoad();
|
||||
m._(sender, "reload");
|
||||
} else if (args[0].equalsIgnoreCase("lastlogin")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme lastlogin <playername>");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
if (database.getAuth(args[1].toLowerCase()) != null) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme lastlogin <playername>");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
if (database.getAuth(args[1].toLowerCase()) != null) {
|
||||
PlayerAuth player = database.getAuth(args[1].toLowerCase());
|
||||
long lastLogin = player.getLastLogin();
|
||||
Date d = new Date(lastLogin);
|
||||
final long diff = System.currentTimeMillis() - lastLogin;
|
||||
final String msg = (int)(diff / 86400000) + " days " + (int)(diff / 3600000 % 24) + " hours " + (int)(diff / 60000 % 60) + " mins " + (int)(diff / 1000 % 60) + " secs.";
|
||||
final String msg = (int) (diff / 86400000) + " days "
|
||||
+ (int) (diff / 3600000 % 24) + " hours "
|
||||
+ (int) (diff / 60000 % 60) + " mins "
|
||||
+ (int) (diff / 1000 % 60) + " secs.";
|
||||
String lastIP = player.getIp();
|
||||
sender.sendMessage("[AuthMe] " + args[1].toLowerCase() + " lastlogin : " + d.toString());
|
||||
sender.sendMessage("[AuthMe] The player : " + player.getNickname() + " is unlogged since " + msg);
|
||||
sender.sendMessage("[AuthMe] " + args[1].toLowerCase()
|
||||
+ " lastlogin : " + d.toString());
|
||||
sender.sendMessage("[AuthMe] The player : "
|
||||
+ player.getNickname() + " is unlogged since "
|
||||
+ msg);
|
||||
sender.sendMessage("[AuthMe] LastPlayer IP : " + lastIP);
|
||||
} else {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("accounts")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme accounts <playername>");
|
||||
sender.sendMessage("Or: /authme accounts <ip>");
|
||||
return true;
|
||||
}
|
||||
if (!args[1].contains(".")) {
|
||||
final CommandSender fSender = sender;
|
||||
final String[] arguments = args;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlayerAuth pAuth = null;
|
||||
String message = "[AuthMe] ";
|
||||
try {
|
||||
pAuth = database.getAuth(arguments[1].toLowerCase());
|
||||
} catch (NullPointerException npe){
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
if (pAuth != null) {
|
||||
List<String> accountList = database.getAllAuthsByName(pAuth);
|
||||
if (accountList.isEmpty() || accountList == null) {
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
if (accountList.size() == 1) {
|
||||
fSender.sendMessage("[AuthMe] " + arguments[1] + " is a single account player");
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
for (String account : accountList) {
|
||||
i++;
|
||||
message = message + account;
|
||||
if (i != accountList.size()) {
|
||||
message = message + ", ";
|
||||
} else {
|
||||
message = message + ".";
|
||||
}
|
||||
}
|
||||
fSender.sendMessage("[AuthMe] " + arguments[1] + " has " + String.valueOf(accountList.size()) + " accounts");
|
||||
fSender.sendMessage(message);
|
||||
} else {
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
return true;
|
||||
} else {
|
||||
final CommandSender fSender = sender;
|
||||
final String[] arguments = args;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String message = "[AuthMe] ";
|
||||
if (arguments[1] != null) {
|
||||
List<String> accountList = database.getAllAuthsByIp(arguments[1]);
|
||||
if (accountList.isEmpty() || accountList == null) {
|
||||
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
||||
return;
|
||||
}
|
||||
if (accountList.size() == 1) {
|
||||
fSender.sendMessage("[AuthMe] " + arguments[1] + " is a single account player");
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
for (String account : accountList) {
|
||||
i++;
|
||||
message = message + account;
|
||||
if (i != accountList.size()) {
|
||||
message = message + ", ";
|
||||
} else {
|
||||
message = message + ".";
|
||||
}
|
||||
}
|
||||
fSender.sendMessage("[AuthMe] " + arguments[1] + " has " + String.valueOf(accountList.size()) + " accounts");
|
||||
fSender.sendMessage(message);
|
||||
} else {
|
||||
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("register") || args[0].equalsIgnoreCase("reg")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme accounts <playername>");
|
||||
sender.sendMessage("Or: /authme accounts <ip>");
|
||||
return true;
|
||||
}
|
||||
if (!args[1].contains(".")) {
|
||||
final CommandSender fSender = sender;
|
||||
final String[] arguments = args;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlayerAuth pAuth = null;
|
||||
String message = "[AuthMe] ";
|
||||
try {
|
||||
pAuth = database.getAuth(arguments[1]
|
||||
.toLowerCase());
|
||||
} catch (NullPointerException npe) {
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
if (pAuth != null) {
|
||||
List<String> accountList = database
|
||||
.getAllAuthsByName(pAuth);
|
||||
if (accountList.isEmpty()
|
||||
|| accountList == null) {
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
if (accountList.size() == 1) {
|
||||
fSender.sendMessage("[AuthMe] "
|
||||
+ arguments[1]
|
||||
+ " is a single account player");
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
for (String account : accountList) {
|
||||
i++;
|
||||
message = message + account;
|
||||
if (i != accountList.size()) {
|
||||
message = message + ", ";
|
||||
} else {
|
||||
message = message + ".";
|
||||
}
|
||||
}
|
||||
fSender.sendMessage("[AuthMe] "
|
||||
+ arguments[1]
|
||||
+ " has "
|
||||
+ String.valueOf(accountList.size())
|
||||
+ " accounts");
|
||||
fSender.sendMessage(message);
|
||||
} else {
|
||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
return true;
|
||||
} else {
|
||||
final CommandSender fSender = sender;
|
||||
final String[] arguments = args;
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String message = "[AuthMe] ";
|
||||
if (arguments[1] != null) {
|
||||
List<String> accountList = database
|
||||
.getAllAuthsByIp(arguments[1]);
|
||||
if (accountList.isEmpty()
|
||||
|| accountList == null) {
|
||||
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
||||
return;
|
||||
}
|
||||
if (accountList.size() == 1) {
|
||||
fSender.sendMessage("[AuthMe] "
|
||||
+ arguments[1]
|
||||
+ " is a single account player");
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
for (String account : accountList) {
|
||||
i++;
|
||||
message = message + account;
|
||||
if (i != accountList.size()) {
|
||||
message = message + ", ";
|
||||
} else {
|
||||
message = message + ".";
|
||||
}
|
||||
}
|
||||
fSender.sendMessage("[AuthMe] "
|
||||
+ arguments[1]
|
||||
+ " has "
|
||||
+ String.valueOf(accountList.size())
|
||||
+ " accounts");
|
||||
fSender.sendMessage(message);
|
||||
} else {
|
||||
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("register")
|
||||
|| args[0].equalsIgnoreCase("reg")) {
|
||||
if (args.length != 3) {
|
||||
sender.sendMessage("Usage: /authme register playername password");
|
||||
return true;
|
||||
@@ -274,17 +309,19 @@ public class AdminCommand implements CommandExecutor {
|
||||
try {
|
||||
String name = args[1].toLowerCase();
|
||||
if (database.isAuthAvailable(name)) {
|
||||
m._(sender, "user_regged");
|
||||
m._(sender, "user_regged");
|
||||
return true;
|
||||
}
|
||||
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
||||
PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0L, "your@email.com", API.getPlayerRealName(name));
|
||||
if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null)
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
else
|
||||
auth.setSalt("");
|
||||
String hash = PasswordSecurity.getHash(
|
||||
Settings.getPasswordHash, args[2], name);
|
||||
PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0L,
|
||||
"your@email.com", API.getPlayerRealName(name));
|
||||
if (PasswordSecurity.userSalt.containsKey(name)
|
||||
&& PasswordSecurity.userSalt.get(name) != null) auth
|
||||
.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
else auth.setSalt("");
|
||||
if (!database.saveAuth(auth)) {
|
||||
m._(sender, "error");
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
m._(sender, "registered");
|
||||
@@ -299,118 +336,128 @@ public class AdminCommand implements CommandExecutor {
|
||||
sender.sendMessage("Usage: /authme getemail playername");
|
||||
return true;
|
||||
}
|
||||
String playername = args[1].toLowerCase();
|
||||
PlayerAuth getAuth = database.getAuth(playername);
|
||||
if (getAuth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("[AuthMe] " + args[1] + " email : " + getAuth.getEmail());
|
||||
return true;
|
||||
String playername = args[1].toLowerCase();
|
||||
PlayerAuth getAuth = database.getAuth(playername);
|
||||
if (getAuth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("[AuthMe] " + args[1] + " email : "
|
||||
+ getAuth.getEmail());
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("chgemail")) {
|
||||
if (args.length != 3) {
|
||||
sender.sendMessage("Usage: /authme chgemail playername email");
|
||||
return true;
|
||||
}
|
||||
String playername = args[1].toLowerCase();
|
||||
PlayerAuth getAuth = database.getAuth(playername);
|
||||
if (getAuth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
getAuth.setEmail(args[2]);
|
||||
if (!database.updateEmail(getAuth)) {
|
||||
m._(sender, "error");
|
||||
String playername = args[1].toLowerCase();
|
||||
PlayerAuth getAuth = database.getAuth(playername);
|
||||
if (getAuth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
if (PlayerCache.getInstance().getAuth(playername) != null)
|
||||
PlayerCache.getInstance().updatePlayer(getAuth);
|
||||
return true;
|
||||
getAuth.setEmail(args[2]);
|
||||
if (!database.updateEmail(getAuth)) {
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
if (PlayerCache.getInstance().getAuth(playername) != null) PlayerCache
|
||||
.getInstance().updatePlayer(getAuth);
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("setspawn")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().setSpawn(((Player) sender).getLocation()))
|
||||
sender.sendMessage("[AuthMe] Correctly define new spawn");
|
||||
else sender.sendMessage("[AuthMe] SetSpawn fail , please retry");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().setSpawn(
|
||||
((Player) sender).getLocation())) sender
|
||||
.sendMessage("[AuthMe] Correctly define new spawn");
|
||||
else sender
|
||||
.sendMessage("[AuthMe] SetSpawn fail , please retry");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("setfirstspawn")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().setFirstSpawn(((Player) sender).getLocation()))
|
||||
sender.sendMessage("[AuthMe] Correctly define new first spawn");
|
||||
else sender.sendMessage("[AuthMe] SetFirstSpawn fail , please retry");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().setFirstSpawn(
|
||||
((Player) sender).getLocation())) sender
|
||||
.sendMessage("[AuthMe] Correctly define new first spawn");
|
||||
else sender
|
||||
.sendMessage("[AuthMe] SetFirstSpawn fail , please retry");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("purgebannedplayers")) {
|
||||
List<String> bannedPlayers = new ArrayList<String>();
|
||||
for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
|
||||
bannedPlayers.add(off.getName().toLowerCase());
|
||||
}
|
||||
final List<String> bP = bannedPlayers;
|
||||
if (database instanceof Thread) {
|
||||
database.purgeBanned(bP);
|
||||
} else {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
database.purgeBanned(bP);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (Settings.purgeEssentialsFile && plugin.ess != null)
|
||||
plugin.dataManager.purgeEssentials(bannedPlayers);
|
||||
if (Settings.purgePlayerDat)
|
||||
plugin.dataManager.purgeDat(bannedPlayers);
|
||||
if (Settings.purgeLimitedCreative)
|
||||
plugin.dataManager.purgeLimitedCreative(bannedPlayers);
|
||||
if (Settings.purgeAntiXray)
|
||||
plugin.dataManager.purgeAntiXray(bannedPlayers);
|
||||
return true;
|
||||
List<String> bannedPlayers = new ArrayList<String>();
|
||||
for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
|
||||
bannedPlayers.add(off.getName().toLowerCase());
|
||||
}
|
||||
final List<String> bP = bannedPlayers;
|
||||
if (database instanceof Thread) {
|
||||
database.purgeBanned(bP);
|
||||
} else {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin,
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
database.purgeBanned(bP);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager
|
||||
.purgeEssentials(bannedPlayers);
|
||||
if (Settings.purgePlayerDat) plugin.dataManager
|
||||
.purgeDat(bannedPlayers);
|
||||
if (Settings.purgeLimitedCreative) plugin.dataManager
|
||||
.purgeLimitedCreative(bannedPlayers);
|
||||
if (Settings.purgeAntiXray) plugin.dataManager
|
||||
.purgeAntiXray(bannedPlayers);
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("spawn")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().getSpawn() != null)
|
||||
((Player) sender).teleport(Spawn.getInstance().getSpawn());
|
||||
else sender.sendMessage("[AuthMe] Spawn fail , please try to define the spawn");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().getSpawn() != null) ((Player) sender)
|
||||
.teleport(Spawn.getInstance().getSpawn());
|
||||
else sender
|
||||
.sendMessage("[AuthMe] Spawn fail , please try to define the spawn");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("firstspawn")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().getFirstSpawn() != null)
|
||||
((Player) sender).teleport(Spawn.getInstance().getFirstSpawn());
|
||||
else sender.sendMessage("[AuthMe] Spawn fail , please try to define the first spawn");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("changepassword") || args[0].equalsIgnoreCase("cp")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
if (Spawn.getInstance().getFirstSpawn() != null) ((Player) sender)
|
||||
.teleport(Spawn.getInstance().getFirstSpawn());
|
||||
else sender
|
||||
.sendMessage("[AuthMe] Spawn fail , please try to define the first spawn");
|
||||
} else {
|
||||
sender.sendMessage("[AuthMe] Please use that command in game");
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("changepassword")
|
||||
|| args[0].equalsIgnoreCase("cp")) {
|
||||
if (args.length != 3) {
|
||||
sender.sendMessage("Usage: /authme changepassword playername newpassword");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
String name = args[1].toLowerCase();
|
||||
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
||||
String hash = PasswordSecurity.getHash(
|
||||
Settings.getPasswordHash, args[2], name);
|
||||
PlayerAuth auth = null;
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
auth = PlayerCache.getInstance().getAuth(name);
|
||||
@@ -418,16 +465,16 @@ public class AdminCommand implements CommandExecutor {
|
||||
auth = database.getAuth(name);
|
||||
}
|
||||
if (auth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
auth.setHash(hash);
|
||||
if (PasswordSecurity.userSalt.containsKey(name)) {
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
database.updateSalt(auth);
|
||||
}
|
||||
if (!database.updatePassword(auth)) {
|
||||
m._(sender, "error");
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("pwd_changed");
|
||||
@@ -437,51 +484,67 @@ public class AdminCommand implements CommandExecutor {
|
||||
m._(sender, "error");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("unregister") || args[0].equalsIgnoreCase("unreg") || args[0].equalsIgnoreCase("del") ) {
|
||||
} else if (args[0].equalsIgnoreCase("unregister")
|
||||
|| args[0].equalsIgnoreCase("unreg")
|
||||
|| args[0].equalsIgnoreCase("del")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme unregister playername");
|
||||
return true;
|
||||
}
|
||||
String name = args[1].toLowerCase();
|
||||
if (!database.removeAuth(name)) {
|
||||
m._(sender, "error");
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
Player target = Bukkit.getPlayer(name);
|
||||
PlayerCache.getInstance().removePlayer(name);
|
||||
Utils.getInstance().setGroup(name, groupType.UNREGISTERED);
|
||||
if (target != null) {
|
||||
if (target.isOnline()) {
|
||||
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(target);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(target, target.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||
if(!tpEvent.isCancelled()) {
|
||||
target.teleport(tpEvent.getTo());
|
||||
}
|
||||
if (target.isOnline()) {
|
||||
if (Settings.isTeleportToSpawnEnabled
|
||||
&& !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(target);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(
|
||||
target, target.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager()
|
||||
.callEvent(tpEvent);
|
||||
if (!tpEvent.isCancelled()) {
|
||||
target.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
LimboCache.getInstance().addLimboPlayer(target);
|
||||
int delay = Settings.getRegistrationTimeout * 20;
|
||||
int interval = Settings.getWarnMessageInterval;
|
||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||
if (delay != 0) {
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
|
||||
int id = sched.scheduleSyncDelayedTask(plugin,
|
||||
new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name)
|
||||
.setTimeoutTaskId(id);
|
||||
}
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("reg_msg"), interval)));
|
||||
if (Settings.applyBlindEffect)
|
||||
target.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
|
||||
LimboCache
|
||||
.getInstance()
|
||||
.getLimboPlayer(name)
|
||||
.setMessageTaskId(
|
||||
sched.scheduleSyncDelayedTask(
|
||||
plugin,
|
||||
new MessageTask(plugin, name, m
|
||||
._("reg_msg"), interval)));
|
||||
if (Settings.applyBlindEffect) target
|
||||
.addPotionEffect(new PotionEffect(
|
||||
PotionEffectType.BLINDNESS,
|
||||
Settings.getRegistrationTimeout * 20, 2));
|
||||
m._(target, "unregistered");
|
||||
} else {
|
||||
// Player isn't online, do nothing else
|
||||
}
|
||||
} else {
|
||||
// Player isn't online, do nothing else
|
||||
}
|
||||
} else {
|
||||
// Player does not exist, do nothing else
|
||||
// Player does not exist, do nothing else
|
||||
}
|
||||
m._(sender, "unregistered");
|
||||
ConsoleLogger.info(args[1] + " unregistered");
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("purgelastpos")){
|
||||
} else if (args[0].equalsIgnoreCase("purgelastpos")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme purgelastpos playername");
|
||||
return true;
|
||||
@@ -490,8 +553,9 @@ public class AdminCommand implements CommandExecutor {
|
||||
String name = args[1].toLowerCase();
|
||||
PlayerAuth auth = database.getAuth(name);
|
||||
if (auth == null) {
|
||||
sender.sendMessage("The player " + name + " is not registered ");
|
||||
return true;
|
||||
sender.sendMessage("The player " + name
|
||||
+ " is not registered ");
|
||||
return true;
|
||||
}
|
||||
auth.setQuitLocX(0);
|
||||
auth.setQuitLocY(0);
|
||||
@@ -500,44 +564,48 @@ public class AdminCommand implements CommandExecutor {
|
||||
database.updateQuitLoc(auth);
|
||||
sender.sendMessage(name + " 's last pos location is now reset");
|
||||
} catch (Exception e) {
|
||||
ConsoleLogger.showError("An error occured while trying to reset location or player do not exist, please see below: ");
|
||||
ConsoleLogger.showError(e.getMessage());
|
||||
if (sender instanceof Player)
|
||||
sender.sendMessage("An error occured while trying to reset location or player do not exist, please see logs");
|
||||
ConsoleLogger
|
||||
.showError("An error occured while trying to reset location or player do not exist, please see below: ");
|
||||
ConsoleLogger.showError(e.getMessage());
|
||||
if (sender instanceof Player) sender
|
||||
.sendMessage("An error occured while trying to reset location or player do not exist, please see logs");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("switchantibot")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
}
|
||||
if (args[1].equalsIgnoreCase("on")) {
|
||||
plugin.switchAntiBotMod(true);
|
||||
sender.sendMessage("[AuthMe] AntiBotMod enabled");
|
||||
return true;
|
||||
}
|
||||
if (args[1].equalsIgnoreCase("off")) {
|
||||
plugin.switchAntiBotMod(false);
|
||||
sender.sendMessage("[AuthMe] AntiBotMod disabled");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
}
|
||||
if (args[1].equalsIgnoreCase("on")) {
|
||||
plugin.switchAntiBotMod(true);
|
||||
sender.sendMessage("[AuthMe] AntiBotMod enabled");
|
||||
return true;
|
||||
}
|
||||
if (args[1].equalsIgnoreCase("off")) {
|
||||
plugin.switchAntiBotMod(false);
|
||||
sender.sendMessage("[AuthMe] AntiBotMod disabled");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("getip")) {
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage("Usage : /authme getip onlinePlayerName");
|
||||
return true;
|
||||
}
|
||||
if (Bukkit.getPlayer(args[1]) != null) {
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
sender.sendMessage(player.getName() + " actual ip is : " + player.getAddress().getAddress().getHostAddress() + ":" + player.getAddress().getPort());
|
||||
sender.sendMessage(player.getName() + " real ip is : " + plugin.getIP(player));
|
||||
return true;
|
||||
} else {
|
||||
sender.sendMessage("This player is not actually online");
|
||||
sender.sendMessage("Usage : /authme getip onlinePlayerName");
|
||||
return true;
|
||||
}
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage("Usage : /authme getip onlinePlayerName");
|
||||
return true;
|
||||
}
|
||||
if (Bukkit.getPlayer(args[1]) != null) {
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
sender.sendMessage(player.getName() + " actual ip is : "
|
||||
+ player.getAddress().getAddress().getHostAddress()
|
||||
+ ":" + player.getAddress().getPort());
|
||||
sender.sendMessage(player.getName() + " real ip is : "
|
||||
+ plugin.getIP(player));
|
||||
return true;
|
||||
} else {
|
||||
sender.sendMessage("This player is not actually online");
|
||||
sender.sendMessage("Usage : /authme getip onlinePlayerName");
|
||||
return true;
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("resetposition")) {
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage("Usage : /authme resetPosition <playerName>");
|
||||
@@ -553,7 +621,8 @@ public class AdminCommand implements CommandExecutor {
|
||||
auth.setQuitLocZ(0D);
|
||||
auth.setWorld("world");
|
||||
database.updateQuitLoc(auth);
|
||||
sender.sendMessage("[AuthMe] Successfully reset position for " + auth.getNickname());
|
||||
sender.sendMessage("[AuthMe] Successfully reset position for "
|
||||
+ auth.getNickname());
|
||||
return true;
|
||||
} else {
|
||||
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
|
||||
|
||||
@@ -11,20 +11,19 @@ import fr.xephi.authme.security.RandomString;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
import fr.xephi.authme.settings.Settings;
|
||||
|
||||
|
||||
public class CaptchaCommand implements CommandExecutor {
|
||||
|
||||
public AuthMe plugin;
|
||||
public AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
public static RandomString rdm = new RandomString(Settings.captchaLength);
|
||||
|
||||
public CaptchaCommand(AuthMe plugin) {
|
||||
this.plugin = plugin;
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd,
|
||||
String label, String[] args) {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
@@ -34,37 +33,38 @@ public class CaptchaCommand implements CommandExecutor {
|
||||
String name = player.getName().toLowerCase();
|
||||
|
||||
if (args.length == 0) {
|
||||
m._(player, "usage_captcha");
|
||||
m._(player, "usage_captcha");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "logged_in");
|
||||
m._(player, "logged_in");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
|
||||
m._(player, "no_perm");
|
||||
m._(player, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Settings.useCaptcha) {
|
||||
m._(player, "usage_log");
|
||||
return true;
|
||||
m._(player, "usage_log");
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!plugin.cap.containsKey(name)) {
|
||||
m._(player, "usage_log");
|
||||
return true;
|
||||
}
|
||||
if (!plugin.cap.containsKey(name)) {
|
||||
m._(player, "usage_log");
|
||||
return true;
|
||||
}
|
||||
|
||||
if(Settings.useCaptcha && !args[0].equals(plugin.cap.get(name))) {
|
||||
plugin.cap.remove(name);
|
||||
plugin.cap.put(name, rdm.nextString());
|
||||
for (String s : m._("wrong_captcha")) {
|
||||
player.sendMessage(s.replace("THE_CAPTCHA", plugin.cap.get(name)));
|
||||
}
|
||||
return true;
|
||||
if (Settings.useCaptcha && !args[0].equals(plugin.cap.get(name))) {
|
||||
plugin.cap.remove(name);
|
||||
plugin.cap.put(name, rdm.nextString());
|
||||
for (String s : m._("wrong_captcha")) {
|
||||
player.sendMessage(s.replace("THE_CAPTCHA",
|
||||
plugin.cap.get(name)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
plugin.captcha.remove(name);
|
||||
@@ -74,6 +74,6 @@ public class CaptchaCommand implements CommandExecutor {
|
||||
m._(player, "valid_captcha");
|
||||
m._(player, "login_msg");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import fr.xephi.authme.security.PasswordSecurity;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
import fr.xephi.authme.settings.Settings;
|
||||
|
||||
|
||||
public class ChangePasswordCommand implements CommandExecutor {
|
||||
|
||||
private Messages m = Messages.getInstance();
|
||||
@@ -31,51 +30,56 @@ public class ChangePasswordCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
String name = player.getName().toLowerCase();
|
||||
if (!PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "not_logged_in");
|
||||
m._(player, "not_logged_in");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length != 2) {
|
||||
m._(player, "usage_changepassword");
|
||||
m._(player, "usage_changepassword");
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash, args[1], name);
|
||||
String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash,
|
||||
args[1], name);
|
||||
|
||||
if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache.getInstance().getAuth(name).getHash(), player.getName())) {
|
||||
if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache
|
||||
.getInstance().getAuth(name).getHash(), player.getName())) {
|
||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
||||
auth.setHash(hashnew);
|
||||
if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null)
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
else
|
||||
auth.setSalt("");
|
||||
if (PasswordSecurity.userSalt.containsKey(name)
|
||||
&& PasswordSecurity.userSalt.get(name) != null) auth
|
||||
.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
else auth.setSalt("");
|
||||
if (!database.updatePassword(auth)) {
|
||||
m._(player, "error");
|
||||
m._(player, "error");
|
||||
return true;
|
||||
}
|
||||
database.updateSalt(auth);
|
||||
PlayerCache.getInstance().updatePlayer(auth);
|
||||
m._(player, "pwd_changed");
|
||||
ConsoleLogger.info(player.getName() + " changed his password");
|
||||
if(plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " change his password!"));
|
||||
if (plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification(
|
||||
"[AuthMe] " + player.getName()
|
||||
+ " change his password!"));
|
||||
}
|
||||
} else {
|
||||
m._(player, "wrong_pwd");
|
||||
m._(player, "wrong_pwd");
|
||||
}
|
||||
} catch (NoSuchAlgorithmException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
|
||||
@@ -18,7 +18,6 @@ import fr.xephi.authme.converter.xAuthConverter;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
|
||||
|
||||
public class ConverterCommand implements CommandExecutor {
|
||||
|
||||
private AuthMe plugin;
|
||||
@@ -26,12 +25,13 @@ public class ConverterCommand implements CommandExecutor {
|
||||
private DataSource database;
|
||||
|
||||
public ConverterCommand(AuthMe plugin, DataSource database) {
|
||||
this.plugin = plugin;
|
||||
this.database = database;
|
||||
this.plugin = plugin;
|
||||
this.database = database;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, final String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
final String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
@@ -45,7 +45,7 @@ public class ConverterCommand implements CommandExecutor {
|
||||
sender.sendMessage("Usage : /converter flattosql | flattosqlite | xauth | crazylogin | rakamak | royalauth | vauth");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
ConvertType type = ConvertType.valueOf(args[0]);
|
||||
if (type == null) {
|
||||
m._(sender, "error");
|
||||
@@ -53,7 +53,7 @@ public class ConverterCommand implements CommandExecutor {
|
||||
}
|
||||
Converter converter = null;
|
||||
switch (type) {
|
||||
case ftsql:
|
||||
case ftsql:
|
||||
converter = new FlatToSql();
|
||||
break;
|
||||
case ftsqlite:
|
||||
@@ -74,7 +74,8 @@ public class ConverterCommand implements CommandExecutor {
|
||||
case vauth:
|
||||
converter = new vAuthConverter(plugin, database, sender);
|
||||
break;
|
||||
default: break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (converter == null) {
|
||||
m._(sender, "error");
|
||||
@@ -84,27 +85,23 @@ public class ConverterCommand implements CommandExecutor {
|
||||
sender.sendMessage("[AuthMe] Successfully converted from " + args[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public enum ConvertType {
|
||||
|
||||
ftsql("flattosql"),
|
||||
ftsqlite("flattosqlite"),
|
||||
xauth("xauth"),
|
||||
crazylogin("crazylogin"),
|
||||
rakamak("rakamak"),
|
||||
royalauth("royalauth"),
|
||||
vauth("vauth");
|
||||
|
||||
ftsql("flattosql"), ftsqlite("flattosqlite"), xauth("xauth"), crazylogin(
|
||||
"crazylogin"), rakamak("rakamak"), royalauth("royalauth"), vauth(
|
||||
"vauth");
|
||||
|
||||
String name;
|
||||
|
||||
|
||||
ConvertType(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
|
||||
ConvertType fromName(String name) {
|
||||
return ConvertType.valueOf(name);
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ import fr.xephi.authme.settings.Settings;
|
||||
*/
|
||||
public class EmailCommand implements CommandExecutor {
|
||||
|
||||
public AuthMe plugin;
|
||||
private DataSource data;
|
||||
public AuthMe plugin;
|
||||
private DataSource data;
|
||||
private Messages m = Messages.getInstance();
|
||||
|
||||
public EmailCommand(AuthMe plugin, DataSource data) {
|
||||
@@ -34,44 +34,49 @@ public class EmailCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
String name = player.getName().toLowerCase();
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
m._(player, "usage_email_add");
|
||||
m._(player, "usage_email_change");
|
||||
m._(player, "usage_email_recovery");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
String name = player.getName().toLowerCase();
|
||||
|
||||
if(args[0].equalsIgnoreCase("add")) {
|
||||
if (args.length != 3) {
|
||||
m._(player, "usage_email_add");
|
||||
return true;
|
||||
}
|
||||
if(Settings.getmaxRegPerEmail > 0) {
|
||||
if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) {
|
||||
m._(player, "max_reg");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(args[1].equals(args[2]) && PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
||||
if (auth.getEmail() == null || (!auth.getEmail().equals("your@email.com") && !auth.getEmail().isEmpty())) {
|
||||
m._(player, "usage_email_change");
|
||||
return true;
|
||||
if (args.length == 0) {
|
||||
m._(player, "usage_email_add");
|
||||
m._(player, "usage_email_change");
|
||||
m._(player, "usage_email_recovery");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
if (args.length != 3) {
|
||||
m._(player, "usage_email_add");
|
||||
return true;
|
||||
}
|
||||
if (Settings.getmaxRegPerEmail > 0) {
|
||||
if (!plugin.authmePermissible(sender, "authme.allow2accounts")
|
||||
&& data.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) {
|
||||
m._(player, "max_reg");
|
||||
return true;
|
||||
}
|
||||
if(!Settings.isEmailCorrect(args[1])) {
|
||||
}
|
||||
if (args[1].equals(args[2])
|
||||
&& PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
||||
if (auth.getEmail() == null
|
||||
|| (!auth.getEmail().equals("your@email.com") && !auth
|
||||
.getEmail().isEmpty())) {
|
||||
m._(player, "usage_email_change");
|
||||
return true;
|
||||
}
|
||||
if (!Settings.isEmailCorrect(args[1])) {
|
||||
m._(player, "email_invalid");
|
||||
return true;
|
||||
}
|
||||
@@ -83,37 +88,40 @@ public class EmailCommand implements CommandExecutor {
|
||||
PlayerCache.getInstance().updatePlayer(auth);
|
||||
m._(player, "email_added");
|
||||
player.sendMessage(auth.getEmail());
|
||||
} else if (PlayerCache.getInstance().isAuthenticated(name)){
|
||||
} else if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "email_confirm");
|
||||
} else {
|
||||
if (!data.isAuthAvailable(name)) {
|
||||
m._(player, "login_msg");
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
if (!data.isAuthAvailable(name)) {
|
||||
m._(player, "login_msg");
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
}
|
||||
} else if(args[0].equalsIgnoreCase("change")) {
|
||||
} else if (args[0].equalsIgnoreCase("change")) {
|
||||
if (args.length != 3) {
|
||||
m._(player, "usage_email_change");
|
||||
return true;
|
||||
}
|
||||
if (Settings.getmaxRegPerEmail > 0) {
|
||||
if (!plugin.authmePermissible(sender, "authme.allow2accounts")
|
||||
&& data.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) {
|
||||
m._(player, "max_reg");
|
||||
return true;
|
||||
}
|
||||
if(Settings.getmaxRegPerEmail > 0) {
|
||||
if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) {
|
||||
m._(player, "max_reg");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
}
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
||||
if (auth.getEmail() == null || auth.getEmail().equals("your@email.com") || auth.getEmail().isEmpty()) {
|
||||
m._(player, "usage_email_add");
|
||||
return true;
|
||||
if (auth.getEmail() == null
|
||||
|| auth.getEmail().equals("your@email.com")
|
||||
|| auth.getEmail().isEmpty()) {
|
||||
m._(player, "usage_email_add");
|
||||
return true;
|
||||
}
|
||||
if (!args[1].equals(auth.getEmail())) {
|
||||
m._(player, "old_email_invalid");
|
||||
return true;
|
||||
if (!args[1].equals(auth.getEmail())) {
|
||||
m._(player, "old_email_invalid");
|
||||
return true;
|
||||
}
|
||||
if(!Settings.isEmailCorrect(args[2])) {
|
||||
if (!Settings.isEmailCorrect(args[2])) {
|
||||
m._(player, "new_email_invalid");
|
||||
return true;
|
||||
}
|
||||
@@ -125,78 +133,85 @@ public class EmailCommand implements CommandExecutor {
|
||||
PlayerCache.getInstance().updatePlayer(auth);
|
||||
m._(player, "email_changed");
|
||||
player.sendMessage(m._("email_defined") + auth.getEmail());
|
||||
} else if (PlayerCache.getInstance().isAuthenticated(name)){
|
||||
} else if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "email_confirm");
|
||||
} else {
|
||||
if (!data.isAuthAvailable(name)) {
|
||||
m._(player, "login_msg");
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
if (!data.isAuthAvailable(name)) {
|
||||
m._(player, "login_msg");
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("recovery")) {
|
||||
if (args.length != 2) {
|
||||
m._(player, "usage_email_recovery");
|
||||
return true;
|
||||
}
|
||||
if (plugin.mail == null) {
|
||||
m._(player, "error");
|
||||
return true;
|
||||
}
|
||||
if (data.isAuthAvailable(name)) {
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "logged_in");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
||||
String thePass = rand.nextString();
|
||||
String hashnew = PasswordSecurity.getHash(Settings.getPasswordHash, thePass, name);
|
||||
PlayerAuth auth = null;
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
auth = PlayerCache.getInstance().getAuth(name);
|
||||
} else if (data.isAuthAvailable(name)) {
|
||||
auth = data.getAuth(name);
|
||||
} else {
|
||||
m._(player, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
if (Settings.getmailAccount.equals("") || Settings.getmailAccount.isEmpty()) {
|
||||
m._(player, "error");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args[1].equalsIgnoreCase(auth.getEmail()) || args[1].equalsIgnoreCase("your@email.com") || auth.getEmail().equalsIgnoreCase("your@email.com")) {
|
||||
m._(player, "email_invalid");
|
||||
return true;
|
||||
}
|
||||
final String finalhashnew = hashnew;
|
||||
final PlayerAuth finalauth = auth;
|
||||
if (data instanceof Thread) {
|
||||
finalauth.setHash(hashnew);
|
||||
data.updatePassword(auth);
|
||||
} else {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
finalauth.setHash(finalhashnew);
|
||||
data.updatePassword(finalauth);
|
||||
}
|
||||
});
|
||||
}
|
||||
plugin.mail.main(auth, thePass);
|
||||
m._(player, "email_send");
|
||||
} catch (NoSuchAlgorithmException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
m._(sender, "error");
|
||||
} catch (NoClassDefFoundError ncdfe) {
|
||||
ConsoleLogger.showError(ncdfe.getMessage());
|
||||
m._(sender, "error");
|
||||
}
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("recovery")) {
|
||||
if (args.length != 2) {
|
||||
m._(player, "usage_email_recovery");
|
||||
return true;
|
||||
}
|
||||
if (plugin.mail == null) {
|
||||
m._(player, "error");
|
||||
return true;
|
||||
}
|
||||
if (data.isAuthAvailable(name)) {
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "logged_in");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
RandomString rand = new RandomString(
|
||||
Settings.getRecoveryPassLength);
|
||||
String thePass = rand.nextString();
|
||||
String hashnew = PasswordSecurity.getHash(
|
||||
Settings.getPasswordHash, thePass, name);
|
||||
PlayerAuth auth = null;
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
auth = PlayerCache.getInstance().getAuth(name);
|
||||
} else if (data.isAuthAvailable(name)) {
|
||||
auth = data.getAuth(name);
|
||||
} else {
|
||||
m._(player, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
if (Settings.getmailAccount.equals("")
|
||||
|| Settings.getmailAccount.isEmpty()) {
|
||||
m._(player, "error");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args[1].equalsIgnoreCase(auth.getEmail())
|
||||
|| args[1].equalsIgnoreCase("your@email.com")
|
||||
|| auth.getEmail().equalsIgnoreCase(
|
||||
"your@email.com")) {
|
||||
m._(player, "email_invalid");
|
||||
return true;
|
||||
}
|
||||
final String finalhashnew = hashnew;
|
||||
final PlayerAuth finalauth = auth;
|
||||
if (data instanceof Thread) {
|
||||
finalauth.setHash(hashnew);
|
||||
data.updatePassword(auth);
|
||||
} else {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin,
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
finalauth.setHash(finalhashnew);
|
||||
data.updatePassword(finalauth);
|
||||
}
|
||||
});
|
||||
}
|
||||
plugin.mail.main(auth, thePass);
|
||||
m._(player, "email_send");
|
||||
} catch (NoSuchAlgorithmException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
m._(sender, "error");
|
||||
} catch (NoClassDefFoundError ncdfe) {
|
||||
ConsoleLogger.showError(ncdfe.getMessage());
|
||||
m._(sender, "error");
|
||||
}
|
||||
} else {
|
||||
m._(player, "reg_email_msg");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@ import org.bukkit.entity.Player;
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
|
||||
|
||||
public class LoginCommand implements CommandExecutor {
|
||||
|
||||
private AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
|
||||
public LoginCommand(AuthMe plugin) {
|
||||
this.plugin = plugin;
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, final String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
final String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
@@ -27,15 +27,15 @@ public class LoginCommand implements CommandExecutor {
|
||||
final Player player = (Player) sender;
|
||||
|
||||
if (args.length == 0) {
|
||||
m._(player, "usage_log");
|
||||
m._(player, "usage_log");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
|
||||
m._(player, "no_perm");
|
||||
m._(player, "no_perm");
|
||||
return true;
|
||||
}
|
||||
plugin.management.performLogin(player, args[0], false);
|
||||
plugin.management.performLogin(player, args[0], false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ import fr.xephi.authme.settings.Settings;
|
||||
import fr.xephi.authme.task.MessageTask;
|
||||
import fr.xephi.authme.task.TimeoutTask;
|
||||
|
||||
|
||||
public class LogoutCommand implements CommandExecutor {
|
||||
|
||||
private Messages m = Messages.getInstance();
|
||||
@@ -42,13 +41,14 @@ public class LogoutCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public class LogoutCommand implements CommandExecutor {
|
||||
String name = player.getName().toLowerCase();
|
||||
|
||||
if (!PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "not_logged_in");
|
||||
m._(player, "not_logged_in");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -72,46 +72,55 @@ public class LogoutCommand implements CommandExecutor {
|
||||
database.setUnlogged(name);
|
||||
|
||||
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
|
||||
Location spawnLoc = plugin.getSpawnLocation(player);
|
||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, spawnLoc);
|
||||
Location spawnLoc = plugin.getSpawnLocation(player);
|
||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player,
|
||||
spawnLoc);
|
||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||
if(!tpEvent.isCancelled()) {
|
||||
if (tpEvent.getTo() != null)
|
||||
player.teleport(tpEvent.getTo());
|
||||
if (!tpEvent.isCancelled()) {
|
||||
if (tpEvent.getTo() != null) player.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
|
||||
if (LimboCache.getInstance().hasLimboPlayer(name))
|
||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||
if (LimboCache.getInstance().hasLimboPlayer(name)) LimboCache
|
||||
.getInstance().deleteLimboPlayer(name);
|
||||
LimboCache.getInstance().addLimboPlayer(player);
|
||||
utils.setGroup(player, groupType.NOTLOGGEDIN);
|
||||
if(Settings.protectInventoryBeforeLogInEnabled) {
|
||||
player.getInventory().clear();
|
||||
// create cache file for handling lost of inventories on unlogged in status
|
||||
DataFileCache playerData = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(),LimboCache.getInstance().getLimboPlayer(name).getArmour());
|
||||
playerBackup.createCache(name, playerData, LimboCache.getInstance().getLimboPlayer(name).getGroup(),LimboCache.getInstance().getLimboPlayer(name).getOperator(),LimboCache.getInstance().getLimboPlayer(name).isFlying());
|
||||
if (Settings.protectInventoryBeforeLogInEnabled) {
|
||||
player.getInventory().clear();
|
||||
// create cache file for handling lost of inventories on unlogged in
|
||||
// status
|
||||
DataFileCache playerData = new DataFileCache(LimboCache
|
||||
.getInstance().getLimboPlayer(name).getInventory(),
|
||||
LimboCache.getInstance().getLimboPlayer(name).getArmour());
|
||||
playerBackup.createCache(name, playerData, LimboCache.getInstance()
|
||||
.getLimboPlayer(name).getGroup(), LimboCache.getInstance()
|
||||
.getLimboPlayer(name).getOperator(), LimboCache
|
||||
.getInstance().getLimboPlayer(name).isFlying());
|
||||
}
|
||||
|
||||
int delay = Settings.getRegistrationTimeout * 20;
|
||||
int interval = Settings.getWarnMessageInterval;
|
||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||
if (delay != 0) {
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(
|
||||
plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
|
||||
}
|
||||
int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
|
||||
int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(
|
||||
plugin, name, m._("login_msg"), interval));
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
|
||||
try {
|
||||
if (player.isInsideVehicle())
|
||||
player.getVehicle().eject();
|
||||
if (player.isInsideVehicle()) player.getVehicle().eject();
|
||||
} catch (NullPointerException npe) {
|
||||
}
|
||||
if (Settings.applyBlindEffect)
|
||||
player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
|
||||
if (Settings.applyBlindEffect) player.addPotionEffect(new PotionEffect(
|
||||
PotionEffectType.BLINDNESS,
|
||||
Settings.getRegistrationTimeout * 20, 2));
|
||||
m._(player, "logout");
|
||||
ConsoleLogger.info(player.getDisplayName() + " logged out");
|
||||
if(plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!"));
|
||||
if (plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] "
|
||||
+ player.getName() + " logged out!"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ import fr.xephi.authme.Utils;
|
||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author stefano
|
||||
@@ -18,34 +17,37 @@ import fr.xephi.authme.settings.Messages;
|
||||
public class PasspartuCommand implements CommandExecutor {
|
||||
private Utils utils = Utils.getInstance();
|
||||
public AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
private Messages m = Messages.getInstance();
|
||||
|
||||
public PasspartuCommand(AuthMe plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PlayerCache.getInstance().isAuthenticated(sender.getName().toLowerCase())) {
|
||||
if (PlayerCache.getInstance().isAuthenticated(
|
||||
sender.getName().toLowerCase())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((sender instanceof Player) && args.length == 1) {
|
||||
if(utils.readToken(args[0])) {
|
||||
//bypass login!
|
||||
plugin.management.performLogin((Player) sender, "dontneed", true);
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("Time is expired or Token is Wrong!");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("usage: /passpartu token");
|
||||
return true;
|
||||
if ((sender instanceof Player) && args.length == 1) {
|
||||
if (utils.readToken(args[0])) {
|
||||
// bypass login!
|
||||
plugin.management.performLogin((Player) sender, "dontneed",
|
||||
true);
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("Time is expired or Token is Wrong!");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("usage: /passpartu token");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,61 +11,62 @@ import fr.xephi.authme.security.RandomString;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
import fr.xephi.authme.settings.Settings;
|
||||
|
||||
|
||||
public class RegisterCommand implements CommandExecutor {
|
||||
|
||||
private Messages m = Messages.getInstance();
|
||||
public PlayerAuth auth;
|
||||
public AuthMe plugin;
|
||||
public PlayerAuth auth;
|
||||
public AuthMe plugin;
|
||||
|
||||
public RegisterCommand(AuthMe plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
sender.sendMessage("Player Only! Use 'authme register <playername> <password>' instead");
|
||||
return true;
|
||||
sender.sendMessage("Player Only! Use 'authme register <playername> <password>' instead");
|
||||
return true;
|
||||
}
|
||||
if (args.length == 0) {
|
||||
m._(sender, "usage_reg");
|
||||
}
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
final Player player = (Player) sender;
|
||||
if(Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) {
|
||||
if(Settings.doubleEmailCheck) {
|
||||
if(args.length < 2) {
|
||||
if (Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) {
|
||||
if (Settings.doubleEmailCheck) {
|
||||
if (args.length < 2) {
|
||||
m._(player, "usage_reg");
|
||||
return true;
|
||||
}
|
||||
if(!args[0].equals(args[1])) {
|
||||
}
|
||||
if (!args[0].equals(args[1])) {
|
||||
m._(player, "usage_reg");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
final String email = args[0];
|
||||
if(!Settings.isEmailCorrect(email)) {
|
||||
if (!Settings.isEmailCorrect(email)) {
|
||||
m._(player, "email_invalid");
|
||||
return true;
|
||||
}
|
||||
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
||||
final String thePass = rand.nextString();
|
||||
}
|
||||
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
||||
final String thePass = rand.nextString();
|
||||
plugin.management.performRegister(player, thePass, email);
|
||||
return true;
|
||||
}
|
||||
if (args.length == 0 || (Settings.getEnablePasswordVerifier && args.length < 2)) {
|
||||
if (args.length == 0
|
||||
|| (Settings.getEnablePasswordVerifier && args.length < 2)) {
|
||||
m._(player, "usage_reg");
|
||||
return true;
|
||||
}
|
||||
if (args.length > 1 && Settings.getEnablePasswordVerifier)
|
||||
if(!args[0].equals(args[1])) {
|
||||
m._(player, "password_error");
|
||||
return true;
|
||||
}
|
||||
if (args.length > 1 && Settings.getEnablePasswordVerifier) if (!args[0]
|
||||
.equals(args[1])) {
|
||||
m._(player, "password_error");
|
||||
return true;
|
||||
}
|
||||
plugin.management.performRegister(player, args[0], "");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ import fr.xephi.authme.settings.Settings;
|
||||
import fr.xephi.authme.task.MessageTask;
|
||||
import fr.xephi.authme.task.TimeoutTask;
|
||||
|
||||
|
||||
public class UnregisterCommand implements CommandExecutor {
|
||||
|
||||
private Messages m = Messages.getInstance();
|
||||
@@ -43,13 +42,14 @@ public class UnregisterCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label,
|
||||
String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -57,80 +57,109 @@ public class UnregisterCommand implements CommandExecutor {
|
||||
String name = player.getName().toLowerCase();
|
||||
|
||||
if (!PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "not_logged_in");
|
||||
m._(player, "not_logged_in");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length != 1) {
|
||||
m._(player, "usage_unreg");
|
||||
m._(player, "usage_unreg");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache.getInstance().getAuth(name).getHash(), player.getName())) {
|
||||
if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache
|
||||
.getInstance().getAuth(name).getHash(), player.getName())) {
|
||||
if (!database.removeAuth(name)) {
|
||||
player.sendMessage("error");
|
||||
return true;
|
||||
}
|
||||
if(Settings.isForcedRegistrationEnabled) {
|
||||
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(player);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||
if(!tpEvent.isCancelled()) {
|
||||
player.teleport(tpEvent.getTo());
|
||||
if (Settings.isForcedRegistrationEnabled) {
|
||||
if (Settings.isTeleportToSpawnEnabled
|
||||
&& !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(player);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(
|
||||
player, player.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager()
|
||||
.callEvent(tpEvent);
|
||||
if (!tpEvent.isCancelled()) {
|
||||
player.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
player.getInventory().setContents(new ItemStack[36]);
|
||||
player.getInventory().setArmorContents(new ItemStack[4]);
|
||||
player.saveData();
|
||||
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
|
||||
if (!Settings.getRegisteredGroup.isEmpty())
|
||||
Utils.getInstance().setGroup(player, groupType.UNREGISTERED);
|
||||
player.getInventory().setContents(new ItemStack[36]);
|
||||
player.getInventory().setArmorContents(new ItemStack[4]);
|
||||
player.saveData();
|
||||
PlayerCache.getInstance().removePlayer(
|
||||
player.getName().toLowerCase());
|
||||
if (!Settings.getRegisteredGroup.isEmpty()) Utils
|
||||
.getInstance().setGroup(player,
|
||||
groupType.UNREGISTERED);
|
||||
LimboCache.getInstance().addLimboPlayer(player);
|
||||
int delay = Settings.getRegistrationTimeout * 20;
|
||||
int interval = Settings.getWarnMessageInterval;
|
||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||
if (delay != 0) {
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
|
||||
int id = sched.scheduleSyncDelayedTask(plugin,
|
||||
new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name)
|
||||
.setTimeoutTaskId(id);
|
||||
}
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("reg_msg"), interval)));
|
||||
LimboCache
|
||||
.getInstance()
|
||||
.getLimboPlayer(name)
|
||||
.setMessageTaskId(
|
||||
sched.scheduleSyncDelayedTask(
|
||||
plugin,
|
||||
new MessageTask(plugin, name, m
|
||||
._("reg_msg"), interval)));
|
||||
m._(player, "unregistered");
|
||||
ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
|
||||
if(plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " unregistered himself!"));
|
||||
ConsoleLogger.info(player.getDisplayName()
|
||||
+ " unregistered himself");
|
||||
if (plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification(
|
||||
"[AuthMe] " + player.getName()
|
||||
+ " unregistered himself!"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if(!Settings.unRegisteredGroup.isEmpty()){
|
||||
Utils.getInstance().setGroup(player, Utils.groupType.UNREGISTERED);
|
||||
}
|
||||
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
|
||||
// check if Player cache File Exist and delete it, preventing duplication of items
|
||||
if(playerCache.doesCacheExist(name)) {
|
||||
playerCache.removeCache(name);
|
||||
}
|
||||
if (Settings.applyBlindEffect)
|
||||
player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2));
|
||||
m._(player, "unregistered");
|
||||
ConsoleLogger.info(player.getDisplayName() + " unregistered himself");
|
||||
if(plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " unregistered himself!"));
|
||||
}
|
||||
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(player);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||
if(!tpEvent.isCancelled()) {
|
||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||
}
|
||||
player.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
if (!Settings.unRegisteredGroup.isEmpty()) {
|
||||
Utils.getInstance().setGroup(player,
|
||||
Utils.groupType.UNREGISTERED);
|
||||
}
|
||||
PlayerCache.getInstance().removePlayer(
|
||||
player.getName().toLowerCase());
|
||||
// check if Player cache File Exist and delete it, preventing
|
||||
// duplication of items
|
||||
if (playerCache.doesCacheExist(name)) {
|
||||
playerCache.removeCache(name);
|
||||
}
|
||||
if (Settings.applyBlindEffect) player
|
||||
.addPotionEffect(new PotionEffect(
|
||||
PotionEffectType.BLINDNESS,
|
||||
Settings.getRegistrationTimeout * 20, 2));
|
||||
m._(player, "unregistered");
|
||||
ConsoleLogger.info(player.getDisplayName()
|
||||
+ " unregistered himself");
|
||||
if (plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification(
|
||||
"[AuthMe] " + player.getName()
|
||||
+ " unregistered himself!"));
|
||||
}
|
||||
if (Settings.isTeleportToSpawnEnabled && !Settings.noTeleport) {
|
||||
Location spawn = plugin.getSpawnLocation(player);
|
||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player,
|
||||
player.getLocation(), spawn, false);
|
||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||
if (!tpEvent.isCancelled()) {
|
||||
if (!tpEvent.getTo().getWorld()
|
||||
.getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||
tpEvent.getTo().getWorld()
|
||||
.getChunkAt(tpEvent.getTo()).load();
|
||||
}
|
||||
player.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
m._(player, "wrong_pwd");
|
||||
m._(player, "wrong_pwd");
|
||||
}
|
||||
} catch (NoSuchAlgorithmException ex) {
|
||||
ConsoleLogger.showError(ex.getMessage());
|
||||
|
||||
Reference in New Issue
Block a user