package fr.xephi.authme.datasource; import fr.xephi.authme.cache.auth.PlayerAuth; import java.util.List; /** */ public interface DataSource { /** * Method isAuthAvailable. * * @param user String * * @return boolean */ boolean isAuthAvailable(String user); /** * Method getAuth. * * @param user String * * @return PlayerAuth */ PlayerAuth getAuth(String user); /** * Method saveAuth. * * @param auth PlayerAuth * * @return boolean */ boolean saveAuth(PlayerAuth auth); /** * Method updateSession. * * @param auth PlayerAuth * * @return boolean */ boolean updateSession(PlayerAuth auth); /** * Method updatePassword. * * @param auth PlayerAuth * * @return boolean */ boolean updatePassword(PlayerAuth auth); /** * Method purgeDatabase. * * @param until long * * @return int */ int purgeDatabase(long until); /** * Method autoPurgeDatabase. * * @param until long * * @return List */ List autoPurgeDatabase(long until); /** * Method removeAuth. * * @param user String * * @return boolean */ boolean removeAuth(String user); /** * Method updateQuitLoc. * * @param auth PlayerAuth * * @return boolean */ boolean updateQuitLoc(PlayerAuth auth); /** * Method getIps. * * @param ip String * * @return int */ int getIps(String ip); /** * Method getAllAuthsByName. * * @param auth PlayerAuth * * @return List */ List getAllAuthsByName(PlayerAuth auth); /** * Method getAllAuthsByIp. * * @param ip String * * @return List * @throws Exception */ List getAllAuthsByIp(String ip) throws Exception; /** * Method getAllAuthsByEmail. * * @param email String * * @return List * @throws Exception */ List getAllAuthsByEmail(String email) throws Exception; /** * Method updateEmail. * * @param auth PlayerAuth * * @return boolean */ boolean updateEmail(PlayerAuth auth); /** * Method updateSalt. * * @param auth PlayerAuth * * @return boolean */ boolean updateSalt(PlayerAuth auth); void close(); void reload(); /** * Method purgeBanned. * * @param banned List */ void purgeBanned(List banned); /** * Method getType. * * @return DataSourceType */ DataSourceType getType(); /** * Method isLogged. * * @param user String * * @return boolean */ boolean isLogged(String user); /** * Method setLogged. * * @param user String */ void setLogged(String user); /** * Method setUnlogged. * * @param user String */ void setUnlogged(String user); void purgeLogged(); /** * Method getAccountsRegistered. * * @return int */ int getAccountsRegistered(); /** * Method updateName. * * @param oldOne String * @param newOne String */ void updateName(String oldOne, String newOne); /** * Method getAllAuths. * * @return List */ List getAllAuths(); /** * Method getLoggedPlayers. * * @return List */ List getLoggedPlayers(); enum DataSourceType { MYSQL, FILE, SQLITE } }