diff --git a/CHANGELOG.md b/CHANGELOG.md index ee843f89..325ef975 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * Remove deprecated API methods from the last version * Finally set a value to the API column * No duplicate session login +* Fix timestamp parsing in newer versions of SQLite ######1.9 diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java index 3b65223c..1f282708 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java @@ -16,7 +16,7 @@ import me.vik1395.BungeeAuth.Tables; import net.md_5.bungee.api.connection.ProxiedPlayer; /** - * Github: https://github.com/MatteCarra/BungeeAuth + * Github: https://github.com/vik1395/BungeeAuth-Minecraft * * Project page: * @@ -24,13 +24,13 @@ import net.md_5.bungee.api.connection.ProxiedPlayer; */ public class BungeeAuthHook implements AuthPlugin { - //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Login.java#L32 + //https://github.com/vik1395/BungeeAuth-Minecraft/blob/master/src/me/vik1395/BungeeAuth/Login.java#L32 private final Tables databaseConnection = new Tables(); @Override public boolean forceLogin(ProxiedPlayer player) { String playerName = player.getName(); -//https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Login.java#L92-95 +//https://github.com/vik1395/BungeeAuth-Minecraft/blob/master/src/me/vik1395/BungeeAuth/Login.java#L92-95 if (Main.plonline.contains(playerName)) { return true; } @@ -58,14 +58,14 @@ public class BungeeAuthHook implements AuthPlugin { @Override public boolean isRegistered(String playerName) throws Exception { - //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Register.java#L46 + //https://github.com/vik1395/BungeeAuth-Minecraft/blob/master/src/me/vik1395/BungeeAuth/Register.java#L46 //renamed t to databaseConnection return databaseConnection.checkPlayerEntry(playerName); } @Override public boolean forceRegister(ProxiedPlayer player, String password) { - //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Register.java#L102 + //https://github.com/vik1395/BungeeAuth-Minecraft/blob/master/src/me/vik1395/BungeeAuth/Register.java#L102 PasswordHandler ph = new PasswordHandler(); Random rand = new Random(); int maxp = 7; //Total Password Hashing methods. @@ -75,7 +75,7 @@ public class BungeeAuthHook implements AuthPlugin { String Pw = password; String pType = "" + rand.nextInt(maxp + 1); String regdate = ft.format(dNow); - //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Register.java#L60 + //https://github.com/vik1395/BungeeAuth-Minecraft/blob/master/src/me/vik1395/BungeeAuth/Register.java#L60 String lastip = player.getAddress().getAddress().getHostAddress(); String lastseen = regdate; String hash = ph.newHash(Pw, pType); @@ -86,7 +86,6 @@ public class BungeeAuthHook implements AuthPlugin { Object[] arguments = new Object[] {player.getName(), hash, pType, "", lastip, regdate, lastip, lastseen}; try { - callProtected("newPlayerEntry", parameterTypes, arguments); //proparly not thread-safe forceLogin(player); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java index 803333ef..80480381 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/AuthStorage.java @@ -10,8 +10,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.util.Calendar; -import java.util.Locale; +import java.util.Properties; import java.util.UUID; import java.util.concurrent.ThreadFactory; import java.util.logging.Level; @@ -23,9 +22,6 @@ public class AuthStorage { private final FastLoginCore core; private final HikariDataSource dataSource; - //a try to fix https://www.spigotmc.org/threads/fastlogin.101192/page-26#post-1874647 - private final Calendar calendar = Calendar.getInstance(Locale.US); - public AuthStorage(FastLoginCore core, String driver, String host, int port, String databasePath , String user, String pass) { this.core = core; @@ -35,6 +31,11 @@ public class AuthStorage { databaseConfig.setPassword(pass); databaseConfig.setDriverClassName(driver); + //a try to fix https://www.spigotmc.org/threads/fastlogin.101192/page-26#post-1874647 + Properties properties = new Properties(); + properties.setProperty("date_string_format", "yyyy-MM-dd HH:mm:ss"); + databaseConfig.setDataSourceProperties(properties); + ThreadFactoryBuilder threadFactoryBuilder = new ThreadFactoryBuilder() .setNameFormat(core.getPlugin().getName() + " Database Pool Thread #%1$d") //Hikari create daemons by default @@ -139,7 +140,7 @@ public class AuthStorage { boolean premium = resultSet.getBoolean(4); String lastIp = resultSet.getString(5); - long lastLogin = resultSet.getTimestamp(6, calendar).getTime(); + long lastLogin = resultSet.getTimestamp(6).getTime(); PlayerProfile playerProfile = new PlayerProfile(userId, uuid, name, premium, lastIp, lastLogin); return playerProfile; } else { @@ -173,7 +174,7 @@ public class AuthStorage { String name = resultSet.getString(3); boolean premium = resultSet.getBoolean(4); String lastIp = resultSet.getString(5); - long lastLogin = resultSet.getTimestamp(6, calendar).getTime(); + long lastLogin = resultSet.getTimestamp(6).getTime(); PlayerProfile playerProfile = new PlayerProfile(userId, uuid, name, premium, lastIp, lastLogin); return playerProfile; } diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java index 056267c8..4471d4f7 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java @@ -88,7 +88,7 @@ public class FastLoginCore

> { BufferedReader reader = null; try { - reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("config.yml"))); + reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("config.yml"))); sharedConfig = new SharedConfig(plugin.loadYamlFile(reader)); reader.close(); @@ -96,7 +96,7 @@ public class FastLoginCore

> { sharedConfig.getConfigValues().putAll(plugin.loadYamlFile(reader)); reader.close(); - reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("messages.yml"))); + reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("messages.yml"))); reader = Files.newBufferedReader(new File(plugin.getDataFolder(), "messages.yml").toPath()); Map messageConfig = plugin.loadYamlFile(reader); reader.close();