mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-27 20:57:35 +01:00
Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 347-config-rewrite
This commit is contained in:
commit
7d749801f9
@ -32,7 +32,6 @@ import fr.xephi.authme.listener.AuthMePlayerListener;
|
|||||||
import fr.xephi.authme.listener.AuthMePlayerListener16;
|
import fr.xephi.authme.listener.AuthMePlayerListener16;
|
||||||
import fr.xephi.authme.listener.AuthMePlayerListener18;
|
import fr.xephi.authme.listener.AuthMePlayerListener18;
|
||||||
import fr.xephi.authme.listener.AuthMeServerListener;
|
import fr.xephi.authme.listener.AuthMeServerListener;
|
||||||
import fr.xephi.authme.listener.AuthMeServerStop;
|
|
||||||
import fr.xephi.authme.listener.AuthMeTabCompletePacketAdapter;
|
import fr.xephi.authme.listener.AuthMeTabCompletePacketAdapter;
|
||||||
import fr.xephi.authme.mail.SendMailSSL;
|
import fr.xephi.authme.mail.SendMailSSL;
|
||||||
import fr.xephi.authme.modules.ModuleManager;
|
import fr.xephi.authme.modules.ModuleManager;
|
||||||
@ -307,13 +306,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
// Show settings warnings
|
// Show settings warnings
|
||||||
showSettingsWarnings();
|
showSettingsWarnings();
|
||||||
|
|
||||||
// Register a server shutdown hook
|
|
||||||
try {
|
|
||||||
Runtime.getRuntime().addShutdownHook(new AuthMeServerStop(this));
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sponsor messages
|
// Sponsor messages
|
||||||
ConsoleLogger.info("AuthMe hooks perfectly with the VeryGames server hosting!");
|
ConsoleLogger.info("AuthMe hooks perfectly with the VeryGames server hosting!");
|
||||||
ConsoleLogger.info("Development builds are available on our jenkins, thanks to f14stelt.");
|
ConsoleLogger.info("Development builds are available on our jenkins, thanks to f14stelt.");
|
||||||
@ -521,10 +513,10 @@ public class AuthMe extends JavaPlugin {
|
|||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
// Save player data
|
// Save player data
|
||||||
Collection<? extends Player> players = Utils.getOnlinePlayers();
|
Collection<? extends Player> players = Utils.getOnlinePlayers();
|
||||||
if (players != null) {
|
for (Player player : players) {
|
||||||
for (Player player : players) {
|
savePlayer(player);
|
||||||
this.savePlayer(player);
|
// TODO: add a MessageKey
|
||||||
}
|
player.kickPlayer("Server is restarting or AuthMe plugin was disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do backup on stop if enabled
|
// Do backup on stop if enabled
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
package fr.xephi.authme.datasource;
|
package fr.xephi.authme.datasource;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
@ -13,10 +7,16 @@ import com.google.common.cache.LoadingCache;
|
|||||||
import com.google.common.cache.RemovalListener;
|
import com.google.common.cache.RemovalListener;
|
||||||
import com.google.common.cache.RemovalListeners;
|
import com.google.common.cache.RemovalListeners;
|
||||||
import com.google.common.cache.RemovalNotification;
|
import com.google.common.cache.RemovalNotification;
|
||||||
|
import fr.xephi.authme.ConsoleLogger;
|
||||||
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;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class CacheDataSource implements DataSource {
|
public class CacheDataSource implements DataSource {
|
||||||
@ -52,44 +52,17 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method isAuthAvailable.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#isAuthAvailable(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean isAuthAvailable(String user) {
|
public synchronized boolean isAuthAvailable(String user) {
|
||||||
return getAuth(user) != null;
|
return getAuth(user) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAuth.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return PlayerAuth
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAuth(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized PlayerAuth getAuth(String user) {
|
public synchronized PlayerAuth getAuth(String user) {
|
||||||
user = user.toLowerCase();
|
user = user.toLowerCase();
|
||||||
return cachedAuths.getUnchecked(user).orNull();
|
return cachedAuths.getUnchecked(user).orNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method saveAuth.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#saveAuth(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean saveAuth(PlayerAuth auth) {
|
public synchronized boolean saveAuth(PlayerAuth auth) {
|
||||||
boolean result = source.saveAuth(auth);
|
boolean result = source.saveAuth(auth);
|
||||||
@ -99,15 +72,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updatePassword.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updatePassword(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean updatePassword(PlayerAuth auth) {
|
public synchronized boolean updatePassword(PlayerAuth auth) {
|
||||||
boolean result = source.updatePassword(auth);
|
boolean result = source.updatePassword(auth);
|
||||||
@ -117,15 +81,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateSession.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateSession(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateSession(PlayerAuth auth) {
|
public boolean updateSession(PlayerAuth auth) {
|
||||||
boolean result = source.updateSession(auth);
|
boolean result = source.updateSession(auth);
|
||||||
@ -135,47 +90,20 @@ public class CacheDataSource implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateQuitLoc.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateQuitLoc(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateQuitLoc(final PlayerAuth auth) {
|
public boolean updateQuitLoc(final PlayerAuth auth) {
|
||||||
boolean result = source.updateSession(auth);
|
boolean result = source.updateQuitLoc(auth);
|
||||||
if (result) {
|
if (result) {
|
||||||
cachedAuths.refresh(auth.getNickname());
|
cachedAuths.refresh(auth.getNickname());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getIps.
|
|
||||||
*
|
|
||||||
* @param ip String
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getIps(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int getIps(String ip) {
|
public int getIps(String ip) {
|
||||||
return source.getIps(ip);
|
return source.getIps(ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method purgeDatabase.
|
|
||||||
*
|
|
||||||
* @param until long
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#purgeDatabase(long)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int purgeDatabase(long until) {
|
public int purgeDatabase(long until) {
|
||||||
int cleared = source.purgeDatabase(until);
|
int cleared = source.purgeDatabase(until);
|
||||||
@ -189,15 +117,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
return cleared;
|
return cleared;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method autoPurgeDatabase.
|
|
||||||
*
|
|
||||||
* @param until long
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#autoPurgeDatabase(long)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> autoPurgeDatabase(long until) {
|
public List<String> autoPurgeDatabase(long until) {
|
||||||
List<String> cleared = source.autoPurgeDatabase(until);
|
List<String> cleared = source.autoPurgeDatabase(until);
|
||||||
@ -207,15 +126,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
return cleared;
|
return cleared;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method removeAuth.
|
|
||||||
*
|
|
||||||
* @param name String
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#removeAuth(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean removeAuth(String name) {
|
public synchronized boolean removeAuth(String name) {
|
||||||
name = name.toLowerCase();
|
name = name.toLowerCase();
|
||||||
@ -226,22 +136,17 @@ public class CacheDataSource implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method close.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#close()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void close() {
|
public synchronized void close() {
|
||||||
exec.shutdown();
|
try {
|
||||||
|
exec.shutdown();
|
||||||
|
exec.awaitTermination(8, TimeUnit.SECONDS);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
ConsoleLogger.writeStackTrace(e);
|
||||||
|
}
|
||||||
source.close();
|
source.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method reload.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#reload()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void reload() { // unused method
|
public void reload() { // unused method
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -253,15 +158,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateEmail.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateEmail(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean updateEmail(final PlayerAuth auth) {
|
public synchronized boolean updateEmail(final PlayerAuth auth) {
|
||||||
boolean result = source.updateEmail(auth);
|
boolean result = source.updateEmail(auth);
|
||||||
@ -271,55 +167,21 @@ public class CacheDataSource implements DataSource {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByName.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByName(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized List<String> getAllAuthsByName(PlayerAuth auth) {
|
public synchronized List<String> getAllAuthsByName(PlayerAuth auth) {
|
||||||
return source.getAllAuthsByName(auth);
|
return source.getAllAuthsByName(auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByIp.
|
|
||||||
*
|
|
||||||
* @param ip String
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByIp(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized List<String> getAllAuthsByIp(final String ip) {
|
public synchronized List<String> getAllAuthsByIp(final String ip) {
|
||||||
return source.getAllAuthsByIp(ip);
|
return source.getAllAuthsByIp(ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByEmail.
|
|
||||||
*
|
|
||||||
* @param email String
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByEmail(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized List<String> getAllAuthsByEmail(final String email) {
|
public synchronized List<String> getAllAuthsByEmail(final String email) {
|
||||||
return source.getAllAuthsByEmail(email);
|
return source.getAllAuthsByEmail(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method purgeBanned.
|
|
||||||
*
|
|
||||||
* @param banned List of String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#purgeBanned(List)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void purgeBanned(final List<String> banned) {
|
public synchronized void purgeBanned(final List<String> banned) {
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -331,39 +193,16 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getType.
|
|
||||||
*
|
|
||||||
* @return DataSourceType
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getType()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceType getType() {
|
public DataSourceType getType() {
|
||||||
return source.getType();
|
return source.getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method isLogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#isLogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isLogged(String user) {
|
public boolean isLogged(String user) {
|
||||||
return PlayerCache.getInstance().isAuthenticated(user);
|
return PlayerCache.getInstance().isAuthenticated(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method setLogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#setLogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogged(final String user) {
|
public void setLogged(final String user) {
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -374,13 +213,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method setUnlogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#setUnlogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void setUnlogged(final String user) {
|
public void setUnlogged(final String user) {
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -391,11 +223,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method purgeLogged.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#purgeLogged()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void purgeLogged() {
|
public void purgeLogged() {
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -407,26 +234,11 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAccountsRegistered.
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAccountsRegistered()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int getAccountsRegistered() {
|
public int getAccountsRegistered() {
|
||||||
return source.getAccountsRegistered();
|
return source.getAccountsRegistered();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateName.
|
|
||||||
*
|
|
||||||
* @param oldOne String
|
|
||||||
* @param newOne String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateName(String, String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void updateName(final String oldOne, final String newOne) {
|
public void updateName(final String oldOne, final String newOne) {
|
||||||
exec.execute(new Runnable() {
|
exec.execute(new Runnable() {
|
||||||
@ -438,25 +250,11 @@ public class CacheDataSource implements DataSource {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuths.
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuths()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlayerAuth> getAllAuths() {
|
public List<PlayerAuth> getAllAuths() {
|
||||||
return source.getAllAuths();
|
return source.getAllAuths();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getLoggedPlayers.
|
|
||||||
*
|
|
||||||
* @return List
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getLoggedPlayers()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlayerAuth> getLoggedPlayers() {
|
public List<PlayerAuth> getLoggedPlayers() {
|
||||||
return new ArrayList<>(PlayerCache.getInstance().getCache().values());
|
return new ArrayList<>(PlayerCache.getInstance().getCache().values());
|
||||||
|
@ -70,12 +70,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method connect.
|
|
||||||
*
|
|
||||||
* @throws ClassNotFoundException
|
|
||||||
* @throws SQLException
|
|
||||||
*/
|
|
||||||
private synchronized void connect() throws ClassNotFoundException, SQLException {
|
private synchronized void connect() throws ClassNotFoundException, SQLException {
|
||||||
Class.forName("org.sqlite.JDBC");
|
Class.forName("org.sqlite.JDBC");
|
||||||
ConsoleLogger.info("SQLite driver loaded");
|
ConsoleLogger.info("SQLite driver loaded");
|
||||||
@ -83,11 +77,6 @@ public class SQLite implements DataSource {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method setup.
|
|
||||||
*
|
|
||||||
* @throws SQLException
|
|
||||||
*/
|
|
||||||
private synchronized void setup() throws SQLException {
|
private synchronized void setup() throws SQLException {
|
||||||
Statement st = null;
|
Statement st = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
@ -149,14 +138,6 @@ public class SQLite implements DataSource {
|
|||||||
ConsoleLogger.info("SQLite Setup finished");
|
ConsoleLogger.info("SQLite Setup finished");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method isAuthAvailable.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#isAuthAvailable(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean isAuthAvailable(String user) {
|
public synchronized boolean isAuthAvailable(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -175,14 +156,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAuth.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return PlayerAuth
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAuth(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized PlayerAuth getAuth(String user) {
|
public synchronized PlayerAuth getAuth(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -205,14 +178,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method saveAuth.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#saveAuth(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean saveAuth(PlayerAuth auth) {
|
public synchronized boolean saveAuth(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -252,14 +217,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updatePassword.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updatePassword(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean updatePassword(PlayerAuth auth) {
|
public synchronized boolean updatePassword(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -287,14 +244,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateSession.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateSession(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateSession(PlayerAuth auth) {
|
public boolean updateSession(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -314,14 +263,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method purgeDatabase.
|
|
||||||
*
|
|
||||||
* @param until long
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#purgeDatabase(long)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int purgeDatabase(long until) {
|
public int purgeDatabase(long until) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -338,14 +279,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method autoPurgeDatabase.
|
|
||||||
*
|
|
||||||
* @param until long
|
|
||||||
*
|
|
||||||
* @return List of String
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#autoPurgeDatabase(long)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> autoPurgeDatabase(long until) {
|
public List<String> autoPurgeDatabase(long until) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -368,14 +301,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method removeAuth.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#removeAuth(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean removeAuth(String user) {
|
public synchronized boolean removeAuth(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -392,14 +317,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateQuitLoc.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateQuitLoc(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateQuitLoc(PlayerAuth auth) {
|
public boolean updateQuitLoc(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -420,14 +337,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getIps.
|
|
||||||
*
|
|
||||||
* @param ip String
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getIps(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int getIps(String ip) {
|
public int getIps(String ip) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -451,14 +360,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method updateEmail.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#updateEmail(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateEmail(PlayerAuth auth) {
|
public boolean updateEmail(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -476,11 +377,6 @@ public class SQLite implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method close.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#close()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void close() {
|
public synchronized void close() {
|
||||||
try {
|
try {
|
||||||
@ -490,20 +386,10 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method reload.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#reload()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void reload() {
|
public void reload() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method close.
|
|
||||||
*
|
|
||||||
* @param st Statement
|
|
||||||
*/
|
|
||||||
private void close(Statement st) {
|
private void close(Statement st) {
|
||||||
if (st != null) {
|
if (st != null) {
|
||||||
try {
|
try {
|
||||||
@ -514,11 +400,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method close.
|
|
||||||
*
|
|
||||||
* @param rs ResultSet
|
|
||||||
*/
|
|
||||||
private void close(ResultSet rs) {
|
private void close(ResultSet rs) {
|
||||||
if (rs != null) {
|
if (rs != null) {
|
||||||
try {
|
try {
|
||||||
@ -529,14 +410,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByName.
|
|
||||||
*
|
|
||||||
* @param auth PlayerAuth
|
|
||||||
*
|
|
||||||
* @return List of String
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByName(PlayerAuth)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getAllAuthsByName(PlayerAuth auth) {
|
public List<String> getAllAuthsByName(PlayerAuth auth) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -561,14 +434,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByIp.
|
|
||||||
*
|
|
||||||
* @param ip String
|
|
||||||
*
|
|
||||||
* @return List of String
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByIp(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getAllAuthsByIp(String ip) {
|
public List<String> getAllAuthsByIp(String ip) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -593,14 +458,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuthsByEmail.
|
|
||||||
*
|
|
||||||
* @param email String
|
|
||||||
*
|
|
||||||
* @return List of String
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAllAuthsByEmail(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getAllAuthsByEmail(String email) {
|
public List<String> getAllAuthsByEmail(String email) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -641,24 +498,11 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getType.
|
|
||||||
*
|
|
||||||
* @return DataSourceType
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getType()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceType getType() {
|
public DataSourceType getType() {
|
||||||
return DataSourceType.SQLITE;
|
return DataSourceType.SQLITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method isLogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @return boolean * @see fr.xephi.authme.datasource.DataSource#isLogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isLogged(String user) {
|
public boolean isLogged(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -679,13 +523,6 @@ public class SQLite implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method setLogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#setLogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void setLogged(String user) {
|
public void setLogged(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -701,13 +538,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method setUnlogged.
|
|
||||||
*
|
|
||||||
* @param user String
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#setUnlogged(String)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void setUnlogged(String user) {
|
public void setUnlogged(String user) {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -724,11 +554,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method purgeLogged.
|
|
||||||
*
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#purgeLogged()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void purgeLogged() {
|
public void purgeLogged() {
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
@ -744,12 +569,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAccountsRegistered.
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
* @see fr.xephi.authme.datasource.DataSource#getAccountsRegistered()
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int getAccountsRegistered() {
|
public int getAccountsRegistered() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
@ -785,11 +604,6 @@ public class SQLite implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getAllAuths.
|
|
||||||
*
|
|
||||||
* @return List of PlayerAuth
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlayerAuth> getAllAuths() {
|
public List<PlayerAuth> getAllAuths() {
|
||||||
List<PlayerAuth> auths = new ArrayList<>();
|
List<PlayerAuth> auths = new ArrayList<>();
|
||||||
@ -811,11 +625,6 @@ public class SQLite implements DataSource {
|
|||||||
return auths;
|
return auths;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getLoggedPlayers.
|
|
||||||
*
|
|
||||||
* @return List of PlayerAuth
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlayerAuth> getLoggedPlayers() {
|
public List<PlayerAuth> getLoggedPlayers() {
|
||||||
List<PlayerAuth> auths = new ArrayList<>();
|
List<PlayerAuth> auths = new ArrayList<>();
|
||||||
|
@ -193,7 +193,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.isForceSurvivalModeEnabled
|
if (Settings.isForceSurvivalModeEnabled
|
||||||
&& !player.hasPermission(PlayerPermission.BYPASS_FORCE_SURVIVAL.getNode())) {
|
&& !player.hasPermission(PlayerPermission.BYPASS_FORCE_SURVIVAL.getNode())) {
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
PlayerAuth auth = plugin.getDataSource().getAuth(event.getName());
|
PlayerAuth auth = plugin.getDataSource().getAuth(event.getName());
|
||||||
if (Settings.preventOtherCase && auth != null && auth.getRealName() != null) {
|
if (Settings.preventOtherCase && auth != null && auth.getRealName() != null) {
|
||||||
String realName = auth.getRealName();
|
String realName = auth.getRealName();
|
||||||
if(!realName.isEmpty() && !realName.equals("Player") && !realName.equals(event.getName())) {
|
if (!realName.isEmpty() && !realName.equals("Player") && !realName.equals(event.getName())) {
|
||||||
event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
|
event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
|
||||||
// TODO: Add a message like : MessageKey.INVALID_NAME_CASE
|
// TODO: Add a message like : MessageKey.INVALID_NAME_CASE
|
||||||
event.setKickMessage("You should join using username: " + ChatColor.AQUA + realName +
|
event.setKickMessage("You should join using username: " + ChatColor.AQUA + realName +
|
||||||
@ -274,21 +274,26 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
// Get the permissions manager
|
// Get the permissions manager
|
||||||
PermissionsManager permsMan = plugin.getPermissionsManager();
|
PermissionsManager permsMan = plugin.getPermissionsManager();
|
||||||
|
|
||||||
if (event.getResult() == PlayerLoginEvent.Result.KICK_FULL
|
if (event.getResult() == PlayerLoginEvent.Result.KICK_FULL) {
|
||||||
&& permsMan.hasPermission(player, PlayerPermission.IS_VIP)) {
|
if (permsMan.hasPermission(player, PlayerPermission.IS_VIP)) {
|
||||||
int playersOnline = Utils.getOnlinePlayers().size();
|
int playersOnline = Utils.getOnlinePlayers().size();
|
||||||
if (playersOnline > plugin.getServer().getMaxPlayers()) {
|
if (playersOnline > plugin.getServer().getMaxPlayers()) {
|
||||||
event.allow();
|
|
||||||
} else {
|
|
||||||
Player pl = plugin.generateKickPlayer(Utils.getOnlinePlayers());
|
|
||||||
if (pl != null) {
|
|
||||||
pl.kickPlayer(m.retrieveSingle(MessageKey.KICK_FOR_VIP));
|
|
||||||
event.allow();
|
event.allow();
|
||||||
} else {
|
} else {
|
||||||
ConsoleLogger.info("The player " + event.getPlayer().getName() + " tried to join, but the server was full");
|
Player pl = plugin.generateKickPlayer(Utils.getOnlinePlayers());
|
||||||
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_FULL_SERVER));
|
if (pl != null) {
|
||||||
event.setResult(PlayerLoginEvent.Result.KICK_FULL);
|
pl.kickPlayer(m.retrieveSingle(MessageKey.KICK_FOR_VIP));
|
||||||
|
event.allow();
|
||||||
|
} else {
|
||||||
|
ConsoleLogger.info("The player " + event.getPlayer().getName() + " tried to join, but the server was full");
|
||||||
|
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_FULL_SERVER));
|
||||||
|
event.setResult(PlayerLoginEvent.Result.KICK_FULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_FULL_SERVER));
|
||||||
|
event.setResult(PlayerLoginEvent.Result.KICK_FULL);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,12 +301,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.getResult() == PlayerLoginEvent.Result.KICK_FULL && !permsMan.hasPermission(player, PlayerPermission.IS_VIP)) {
|
|
||||||
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_FULL_SERVER));
|
|
||||||
event.setResult(PlayerLoginEvent.Result.KICK_FULL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
boolean isAuthAvailable = plugin.getDataSource().isAuthAvailable(name);
|
boolean isAuthAvailable = plugin.getDataSource().isAuthAvailable(name);
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
package fr.xephi.authme.listener;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
|
||||||
import fr.xephi.authme.settings.Settings;
|
|
||||||
|
|
||||||
public class AuthMeServerStop extends Thread {
|
|
||||||
|
|
||||||
private AuthMe plugin;
|
|
||||||
|
|
||||||
public AuthMeServerStop(AuthMe plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void run() {
|
|
||||||
// TODO: add a MessageKey
|
|
||||||
if (Settings.kickPlayersBeforeStopping) {
|
|
||||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
for (Player p : plugin.getServer().getOnlinePlayers()) {
|
|
||||||
p.kickPlayer("Server is restarting");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -97,6 +97,8 @@ public enum MessageKey {
|
|||||||
|
|
||||||
USAGE_ADD_EMAIL("usage_email_add"),
|
USAGE_ADD_EMAIL("usage_email_add"),
|
||||||
|
|
||||||
|
USAGE_CHANGE_EMAIL("usage_email_change"),
|
||||||
|
|
||||||
USAGE_RECOVER_EMAIL("usage_email_recovery"),
|
USAGE_RECOVER_EMAIL("usage_email_recovery"),
|
||||||
|
|
||||||
INVALID_NEW_EMAIL("new_email_invalid"),
|
INVALID_NEW_EMAIL("new_email_invalid"),
|
||||||
|
@ -298,8 +298,8 @@ public class PermissionsManager implements PermissionsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
return hasPermission(player, permissionNode.getNode(), def)
|
return hasPermission(player, permissionNode.getNode(), def);
|
||||||
|| hasPermission(player, permissionNode.getWildcardNode().getNode(), def);
|
// || hasPermission(player, permissionNode.getWildcardNode().getNode(), def);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPermission(Player player, Iterable<PermissionNode> nodes, boolean def) {
|
public boolean hasPermission(Player player, Iterable<PermissionNode> nodes, boolean def) {
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package fr.xephi.authme.process.email;
|
package fr.xephi.authme.process.email;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.ConsoleLogger;
|
|
||||||
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;
|
||||||
import fr.xephi.authme.permission.PlayerPermission;
|
|
||||||
import fr.xephi.authme.output.MessageKey;
|
import fr.xephi.authme.output.MessageKey;
|
||||||
import fr.xephi.authme.output.Messages;
|
import fr.xephi.authme.output.Messages;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
|
import fr.xephi.authme.util.StringUtils;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -35,66 +34,57 @@ public class AsyncChangeEmail {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void process() {
|
public void process() {
|
||||||
try {
|
String playerName = player.getName().toLowerCase();
|
||||||
String playerName = player.getName().toLowerCase();
|
if (PlayerCache.getInstance().isAuthenticated(playerName)) {
|
||||||
|
if (!newEmail.equals(newEmailVerify)) {
|
||||||
if (Settings.getmaxRegPerEmail > 0) {
|
m.send(player, MessageKey.CONFIRM_EMAIL_MESSAGE);
|
||||||
if (!plugin.getPermissionsManager().hasPermission(player, PlayerPermission.ALLOW_MULTIPLE_ACCOUNTS)
|
return;
|
||||||
&& plugin.getDataSource().getAllAuthsByEmail(newEmail).size() >= Settings.getmaxRegPerEmail) {
|
|
||||||
m.send(player, MessageKey.MAX_REGISTER_EXCEEDED);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
PlayerAuth auth = PlayerCache.getInstance().getAuth(playerName);
|
||||||
if (PlayerCache.getInstance().isAuthenticated(playerName)) {
|
String currentEmail = auth.getEmail();
|
||||||
if (!newEmail.equals(newEmailVerify)) {
|
if (oldEmail != null) {
|
||||||
m.send(player, MessageKey.CONFIRM_EMAIL_MESSAGE);
|
if (StringUtils.isEmpty(currentEmail) || currentEmail.equals("your@email.com")) {
|
||||||
|
m.send(player, MessageKey.USAGE_ADD_EMAIL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(playerName);
|
if (!oldEmail.equals(currentEmail)) {
|
||||||
if (oldEmail != null) {
|
m.send(player, MessageKey.INVALID_OLD_EMAIL);
|
||||||
if (auth.getEmail() == null || auth.getEmail().equals("your@email.com") || auth.getEmail().isEmpty()) {
|
|
||||||
m.send(player, MessageKey.USAGE_ADD_EMAIL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!oldEmail.equals(auth.getEmail())) {
|
|
||||||
m.send(player, MessageKey.INVALID_OLD_EMAIL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!Settings.isEmailCorrect(newEmail)) {
|
|
||||||
m.send(player, MessageKey.INVALID_NEW_EMAIL);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String old = auth.getEmail();
|
|
||||||
auth.setEmail(newEmail);
|
|
||||||
if (!plugin.getDataSource().updateEmail(auth)) {
|
|
||||||
m.send(player, MessageKey.ERROR);
|
|
||||||
auth.setEmail(old);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
PlayerCache.getInstance().updatePlayer(auth);
|
|
||||||
if (oldEmail == null) {
|
|
||||||
m.send(player, MessageKey.EMAIL_ADDED_SUCCESS);
|
|
||||||
player.sendMessage(auth.getEmail());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m.send(player, MessageKey.EMAIL_CHANGED_SUCCESS);
|
|
||||||
} else {
|
} else {
|
||||||
if (plugin.getDataSource().isAuthAvailable(playerName)) {
|
if (!StringUtils.isEmpty(currentEmail) && !currentEmail.equals("your@email.com")) {
|
||||||
m.send(player, MessageKey.LOGIN_MESSAGE);
|
m.send(player, MessageKey.USAGE_CHANGE_EMAIL);
|
||||||
} else {
|
return;
|
||||||
if (Settings.emailRegistration) {
|
}
|
||||||
m.send(player, MessageKey.REGISTER_EMAIL_MESSAGE);
|
}
|
||||||
} else {
|
if (!Settings.isEmailCorrect(newEmail)) {
|
||||||
m.send(player, MessageKey.REGISTER_MESSAGE);
|
m.send(player, MessageKey.INVALID_NEW_EMAIL);
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
|
auth.setEmail(newEmail);
|
||||||
|
if (!plugin.getDataSource().updateEmail(auth)) {
|
||||||
|
m.send(player, MessageKey.ERROR);
|
||||||
|
auth.setEmail(currentEmail);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PlayerCache.getInstance().updatePlayer(auth);
|
||||||
|
if (oldEmail == null) {
|
||||||
|
m.send(player, MessageKey.EMAIL_ADDED_SUCCESS);
|
||||||
|
player.sendMessage(auth.getEmail());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m.send(player, MessageKey.EMAIL_CHANGED_SUCCESS);
|
||||||
|
} else {
|
||||||
|
if (plugin.getDataSource().isAuthAvailable(playerName)) {
|
||||||
|
m.send(player, MessageKey.LOGIN_MESSAGE);
|
||||||
|
} else {
|
||||||
|
if (Settings.emailRegistration) {
|
||||||
|
m.send(player, MessageKey.REGISTER_EMAIL_MESSAGE);
|
||||||
|
} else {
|
||||||
|
m.send(player, MessageKey.REGISTER_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
ConsoleLogger.showError(e.getMessage());
|
|
||||||
ConsoleLogger.writeStackTrace(e);
|
|
||||||
m.send(player, MessageKey.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,8 +235,7 @@ public final class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Player getPlayer(String name) {
|
public static Player getPlayer(String name) {
|
||||||
name = name.toLowerCase();
|
return wrapper.getServer().getPlayerExact(name);
|
||||||
return wrapper.getServer().getPlayer(name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isNPC(Player player) {
|
public static boolean isNPC(Player player) {
|
||||||
|
@ -45,120 +45,144 @@ commands:
|
|||||||
usage: /converter <datatype>
|
usage: /converter <datatype>
|
||||||
permissions:
|
permissions:
|
||||||
authme.admin.*:
|
authme.admin.*:
|
||||||
description: Gives access to all authme admin commands
|
description: Give access to all admin commands.
|
||||||
children:
|
children:
|
||||||
authme.admin.reload: true
|
authme.admin.accounts: true
|
||||||
authme.admin.register: true
|
authme.admin.changemail: true
|
||||||
authme.admin.changepassword: true
|
authme.admin.changepassword: true
|
||||||
authme.admin.unregister: true
|
authme.admin.converter: true
|
||||||
authme.admin.purge: true
|
authme.admin.firstspawn: true
|
||||||
authme.seeOtherAccounts: true # This isn't a child of the admin section! Probably doesn't work.
|
authme.admin.forcelogin: true
|
||||||
authme.admin.lastlogin: true
|
authme.admin.getemail: true
|
||||||
authme.admin.getemail: true
|
authme.admin.getip: true
|
||||||
authme.admin.chgemail: true
|
authme.admin.lastlogin: true
|
||||||
authme.admin.purgelastpos: true
|
authme.admin.purge: true
|
||||||
authme.admin.switchantibot: true
|
authme.admin.purgebannedplayers: true
|
||||||
authme.bypassantibot: true # This isn't a child of the admin section! Probably doesn't work.
|
authme.admin.purgelastpos: true
|
||||||
authme.admin.getip: true
|
authme.admin.register: true
|
||||||
authme.admin.converter: true
|
authme.admin.reload: true
|
||||||
authme.admin.resetposition: true
|
authme.admin.setfirstspawn: true
|
||||||
authme.admin.forcelogin: true
|
authme.admin.setspawn: true
|
||||||
authme.register:
|
authme.admin.spawn: true
|
||||||
description: Register an account
|
authme.admin.switchantibot: true
|
||||||
default: true
|
authme.admin.unregister: true
|
||||||
authme.login:
|
|
||||||
description: Login into a account
|
|
||||||
default: true
|
|
||||||
authme.changepassword:
|
|
||||||
description: Change password of a account
|
|
||||||
default: true
|
|
||||||
authme.logout:
|
|
||||||
description: Logout
|
|
||||||
default: true
|
|
||||||
authme.email:
|
|
||||||
description: Email
|
|
||||||
default: true
|
|
||||||
authme.allow2accounts:
|
|
||||||
description: allow more accounts for same ip
|
|
||||||
default: false
|
|
||||||
authme.seeOtherAccounts:
|
|
||||||
description: display other accounts about a player when he logs in
|
|
||||||
default: false
|
|
||||||
authme.unregister:
|
|
||||||
description: unregister your account
|
|
||||||
default: true
|
|
||||||
authme.admin.reload:
|
|
||||||
description: AuthMe reload commands
|
|
||||||
default: op
|
|
||||||
authme.admin.register:
|
authme.admin.register:
|
||||||
description: AuthMe register command
|
description: Administrator command to register a new user.
|
||||||
default: op
|
|
||||||
authme.admin.changepassword:
|
|
||||||
description: AuthMe changepassword command
|
|
||||||
default: op
|
default: op
|
||||||
authme.admin.unregister:
|
authme.admin.unregister:
|
||||||
description: AuthMe unregister command
|
description: Administrator command to unregister an existing user.
|
||||||
default: op
|
|
||||||
authme.admin.purge:
|
|
||||||
description: AuthMe unregister command
|
|
||||||
default: op
|
|
||||||
authme.admin.lastlogin:
|
|
||||||
description: Get last login date about a player
|
|
||||||
default: op
|
|
||||||
authme.admin.getemail:
|
|
||||||
description: Get last email about a player
|
|
||||||
default: op
|
|
||||||
authme.admin.chgemail:
|
|
||||||
description: Change a player email
|
|
||||||
default: op
|
|
||||||
authme.admin.accounts:
|
|
||||||
description: Display Players Accounts
|
|
||||||
default: op
|
|
||||||
authme.captcha:
|
|
||||||
description: Captcha
|
|
||||||
default: true
|
|
||||||
authme.admin.setspawn:
|
|
||||||
description: Set the AuthMe spawn point
|
|
||||||
default: op
|
|
||||||
authme.admin.spawn:
|
|
||||||
description: Teleport to AuthMe spawn point
|
|
||||||
default: op
|
|
||||||
authme.vip:
|
|
||||||
description: Allow vip slot when the server is full
|
|
||||||
default: op
|
|
||||||
authme.admin.purgebannedplayers:
|
|
||||||
description: Purge banned players
|
|
||||||
default: op
|
|
||||||
authme.bypassforcesurvival:
|
|
||||||
description: Bypass all ForceSurvival features
|
|
||||||
default: false
|
|
||||||
authme.admin.purgelastpos:
|
|
||||||
description: Purge last pos of players
|
|
||||||
default: op
|
|
||||||
authme.admin.switchantibot:
|
|
||||||
description: Switch AntiBot mode on/off
|
|
||||||
default: op
|
|
||||||
authme.bypassantibot:
|
|
||||||
description: Bypass the AntiBot check
|
|
||||||
default: op
|
|
||||||
authme.admin.setfirstspawn:
|
|
||||||
description: Set the AuthMe First Spawn Point
|
|
||||||
default: op
|
|
||||||
authme.admin.firstspawn:
|
|
||||||
description: Teleport to AuthMe First Spawn Point
|
|
||||||
default: op
|
|
||||||
authme.admin.getip:
|
|
||||||
description: Get IP from a player ( fake and real )
|
|
||||||
default: op
|
|
||||||
authme.admin.converter:
|
|
||||||
description: Allow /converter command
|
|
||||||
default: op
|
|
||||||
authme.admin.resetposition:
|
|
||||||
description: Reset last position for a player
|
|
||||||
default: op
|
default: op
|
||||||
authme.admin.forcelogin:
|
authme.admin.forcelogin:
|
||||||
description: Force login for that player
|
description: Administrator command to force-login an existing user.
|
||||||
default: op
|
default: op
|
||||||
authme.canbeforced:
|
authme.admin.changepassword:
|
||||||
description: Can this player be forced to login
|
description: Administrator command to change the password of a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.lastlogin:
|
||||||
|
description: Administrator command to see the last login date and time of a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.accounts:
|
||||||
|
description: Administrator command to see all accounts associated with a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.getemail:
|
||||||
|
description: Administrator command to get the email address of a user, if set.
|
||||||
|
default: op
|
||||||
|
authme.admin.changemail:
|
||||||
|
description: Administrator command to set or change the email address of a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.getip:
|
||||||
|
description: Administrator command to get the last known IP of a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.spawn:
|
||||||
|
description: Administrator command to teleport to the AuthMe spawn.
|
||||||
|
default: op
|
||||||
|
authme.admin.setspawn:
|
||||||
|
description: Administrator command to set the AuthMe spawn.
|
||||||
|
default: op
|
||||||
|
authme.admin.firstspawn:
|
||||||
|
description: Administrator command to teleport to the first AuthMe spawn.
|
||||||
|
default: op
|
||||||
|
authme.admin.setfirstspawn:
|
||||||
|
description: Administrator command to set the first AuthMe spawn.
|
||||||
|
default: op
|
||||||
|
authme.admin.purge:
|
||||||
|
description: Administrator command to purge old user data.
|
||||||
|
default: op
|
||||||
|
authme.admin.purgelastpos:
|
||||||
|
description: Administrator command to purge the last position of a user.
|
||||||
|
default: op
|
||||||
|
authme.admin.purgebannedplayers:
|
||||||
|
description: Administrator command to purge all data associated with banned players.
|
||||||
|
default: op
|
||||||
|
authme.admin.switchantibot:
|
||||||
|
description: Administrator command to toggle the AntiBot protection status.
|
||||||
|
default: op
|
||||||
|
authme.admin.converter:
|
||||||
|
description: Administrator command to convert old or other data to AuthMe data.
|
||||||
|
default: op
|
||||||
|
authme.admin.reload:
|
||||||
|
description: Administrator command to reload the plugin configuration.
|
||||||
|
default: op
|
||||||
|
authme.player.*:
|
||||||
|
description: Permission to use all player (non-admin) commands.
|
||||||
|
children:
|
||||||
|
authme.player.allow2accounts: true
|
||||||
|
authme.player.bypassantibot: true
|
||||||
|
authme.player.bypassforcesurvival: true
|
||||||
|
authme.player.canbeforced: true
|
||||||
|
authme.player.captcha: true
|
||||||
|
authme.player.changepassword: true
|
||||||
|
authme.player.email.add: true
|
||||||
|
authme.player.email.change: true
|
||||||
|
authme.player.email.recover: true
|
||||||
|
authme.player.login: true
|
||||||
|
authme.player.logout: true
|
||||||
|
authme.player.register: true
|
||||||
|
authme.player.seeotheraccounts: true
|
||||||
|
authme.player.unregister: true
|
||||||
|
authme.player.vip: true
|
||||||
|
authme.player.bypassantibot:
|
||||||
|
description: Permission node to bypass AntiBot protection.
|
||||||
|
default: false
|
||||||
|
authme.player.vip:
|
||||||
|
description: Permission node to identify VIP users.
|
||||||
|
default: false
|
||||||
|
authme.player.login:
|
||||||
|
description: Command permission to login.
|
||||||
default: true
|
default: true
|
||||||
|
authme.player.logout:
|
||||||
|
description: Command permission to logout.
|
||||||
|
default: true
|
||||||
|
authme.player.register:
|
||||||
|
description: Command permission to register.
|
||||||
|
default: true
|
||||||
|
authme.player.unregister:
|
||||||
|
description: Command permission to unregister.
|
||||||
|
default: true
|
||||||
|
authme.player.changepassword:
|
||||||
|
description: Command permission to change the password.
|
||||||
|
default: true
|
||||||
|
authme.player.email.add:
|
||||||
|
description: Command permission to add an email address.
|
||||||
|
default: false
|
||||||
|
authme.player.email.change:
|
||||||
|
description: Command permission to change the email address.
|
||||||
|
default: false
|
||||||
|
authme.player.email.recover:
|
||||||
|
description: Command permission to recover an account using it's email address.
|
||||||
|
default: false
|
||||||
|
authme.player.captcha:
|
||||||
|
description: Command permission to use captcha.
|
||||||
|
default: false
|
||||||
|
authme.player.canbeforced:
|
||||||
|
description: Permission for users a login can be forced to.
|
||||||
|
default: false
|
||||||
|
authme.player.bypassforcesurvival:
|
||||||
|
description: Permission for users to bypass force-survival mode.
|
||||||
|
default: false
|
||||||
|
authme.player.allow2accounts:
|
||||||
|
description: Permission for users to allow two accounts.
|
||||||
|
default: false
|
||||||
|
authme.player.seeotheraccounts:
|
||||||
|
description: Permission for user to see other accounts.
|
||||||
|
default: false
|
||||||
|
Loading…
Reference in New Issue
Block a user