diff --git a/Assembly/dependency-reduced-pom.xml b/Assembly/dependency-reduced-pom.xml index 2e4a037..f90579e 100644 --- a/Assembly/dependency-reduced-pom.xml +++ b/Assembly/dependency-reduced-pom.xml @@ -3,7 +3,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 Assembly diff --git a/Assembly/pom.xml b/Assembly/pom.xml index 6d7684b..5bea941 100644 --- a/Assembly/pom.xml +++ b/Assembly/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 diff --git a/Bukkit/dependency-reduced-pom.xml b/Bukkit/dependency-reduced-pom.xml index 469a270..fb8d50e 100644 --- a/Bukkit/dependency-reduced-pom.xml +++ b/Bukkit/dependency-reduced-pom.xml @@ -3,7 +3,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 Bukkit @@ -56,7 +56,7 @@ dev.brighten.antivpn Common - 1.8.2 + 1.8.2.1 provided diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml index 1a5a348..81bc455 100644 --- a/Bukkit/pom.xml +++ b/Bukkit/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 @@ -69,7 +69,7 @@ dev.brighten.antivpn Common - 1.8.2 + 1.8.2.1 provided diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java index 914201a..ae9adc1 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java +++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java @@ -68,7 +68,6 @@ public class BukkitListener extends VPNExecutor implements Listener { @EventHandler public void onListener(final PlayerLoginEvent event) { //If they're exempt, don't check. - System.out.println(event.getAddress().getHostAddress() + ";" + event.getPlayer().getUniqueId() + ";" + event.getPlayer().getName()); if(event.getPlayer().hasPermission("antivpn.bypass") //Has bypass permission || AntiVPN.getInstance().getExecutor().isWhitelisted(event.getPlayer().getUniqueId()) //Is exempt //Or has a name that starts with a certain prefix. This is for Bedrock exempting. diff --git a/Bungee/dependency-reduced-pom.xml b/Bungee/dependency-reduced-pom.xml index d0084f0..4bca8ed 100644 --- a/Bungee/dependency-reduced-pom.xml +++ b/Bungee/dependency-reduced-pom.xml @@ -3,7 +3,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 Bungee @@ -50,7 +50,7 @@ dev.brighten.antivpn Common - 1.8.2 + 1.8.2.1 provided diff --git a/Bungee/pom.xml b/Bungee/pom.xml index 21fb7ed..6fc38f8 100644 --- a/Bungee/pom.xml +++ b/Bungee/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 @@ -63,7 +63,7 @@ dev.brighten.antivpn Common - 1.8.2 + 1.8.2.1 provided diff --git a/Common/pom.xml b/Common/pom.xml index 9548534..8214366 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java b/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java index fbf0b01..398453c 100644 --- a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java +++ b/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java @@ -1,11 +1,15 @@ package dev.brighten.antivpn.database.sql.utils; import dev.brighten.antivpn.AntiVPN; +import org.h2.jdbc.JdbcSQLNonTransientConnectionException; import java.io.File; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.Properties; public class MySQL { private static Connection conn; @@ -36,13 +40,16 @@ public class MySQL { } } + private static boolean attemptedTwice = false; public static void initH2() { - File dataFolder = new File(AntiVPN.getInstance().getPluginFolder(), "databases" + File.separator + "database"); + File dataFolder = new File(AntiVPN.getInstance().getPluginFolder(), "databases"); + File databaseFile = new File(dataFolder, "database"); try { - Class.forName("org.h2.Driver"); - conn = new NonClosableConnection(DriverManager.getConnection ("jdbc:h2:file:" + - dataFolder.getAbsolutePath(), - AntiVPN.getInstance().getVpnConfig().getUsername(),AntiVPN.getInstance().getVpnConfig().getPassword())); + Constructor jdbcConnection = Class.forName("org.h2.jdbc.JdbcConnection") + .getConstructor(String.class, Properties.class, String.class, Object.class, boolean.class); + conn = new NonClosableConnection((Connection)jdbcConnection.newInstance("jdbc:h2:file:" + + databaseFile.getAbsolutePath(), + new Properties(), "root", "erc5gmv-xvg5CZQ0nzw", false)); conn.setAutoCommit(true); Query.use(conn); AntiVPN.getInstance().getExecutor().log("Connection to H2 has been established."); @@ -51,7 +58,29 @@ public class MySQL { ex.printStackTrace(); } catch (ClassNotFoundException ex) { AntiVPN.getInstance().getExecutor().log("No H2 library found!"); + } catch (NoSuchMethodException | InstantiationException | IllegalAccessException e) { + AntiVPN.getInstance().getExecutor().log("Java exception on initialize"); + e.printStackTrace(); + } catch(InvocationTargetException e) { + if(attemptedTwice) return; + if(e.getCause() instanceof JdbcSQLNonTransientConnectionException) { + File[] files = dataFolder.listFiles(); + + if(files == null) { + e.printStackTrace(); + return; + } + + AntiVPN.getInstance().getExecutor().log("Upgrading h2 files..."); + for (File file : files) { + if(file.getName().endsWith(".db")) { + file.delete(); + } + } + initH2(); + } else e.printStackTrace(); } + attemptedTwice = true; } public static void use() { @@ -70,6 +99,7 @@ public class MySQL { } else conn.close(); conn = null; } + attemptedTwice = false; } catch (Exception e) { e.printStackTrace(); } diff --git a/Velocity/pom.xml b/Velocity/pom.xml index 8ee15a2..ce7b605 100644 --- a/Velocity/pom.xml +++ b/Velocity/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.8.2 + 1.8.2.1 4.0.0 @@ -33,7 +33,7 @@ dev.brighten.antivpn Common - 1.8.2 + 1.8.2.1 provided diff --git a/pom.xml b/pom.xml index cf6b427..d4505f8 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ dev.brighten.antivpn AntiVPN pom - 1.8.2 + 1.8.2.1 Common