mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-08 03:29:41 +01:00
Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 432-remove-public-ip-map
Conflicts: src/main/java/fr/xephi/authme/process/register/AsyncRegister.java
This commit is contained in:
commit
9a412fac05
@ -58,7 +58,7 @@ McStats: http://mcstats.org/plugin/AuthMe
|
|||||||
|
|
||||||
#####"The best authentication plugin for the Bukkit/Spigot API!"
|
#####"The best authentication plugin for the Bukkit/Spigot API!"
|
||||||
|
|
||||||
<p>Prevent username stealing on your server! Fully compatible with UUIDs and Craftbukkit/Spigot 1.8.X!<br>
|
<p>Prevent username stealing on your server!<br>
|
||||||
Use it to secure your Offline mode server or to increase your Online mode server's protection!</p>
|
Use it to secure your Offline mode server or to increase your Online mode server's protection!</p>
|
||||||
|
|
||||||
<p>AuthMeReloaded disallows players who aren't authenticated to do actions like placing blocks, moving,<br>
|
<p>AuthMeReloaded disallows players who aren't authenticated to do actions like placing blocks, moving,<br>
|
||||||
|
2
pom.xml
2
pom.xml
@ -334,7 +334,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
<version>2.4.3</version>
|
<version>2.4.5-SNAPSHOT</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
|
@ -45,7 +45,6 @@ import fr.xephi.authme.process.ProcessService;
|
|||||||
import fr.xephi.authme.security.PasswordSecurity;
|
import fr.xephi.authme.security.PasswordSecurity;
|
||||||
import fr.xephi.authme.security.crypts.SHA256;
|
import fr.xephi.authme.security.crypts.SHA256;
|
||||||
import fr.xephi.authme.settings.NewSetting;
|
import fr.xephi.authme.settings.NewSetting;
|
||||||
import fr.xephi.authme.settings.OtherAccounts;
|
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.SettingsMigrationService;
|
import fr.xephi.authme.settings.SettingsMigrationService;
|
||||||
import fr.xephi.authme.settings.Spawn;
|
import fr.xephi.authme.settings.Spawn;
|
||||||
@ -118,7 +117,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
public NewAPI api;
|
public NewAPI api;
|
||||||
public SendMailSSL mail;
|
public SendMailSSL mail;
|
||||||
public DataManager dataManager;
|
public DataManager dataManager;
|
||||||
public OtherAccounts otherAccounts;
|
|
||||||
public Location essentialsSpawn;
|
public Location essentialsSpawn;
|
||||||
/*
|
/*
|
||||||
* Plugin Hooks
|
* Plugin Hooks
|
||||||
@ -242,6 +240,8 @@ public class AuthMe extends JavaPlugin {
|
|||||||
try {
|
try {
|
||||||
setupDatabase(newSettings);
|
setupDatabase(newSettings);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
ConsoleLogger.showError("If you are using CraftBukkit/Spigot 1.9 please add the "
|
||||||
|
+ "-Dfile.encoding=UTF-8 argument in your server startup script!");
|
||||||
ConsoleLogger.logException("Fatal error occurred during database connection! "
|
ConsoleLogger.logException("Fatal error occurred during database connection! "
|
||||||
+ "Authme initialization aborted!", e);
|
+ "Authme initialization aborted!", e);
|
||||||
stopOrUnload();
|
stopOrUnload();
|
||||||
@ -257,9 +257,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
permsMan = initializePermissionsManager();
|
permsMan = initializePermissionsManager();
|
||||||
commandHandler = initializeCommandHandler(permsMan, messages, passwordSecurity, newSettings, ipAddressManager);
|
commandHandler = initializeCommandHandler(permsMan, messages, passwordSecurity, newSettings, ipAddressManager);
|
||||||
|
|
||||||
// Setup otherAccounts file
|
|
||||||
this.otherAccounts = OtherAccounts.getInstance();
|
|
||||||
|
|
||||||
// Set up Metrics
|
// Set up Metrics
|
||||||
MetricsStarter.setupMetrics(plugin, newSettings);
|
MetricsStarter.setupMetrics(plugin, newSettings);
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ public class RegisterAdminCommand implements ExecutableCommand {
|
|||||||
public void executeCommand(final CommandSender sender, List<String> arguments,
|
public void executeCommand(final CommandSender sender, List<String> arguments,
|
||||||
final CommandService commandService) {
|
final CommandService commandService) {
|
||||||
// Get the player name and password
|
// Get the player name and password
|
||||||
final String playerName = arguments.get(0).toLowerCase();
|
final String playerName = arguments.get(0);
|
||||||
final String playerPass = arguments.get(1).toLowerCase();
|
final String playerPass = arguments.get(1);
|
||||||
final String playerNameLowerCase = playerName.toLowerCase();
|
final String playerNameLowerCase = playerName.toLowerCase();
|
||||||
final String playerPassLowerCase = playerPass.toLowerCase();
|
final String playerPassLowerCase = playerPass.toLowerCase();
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public enum MessageKey {
|
|||||||
|
|
||||||
REGISTER_EMAIL_MESSAGE("reg_email_msg"),
|
REGISTER_EMAIL_MESSAGE("reg_email_msg"),
|
||||||
|
|
||||||
MAX_REGISTER_EXCEEDED("max_reg", "%acc_nb"),
|
MAX_REGISTER_EXCEEDED("max_reg", "%max_acc", "%reg_count", "%reg_names"),
|
||||||
|
|
||||||
USAGE_REGISTER("usage_reg"),
|
USAGE_REGISTER("usage_reg"),
|
||||||
|
|
||||||
|
@ -172,7 +172,6 @@ public class AsynchronousLogin implements Process {
|
|||||||
// makes player isLoggedin via API
|
// makes player isLoggedin via API
|
||||||
PlayerCache.getInstance().addPlayer(auth);
|
PlayerCache.getInstance().addPlayer(auth);
|
||||||
database.setLogged(name);
|
database.setLogged(name);
|
||||||
plugin.otherAccounts.addPlayer(player.getUniqueId());
|
|
||||||
|
|
||||||
// As the scheduling executes the Task most likely after the current
|
// As the scheduling executes the Task most likely after the current
|
||||||
// task, we schedule it in the end
|
// task, we schedule it in the end
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package fr.xephi.authme.process.register;
|
package fr.xephi.authme.process.register;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.cache.auth.PlayerAuth;
|
import fr.xephi.authme.cache.auth.PlayerAuth;
|
||||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||||
@ -70,18 +75,20 @@ public class AsyncRegister implements Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//check this in both possibilities so don't use 'else if'
|
//check this in both possibilities so don't use 'else if'
|
||||||
int size;
|
|
||||||
if (database.isAuthAvailable(name)) {
|
if (database.isAuthAvailable(name)) {
|
||||||
service.send(player, MessageKey.NAME_ALREADY_REGISTERED);
|
service.send(player, MessageKey.NAME_ALREADY_REGISTERED);
|
||||||
return false;
|
return false;
|
||||||
} else if(Settings.getmaxRegPerIp > 0
|
} else if(Settings.getmaxRegPerIp > 0
|
||||||
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
|
||||||
&& !ip.equalsIgnoreCase("127.0.0.1")
|
&& !ip.equalsIgnoreCase("127.0.0.1")
|
||||||
&& !ip.equalsIgnoreCase("localhost")
|
&& !ip.equalsIgnoreCase("localhost")
|
||||||
&& (size = database.getAllAuthsByIp(ip).size()) >= Settings.getmaxRegPerIp) {
|
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||||
service.send(player, MessageKey.MAX_REGISTER_EXCEEDED, Integer.toString(size));
|
Integer maxReg = Settings.getmaxRegPerIp;
|
||||||
|
List<String> otherAccounts = database.getAllAuthsByIp(ip);
|
||||||
|
if (otherAccounts.size() >= maxReg) {
|
||||||
|
m.send(player, MessageKey.MAX_REGISTER_EXCEEDED, maxReg.toString(), Integer.toString(otherAccounts.size()), otherAccounts.toString());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,13 +104,17 @@ public class AsyncRegister implements Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void emailRegister() {
|
private void emailRegister() {
|
||||||
int size;
|
|
||||||
if(Settings.getmaxRegPerEmail > 0
|
if(Settings.getmaxRegPerEmail > 0
|
||||||
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
&& !ip.equalsIgnoreCase("127.0.0.1")
|
||||||
&& (size = database.countAuthsByEmail(email)) >= Settings.getmaxRegPerEmail) {
|
&& !ip.equalsIgnoreCase("localhost")
|
||||||
service.send(player, MessageKey.MAX_REGISTER_EXCEEDED, Integer.toString(size));
|
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)) {
|
||||||
|
Integer maxReg = Settings.getmaxRegPerIp;
|
||||||
|
List<String> otherAccounts = database.getAllAuthsByIp(ip);
|
||||||
|
if (otherAccounts.size() >= maxReg) {
|
||||||
|
m.send(player, MessageKey.MAX_REGISTER_EXCEEDED, maxReg.toString(), Integer.toString(otherAccounts.size()), otherAccounts.toString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
final HashedPassword hashedPassword = plugin.getPasswordSecurity().computeHash(password, name);
|
final HashedPassword hashedPassword = plugin.getPasswordSecurity().computeHash(password, name);
|
||||||
PlayerAuth auth = PlayerAuth.builder()
|
PlayerAuth auth = PlayerAuth.builder()
|
||||||
.name(name)
|
.name(name)
|
||||||
@ -148,7 +159,6 @@ public class AsyncRegister implements Process {
|
|||||||
plugin.getManagement().performLogin(player, "dontneed", true);
|
plugin.getManagement().performLogin(player, "dontneed", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.otherAccounts.addPlayer(player.getUniqueId());
|
|
||||||
ProcessSyncPasswordRegister sync = new ProcessSyncPasswordRegister(player, plugin, service);
|
ProcessSyncPasswordRegister sync = new ProcessSyncPasswordRegister(player, plugin, service);
|
||||||
service.scheduleSyncDelayedTask(sync);
|
service.scheduleSyncDelayedTask(sync);
|
||||||
|
|
||||||
|
@ -1,96 +0,0 @@
|
|||||||
package fr.xephi.authme.settings;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Xephi59
|
|
||||||
* @version $Revision: 1.0 $
|
|
||||||
*/
|
|
||||||
public class OtherAccounts extends CustomConfiguration {
|
|
||||||
|
|
||||||
private static OtherAccounts others = null;
|
|
||||||
|
|
||||||
public OtherAccounts() {
|
|
||||||
super(new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "otheraccounts.yml"));
|
|
||||||
others = this;
|
|
||||||
load();
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getInstance.
|
|
||||||
*
|
|
||||||
* @return OtherAccounts
|
|
||||||
*/
|
|
||||||
public static OtherAccounts getInstance() {
|
|
||||||
if (others == null) {
|
|
||||||
others = new OtherAccounts();
|
|
||||||
}
|
|
||||||
return others;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method clear.
|
|
||||||
*
|
|
||||||
* @param uuid UUID
|
|
||||||
*/
|
|
||||||
public void clear(UUID uuid) {
|
|
||||||
set(uuid.toString(), new ArrayList<String>());
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method addPlayer.
|
|
||||||
*
|
|
||||||
* @param uuid UUID
|
|
||||||
*/
|
|
||||||
public void addPlayer(UUID uuid) {
|
|
||||||
try {
|
|
||||||
Player player = Bukkit.getPlayer(uuid);
|
|
||||||
if (player == null)
|
|
||||||
return;
|
|
||||||
if (!this.getStringList(uuid.toString()).contains(player.getName())) {
|
|
||||||
this.getStringList(uuid.toString()).add(player.getName());
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
} catch (NoSuchMethodError | Exception e) {
|
|
||||||
//ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method removePlayer.
|
|
||||||
*
|
|
||||||
* @param uuid UUID
|
|
||||||
*/
|
|
||||||
public void removePlayer(UUID uuid) {
|
|
||||||
try {
|
|
||||||
Player player = Bukkit.getPlayer(uuid);
|
|
||||||
if (player == null)
|
|
||||||
return;
|
|
||||||
if (this.getStringList(uuid.toString()).contains(player.getName())) {
|
|
||||||
this.getStringList(uuid.toString()).remove(player.getName());
|
|
||||||
save();
|
|
||||||
}
|
|
||||||
} catch (NoSuchMethodError | Exception e) {
|
|
||||||
//ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllPlayersByUUID.
|
|
||||||
*
|
|
||||||
* @param uuid UUID
|
|
||||||
*
|
|
||||||
* @return StringList
|
|
||||||
*/
|
|
||||||
public List<String> getAllPlayersByUUID(UUID uuid) {
|
|
||||||
return this.getStringList(uuid.toString());
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,7 +12,7 @@ login: '&2Successful login!'
|
|||||||
vb_nonActiv: '&cYour account isn''t activated yet, please check your emails!'
|
vb_nonActiv: '&cYour account isn''t activated yet, please check your emails!'
|
||||||
user_regged: '&cYou already have registered this username!'
|
user_regged: '&cYou already have registered this username!'
|
||||||
usage_reg: '&cUsage: /register <password> <ConfirmPassword>'
|
usage_reg: '&cUsage: /register <password> <ConfirmPassword>'
|
||||||
max_reg: '&cYou have exceeded the maximum number of registrations (%acc_nb) for your connection!'
|
max_reg: '&cYou have exceeded the maximum number of registrations (%reg_count/%max_acc %reg_names) for your connection!'
|
||||||
no_perm: '&4You don''t have the permission to perform this action!'
|
no_perm: '&4You don''t have the permission to perform this action!'
|
||||||
error: '&4An unexpected error occurred, please contact an administrator!'
|
error: '&4An unexpected error occurred, please contact an administrator!'
|
||||||
login_msg: '&cPlease, login with the command "/login <password>"'
|
login_msg: '&cPlease, login with the command "/login <password>"'
|
||||||
|
Loading…
Reference in New Issue
Block a user