diff --git a/Assembly/dependency-reduced-pom.xml b/Assembly/dependency-reduced-pom.xml
index 74bd73e..3ab4d03 100644
--- a/Assembly/dependency-reduced-pom.xml
+++ b/Assembly/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
Assembly
@@ -18,6 +18,18 @@
shade
+
+
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
+
+
diff --git a/Assembly/pom.xml b/Assembly/pom.xml
index 3aa8cf0..06393c9 100644
--- a/Assembly/pom.xml
+++ b/Assembly/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
@@ -28,6 +28,18 @@
shade
+
+
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
+
+
diff --git a/Bukkit/dependency-reduced-pom.xml b/Bukkit/dependency-reduced-pom.xml
index 6eba22e..15afef9 100644
--- a/Bukkit/dependency-reduced-pom.xml
+++ b/Bukkit/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
Bukkit
@@ -26,23 +26,32 @@
maven-shade-plugin
- 3.1.0
+ 3.2.4
package
shade
+
+ true
+
+
+ org.bstats
+ dev.brighten.antivpn.bukkit.org.bstats
+
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
+
+
-
-
-
- org.bstats
- dev.brighten.antivpn.bukkit.org.bstats
-
-
-
@@ -56,14 +65,8 @@
dev.brighten.antivpn
Common
- 1.8.3.1
+ 1.8.4
provided
-
-
- snakeyaml
- org.yaml
-
-
cc.funkemunky.utils
@@ -77,4 +80,3 @@
8
-
diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml
index dd2e7e8..ddfe573 100644
--- a/Bukkit/pom.xml
+++ b/Bukkit/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
@@ -26,22 +26,31 @@
org.apache.maven.plugins
maven-shade-plugin
- 3.1.0
-
-
-
- org.bstats
-
- dev.brighten.antivpn.bukkit.org.bstats
-
-
-
+ 3.2.4
package
shade
+
+ true
+
+
+ org.bstats
+
+ dev.brighten.antivpn.bukkit.org.bstats
+
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
+
+
@@ -69,7 +78,7 @@
dev.brighten.antivpn
Common
- 1.8.3.1
+ 1.8.4
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 2c4f997..ace877e 100644
--- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java
+++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java
@@ -1,9 +1,12 @@
package dev.brighten.antivpn.bukkit;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
import dev.brighten.antivpn.AntiVPN;
import dev.brighten.antivpn.api.APIPlayer;
import dev.brighten.antivpn.api.VPNExecutor;
import dev.brighten.antivpn.message.VpnString;
+import dev.brighten.antivpn.web.objects.VPNResponse;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -16,11 +19,18 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
public class BukkitListener extends VPNExecutor implements Listener {
private BukkitTask cacheResetTask;
+ private final Cache responseCache = CacheBuilder.newBuilder()
+ .expireAfterWrite(5, TimeUnit.MINUTES)
+ .maximumSize(10000)
+ .build();
+
@Override
public void registerListeners() {
BukkitPlugin.pluginInstance.getServer().getPluginManager()
@@ -75,6 +85,18 @@ public class BukkitListener extends VPNExecutor implements Listener {
|| AntiVPN.getInstance().getVpnConfig().getPrefixWhitelists().stream()
.anyMatch(prefix -> event.getPlayer().getName().startsWith(prefix))) return;
+
+ if(responseCache.asMap().containsKey(event.getPlayer().getUniqueId())) {
+ VPNResponse cached = responseCache.getIfPresent(event.getPlayer().getUniqueId());
+
+ if (cached != null && cached.isProxy()) {
+ event.setResult(PlayerLoginEvent.Result.KICK_BANNED);
+ event.setKickMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&',
+ AntiVPN.getInstance().getVpnConfig().getKickString()));
+ return;
+ }
+ }
+
final Player player = event.getPlayer();
checkIp(event.getAddress().getHostAddress(),
AntiVPN.getInstance().getVpnConfig().cachedResults(), result -> {
diff --git a/Bungee/dependency-reduced-pom.xml b/Bungee/dependency-reduced-pom.xml
index b0ee7b9..3c8512d 100644
--- a/Bungee/dependency-reduced-pom.xml
+++ b/Bungee/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
Bungee
@@ -41,6 +41,14 @@
org.bstats
dev.brighten.antivpn.bungee.org.bstats
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
@@ -50,13 +58,17 @@
dev.brighten.antivpn
Common
- 1.8.3.1
+ 1.8.4
provided
snakeyaml
org.yaml
+
+ guava
+ com.google.guava
+
diff --git a/Bungee/pom.xml b/Bungee/pom.xml
index 9534a17..2edad4b 100644
--- a/Bungee/pom.xml
+++ b/Bungee/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
@@ -34,6 +34,14 @@
dev.brighten.antivpn.bungee.org.bstats
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
@@ -63,7 +71,7 @@
dev.brighten.antivpn
Common
- 1.8.3.1
+ 1.8.4
provided
diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java
index 4f05cc9..99520bf 100644
--- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java
+++ b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java
@@ -1,17 +1,22 @@
package dev.brighten.antivpn.bungee;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
import dev.brighten.antivpn.AntiVPN;
import dev.brighten.antivpn.api.APIPlayer;
import dev.brighten.antivpn.api.VPNExecutor;
+import dev.brighten.antivpn.web.objects.VPNResponse;
import net.md_5.bungee.BungeeCord;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.event.PostLoginEvent;
+import net.md_5.bungee.api.event.PreLoginEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.scheduler.ScheduledTask;
import net.md_5.bungee.event.EventHandler;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@@ -19,6 +24,11 @@ public class BungeeListener extends VPNExecutor implements Listener {
private ScheduledTask cacheResetTask;
+ private final Cache responseCache = CacheBuilder.newBuilder()
+ .expireAfterWrite(5, TimeUnit.MINUTES)
+ .maximumSize(10000)
+ .build();
+
@Override
public void registerListeners() {
BungeePlugin.pluginInstance.getProxy().getPluginManager()
@@ -46,6 +56,21 @@ public class BungeeListener extends VPNExecutor implements Listener {
BungeeCord.getInstance().getLogger().log(Level.INFO, String.format(log, objects));
}
+ @EventHandler
+ public void onListener(final PreLoginEvent event) {
+ if(!responseCache.asMap().containsKey(event.getConnection().getUniqueId())) return;
+
+ VPNResponse cached = responseCache.getIfPresent(event.getConnection().getUniqueId());
+
+ if(cached != null && cached.isProxy()) {
+ event.setCancelled(true);
+ event.setCancelReason(TextComponent.fromLegacyText(ChatColor
+ .translateAlternateColorCodes('&',
+ AntiVPN.getInstance().getVpnConfig().getKickString())));
+ System.out.println("Cancelled because of cache");
+ }
+ }
+
@EventHandler
public void onListener(final PostLoginEvent event) {
if(event.getPlayer().hasPermission("antivpn.bypass") //Has bypass permission
@@ -70,6 +95,8 @@ public class BungeeListener extends VPNExecutor implements Listener {
return;
}
+ responseCache.put(event.getPlayer().getUniqueId(), result);
+
if(AntiVPN.getInstance().getVpnConfig().countryList().size() > 0
// This bit of code will decide whether or not to kick the player
// If it contains the code and it is set to whitelist, it will not kick as they are equal
diff --git a/Common/pom.xml b/Common/pom.xml
index c147c0f..64ef932 100644
--- a/Common/pom.xml
+++ b/Common/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
@@ -45,6 +45,10 @@
org.yaml.snakeyaml
dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
@@ -86,6 +90,11 @@
1.30
compile
+
+ com.google.guava
+ guava
+ 31.1-jre
+
org.mongodb
mongo-java-driver
diff --git a/Sponge/pom.xml b/Sponge/pom.xml
index d331c9a..36e6545 100644
--- a/Sponge/pom.xml
+++ b/Sponge/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
diff --git a/Velocity/pom.xml b/Velocity/pom.xml
index 64ea3c0..1c73c52 100644
--- a/Velocity/pom.xml
+++ b/Velocity/pom.xml
@@ -5,7 +5,7 @@
AntiVPN
dev.brighten.antivpn
- 1.8.3.1
+ 1.8.4
4.0.0
@@ -33,7 +33,7 @@
dev.brighten.antivpn
Common
- 1.8.3.1
+ 1.8.4
provided
@@ -67,6 +67,14 @@
dev.brighten.antivpn.velocity.org.bstats
+
+ org.yaml.snakeyaml
+ dev.brighten.antivpn.shaded.org.yaml.snakeyaml
+
+
+ com.google
+ dev.brighten.antivpn.shaded.com.google
+
diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java b/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java
index eb76e25..632f75e 100644
--- a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java
+++ b/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java
@@ -1,5 +1,8 @@
package dev.brighten.antivpn.velocity;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import com.velocitypowered.api.event.ResultedEvent;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.LoginEvent;
import com.velocitypowered.api.scheduler.ScheduledTask;
@@ -7,14 +10,21 @@ import dev.brighten.antivpn.AntiVPN;
import dev.brighten.antivpn.api.APIPlayer;
import dev.brighten.antivpn.api.VPNExecutor;
import dev.brighten.antivpn.velocity.util.StringUtils;
+import dev.brighten.antivpn.web.objects.VPNResponse;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
public class VelocityListener extends VPNExecutor {
private ScheduledTask cacheResetTask;
+ private final Cache responseCache = CacheBuilder.newBuilder()
+ .expireAfterWrite(5, TimeUnit.MINUTES)
+ .maximumSize(10000)
+ .build();
+
@Override
public void registerListeners() {
@@ -36,6 +46,18 @@ public class VelocityListener extends VPNExecutor {
|| AntiVPN.getInstance().getVpnConfig().getPrefixWhitelists().stream()
.anyMatch(prefix -> event.getPlayer().getUsername().startsWith(prefix))) return;
+ if(responseCache.asMap().containsKey(event.getPlayer().getUniqueId())) {
+ VPNResponse cached = responseCache.getIfPresent(event.getPlayer().getUniqueId());
+
+ if (cached != null && cached.isProxy()) {
+ event.setResult(ResultedEvent.ComponentResult.denied(LegacyComponentSerializer.builder()
+ .character('&')
+ .build().deserialize(AntiVPN.getInstance().getVpnConfig()
+ .getKickString())));
+ return;
+ }
+ }
+
checkIp(event.getPlayer().getRemoteAddress().getAddress().getHostAddress(),
AntiVPN.getInstance().getVpnConfig().cachedResults(), result -> {
if (result.isSuccess()) {
diff --git a/pom.xml b/pom.xml
index f72b7a3..e1343a6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
dev.brighten.antivpn
AntiVPN
pom
- 1.8.3.1
+ 1.8.4
Common