diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java
index a7f35be..03e010d 100644
--- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java
+++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java
@@ -14,7 +14,7 @@ public class BukkitConfig implements VPNConfig {
"license", BukkitPlugin.pluginInstance), kickStringDefault =
new ConfigDefault<>("Proxies are not allowed on our server",
"kickMessage", BukkitPlugin.pluginInstance),
- defaultDatabaseType = new ConfigDefault<>("MySQL",
+ defaultDatabaseType = new ConfigDefault<>("H2",
"database.type", BukkitPlugin.pluginInstance),
defaultDatabaseName = new ConfigDefault<>("kaurivpn",
"database.database", BukkitPlugin.pluginInstance),
diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java
index 89f43b5..2d3f0a5 100644
--- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java
+++ b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java
@@ -12,7 +12,7 @@ public class BungeeConfig implements VPNConfig {
"license", BungeePlugin.pluginInstance), kickStringDefault =
new ConfigDefault<>("Proxies are not allowed on our server",
"kickMessage", BungeePlugin.pluginInstance),
- defaultDatabaseType = new ConfigDefault<>("MySQL",
+ defaultDatabaseType = new ConfigDefault<>("H2",
"database.type", BungeePlugin.pluginInstance),
defaultDatabaseName = new ConfigDefault<>("kaurivpn",
"database.database", BungeePlugin.pluginInstance),
diff --git a/Common/pom.xml b/Common/pom.xml
index c1783a1..c543a95 100644
--- a/Common/pom.xml
+++ b/Common/pom.xml
@@ -61,7 +61,7 @@
com.h2database
h2
- 1.4.200
+ 2.1.210
compile
diff --git a/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java b/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
index 53a0768..9a9aef4 100644
--- a/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
+++ b/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
@@ -53,6 +53,7 @@ public class AntiVPN {
switch(INSTANCE.config.getDatabaseType().toLowerCase()) {
case "mysql":
+ case "h2":
case "sql":{
AntiVPN.getInstance().getExecutor().log("Using databaseType MySQL...");
INSTANCE.database = new MySqlVPN();
diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java b/Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java
index efe07c1..304b9e2 100644
--- a/Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java
+++ b/Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java
@@ -65,13 +65,16 @@ public class AllowlistCommand extends Command {
if(MiscUtils.isIpv4(args[1])) {
if(!databaseEnabled) {
switch(args[0].toLowerCase()) {
- case "add": {
+ case "add":
+ case "insert": {
AntiVPN.getInstance().getExecutor().getWhitelistedIps().add(args[1]);
+ AntiVPN.getInstance().getDatabase().setWhitelisted(args[1], true);
return String.format("&aAdded &6%s &ato the exemption allowlist.", args[1]);
}
case "remove":
case "delete": {
AntiVPN.getInstance().getExecutor().getWhitelistedIps().remove(args[1]);
+ AntiVPN.getInstance().getDatabase().setWhitelisted(args[1], false);
return String.format("&cRemoved &6%s &cfrom the exemption allowlist.", args[1]);
}
default: {
@@ -80,7 +83,8 @@ public class AllowlistCommand extends Command {
}
} else {
switch(args[0].toLowerCase()) {
- case "add": {
+ case "add":
+ case "insert": {
AntiVPN.getInstance().getDatabase().setWhitelisted(args[1], true);
return String.format("&aAdded &6%s &a to the exemption allowlist.", args[1]);
}
diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java b/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java
index af93dc8..e33fcfa 100644
--- a/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java
+++ b/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java
@@ -237,7 +237,9 @@ public class MySqlVPN implements VPNDatabase {
if (!AntiVPN.getInstance().getConfig().isDatabaseEnabled())
return;
AntiVPN.getInstance().getExecutor().log("Initializing MySQL...");
- MySQL.init();
+ if(AntiVPN.getInstance().getConfig().getDatabaseType().contains("sql")) {
+ MySQL.init();
+ } else MySQL.initH2();
AntiVPN.getInstance().getExecutor().log("Creating tables...");
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 b3dc612..bab0bc1 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,10 +1,13 @@
package dev.brighten.antivpn.database.sql.utils;
+import org.h2.jdbc.JdbcConnection;
import dev.brighten.antivpn.AntiVPN;
+import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
+import java.util.Properties;
public class MySQL {
private static Connection conn;
@@ -35,12 +38,13 @@ public class MySQL {
}
}
- /*public static void initH2() {
+ public static void initH2() {
File dataFolder = new File(AntiVPN.getInstance().getPluginFolder(), "databases" + File.separator + "database");
try {
Class.forName("org.h2.Driver");
- conn = new NonClosableConnection(new JdbcConnection("jdbc:h2:file:" +
- dataFolder.getAbsolutePath(), new Properties()));
+ conn = new NonClosableConnection(DriverManager.getConnection ("jdbc:h2:file:" +
+ dataFolder.getAbsolutePath(),
+ AntiVPN.getInstance().getConfig().getUsername(),AntiVPN.getInstance().getConfig().getPassword()));
conn.setAutoCommit(true);
Query.use(conn);
AntiVPN.getInstance().getExecutor().log("Connection to SQlLite has been established.");
@@ -50,7 +54,7 @@ public class MySQL {
} catch (ClassNotFoundException ex) {
AntiVPN.getInstance().getExecutor().log("No H2 library found!");
}
- }*/
+ }
public static void use() {
try {
diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java b/Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java
index 6941b88..7e6bc9a 100644
--- a/Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java
+++ b/Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java
@@ -11,9 +11,12 @@ import java.net.URL;
import java.net.URLClassLoader;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
+import java.util.regex.Pattern;
public class MiscUtils {
+ private static final Pattern ipv4 = Pattern.compile("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}");
+
public static void close(Closeable... closeables) {
try {
for (Closeable closeable : closeables) if (closeable != null) closeable.close();
@@ -32,13 +35,6 @@ public class MiscUtils {
public static boolean isIpv4(String ip)
{
-
- try {
- InetAddress address = InetAddress.getByName(ip);
-
- return address instanceof Inet4Address;
- } catch(Exception e) {
- return false;
- }
+ return ipv4.matcher(ip).matches();
}
}
diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityConfig.java b/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityConfig.java
index 218d306..94fe0ea 100644
--- a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityConfig.java
+++ b/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityConfig.java
@@ -12,7 +12,7 @@ public class VelocityConfig implements VPNConfig {
"license", VelocityPlugin.INSTANCE), kickStringDefault =
new ConfigDefault<>("Proxies are not allowed on our server",
"kickMessage", VelocityPlugin.INSTANCE),
- defaultDatabaseType = new ConfigDefault<>("MySQL",
+ defaultDatabaseType = new ConfigDefault<>("H2",
"database.type", VelocityPlugin.INSTANCE),
defaultDatabaseName = new ConfigDefault<>("kaurivpn",
"database.database", VelocityPlugin.INSTANCE),