Update 3.3 + fix permission error
This commit is contained in:
@@ -32,6 +32,7 @@ import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.converter.FlatToSql;
|
||||
import fr.xephi.authme.converter.FlatToSqlite;
|
||||
import fr.xephi.authme.converter.RakamakConverter;
|
||||
import fr.xephi.authme.converter.RoyalAuthConverter;
|
||||
import fr.xephi.authme.converter.newxAuthToFlat;
|
||||
import fr.xephi.authme.converter.oldxAuthToFlat;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
@@ -435,17 +436,20 @@ public class AdminCommand implements CommandExecutor {
|
||||
auth = PlayerCache.getInstance().getAuth(name);
|
||||
} else if (database.isAuthAvailable(name)) {
|
||||
auth = database.getAuth(name);
|
||||
} else {
|
||||
}
|
||||
if (auth == null) {
|
||||
m._(sender, "unknown_user");
|
||||
return true;
|
||||
}
|
||||
auth.setHash(hash);
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
if (PasswordSecurity.userSalt.containsKey(name)) {
|
||||
auth.setSalt(PasswordSecurity.userSalt.get(name));
|
||||
database.updateSalt(auth);
|
||||
}
|
||||
if (!database.updatePassword(auth)) {
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
database.updateSalt(auth);
|
||||
sender.sendMessage("pwd_changed");
|
||||
ConsoleLogger.info(args[1] + "'s password changed");
|
||||
} catch (NoSuchAlgorithmException ex) {
|
||||
@@ -509,6 +513,10 @@ public class AdminCommand implements CommandExecutor {
|
||||
}
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("royalauth")) {
|
||||
new RoyalAuthConverter(plugin);
|
||||
sender.sendMessage("[AuthMe] RoyalAuth database has been imported correctly");
|
||||
return true;
|
||||
} else {
|
||||
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
|
||||
}
|
||||
|
||||
@@ -61,7 +61,9 @@ public class CaptchaCommand implements CommandExecutor {
|
||||
if(Settings.useCaptcha && !args[0].equals(plugin.cap.get(name))) {
|
||||
plugin.cap.remove(name);
|
||||
plugin.cap.put(name, rdm.nextString());
|
||||
player.sendMessage(m._("wrong_captcha").replaceAll("THE_CAPTCHA", plugin.cap.get(name)));
|
||||
for (String s : m._("wrong_captcha")) {
|
||||
player.sendMessage(s.replace("THE_CAPTCHA", plugin.cap.get(name)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -8,11 +8,11 @@ import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.ConsoleLogger;
|
||||
import fr.xephi.authme.Utils;
|
||||
import fr.xephi.authme.Utils.groupType;
|
||||
import fr.xephi.authme.cache.auth.PlayerAuth;
|
||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.cache.backup.DataFileCache;
|
||||
@@ -91,8 +91,8 @@ public class LogoutCommand implements CommandExecutor {
|
||||
|
||||
if (LimboCache.getInstance().hasLimboPlayer(name))
|
||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
|
||||
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
|
||||
@@ -104,11 +104,11 @@ public class LogoutCommand implements CommandExecutor {
|
||||
int interval = Settings.getWarnMessageInterval;
|
||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||
if (delay != 0) {
|
||||
BukkitTask id = sched.runTaskLater(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id.getTaskId());
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
|
||||
}
|
||||
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
|
||||
int msgT = sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT);
|
||||
try {
|
||||
if (PlayersLogs.players.contains(player.getName())) {
|
||||
PlayersLogs.players.remove(player.getName());
|
||||
|
||||
@@ -16,7 +16,7 @@ import fr.xephi.authme.settings.Messages;
|
||||
* @author stefano
|
||||
*/
|
||||
public class PasspartuCommand implements CommandExecutor {
|
||||
private Utils utils = new Utils();
|
||||
private Utils utils = Utils.getInstance();
|
||||
public AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
|
||||
@@ -26,7 +26,7 @@ public class PasspartuCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
|
||||
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
|
||||
@@ -38,13 +38,11 @@ public class RegisterCommand implements CommandExecutor {
|
||||
private Messages m = Messages.getInstance();
|
||||
private PlayersLogs pllog = PlayersLogs.getInstance();
|
||||
private DataSource database;
|
||||
public boolean isFirstTimeJoin;
|
||||
public PlayerAuth auth;
|
||||
public AuthMe plugin;
|
||||
|
||||
public RegisterCommand(DataSource database, AuthMe plugin) {
|
||||
this.database = database;
|
||||
this.isFirstTimeJoin = false;
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@@ -69,7 +67,7 @@ public class RegisterCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
final String ip = ipA;
|
||||
|
||||
|
||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||
m._(player, "logged_in");
|
||||
return true;
|
||||
@@ -153,7 +151,6 @@ public class RegisterCommand implements CommandExecutor {
|
||||
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
|
||||
}
|
||||
m._(player, "vb_nonActiv");
|
||||
String msg = m._("login_msg");
|
||||
int time = Settings.getRegistrationTimeout * 20;
|
||||
int msgInterval = Settings.getWarnMessageInterval;
|
||||
if (time != 0) {
|
||||
@@ -163,10 +160,9 @@ public class RegisterCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
Bukkit.getScheduler().cancelTask(LimboCache.getInstance().getLimboPlayer(name).getMessageTaskId());
|
||||
int nwMsg = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, msg, msgInterval));
|
||||
int nwMsg = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("login_msg"), msgInterval));
|
||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(nwMsg);
|
||||
|
||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||
if (Settings.isTeleportToSpawnEnabled) {
|
||||
World world = player.getWorld();
|
||||
Location loca = plugin.getSpawnLocation(world);
|
||||
@@ -179,7 +175,6 @@ public class RegisterCommand implements CommandExecutor {
|
||||
player.teleport(tpEvent.getTo());
|
||||
}
|
||||
}
|
||||
this.isFirstTimeJoin = true;
|
||||
if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
|
||||
player.setAllowFlight(false);
|
||||
player.setFlying(false);
|
||||
@@ -188,7 +183,7 @@ public class RegisterCommand implements CommandExecutor {
|
||||
if (!Settings.noConsoleSpam)
|
||||
ConsoleLogger.info(player.getName() + " registered "+player.getAddress().getAddress().getHostAddress());
|
||||
if(plugin.notifications != null) {
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered!"));
|
||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered by email!"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -203,6 +198,13 @@ public class RegisterCommand implements CommandExecutor {
|
||||
m._(player, "pass_len");
|
||||
return true;
|
||||
}
|
||||
if(!Settings.unsafePasswords.isEmpty()) {
|
||||
if (Settings.unsafePasswords.contains(args[0].toLowerCase())) {
|
||||
m._(player, "password_error");
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
try {
|
||||
String hash;
|
||||
if(Settings.getEnablePasswordVerifier) {
|
||||
@@ -251,7 +253,6 @@ public class RegisterCommand implements CommandExecutor {
|
||||
m._(player, "registered");
|
||||
if (!Settings.getmailAccount.isEmpty())
|
||||
m._(player, "add_email");
|
||||
this.isFirstTimeJoin = true;
|
||||
if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) {
|
||||
player.setAllowFlight(false);
|
||||
player.setFlying(false);
|
||||
@@ -260,6 +261,10 @@ public class RegisterCommand implements CommandExecutor {
|
||||
Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
|
||||
player.saveData();
|
||||
|
||||
// Register is finish and player is logged, display welcome message
|
||||
for (String s : Settings.welcomeMsg)
|
||||
player.sendMessage(plugin.replaceAllInfos(s, player));
|
||||
|
||||
// Register is now finish , we can force all commands
|
||||
forceCommands(player);
|
||||
if (!Settings.noConsoleSpam)
|
||||
@@ -273,7 +278,7 @@ public class RegisterCommand implements CommandExecutor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
protected void forceCommands(Player player) {
|
||||
for (String command : Settings.forceCommands) {
|
||||
try {
|
||||
|
||||
@@ -11,11 +11,11 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.ConsoleLogger;
|
||||
import fr.xephi.authme.Utils;
|
||||
import fr.xephi.authme.Utils.groupType;
|
||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.cache.backup.FileCache;
|
||||
import fr.xephi.authme.cache.limbo.LimboCache;
|
||||
@@ -77,12 +77,13 @@ public class UnregisterCommand implements CommandExecutor {
|
||||
player.saveData();
|
||||
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
|
||||
LimboCache.getInstance().addLimboPlayer(player);
|
||||
Utils.getInstance().setGroup(player, groupType.UNREGISTERED);
|
||||
int delay = Settings.getRegistrationTimeout * 20;
|
||||
int interval = Settings.getWarnMessageInterval;
|
||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||
if (delay != 0) {
|
||||
BukkitTask id = sched.runTaskLater(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id.getTaskId());
|
||||
int id = sched.scheduleSyncDelayedTask(plugin, new TimeoutTask(plugin, name), delay);
|
||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id);
|
||||
}
|
||||
sched.scheduleSyncDelayedTask(plugin, new MessageTask(plugin, name, m._("reg_msg"), interval));
|
||||
if(!Settings.unRegisteredGroup.isEmpty()){
|
||||
|
||||
Reference in New Issue
Block a user