diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index f4dd1cb..ed7bcd3 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -29,5 +29,10 @@ jobs:
- name: Upload AntiVPN
uses: actions/upload-artifact@v4
with:
- name: AntiVPN
+ name: AntiVPN-Universal
path: Universal/target/AntiVPN-*.jar
+ - name: Upload Sponge plugin
+ uses: actions/upload-artifact@v4
+ with:
+ name: AntiVPN-Sponge
+ path: Sponge/target/Sponge-*.jar
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 fe37786..9c51ef6 100644
--- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java
+++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java
@@ -62,7 +62,7 @@ public class BukkitListener extends VPNExecutor implements Listener {
.orElse(new OfflinePlayer(
event.getPlayer().getUniqueId(),
event.getPlayer().getName(),
- event.getRealAddress()
+ event.getAddress()
));
CheckResult instantResult = player.checkPlayer(result -> {
@@ -81,6 +81,8 @@ public class BukkitListener extends VPNExecutor implements Listener {
return;
}
+ AntiVPN.getInstance().getExecutor().log(Level.INFO, "%s was kicked from pre-login cache with IP %s", event.getPlayer().getName(), instantResult.response().getIp());
+
event.setResult(PlayerLoginEvent.Result.KICK_BANNED);
switch (instantResult.resultType()) {
case DENIED_COUNTRY -> event.setKickMessage(StringUtil.translateAlternateColorCodes('&',
diff --git a/Common/pom.xml b/Common/pom.xml
index bed828a..dec5693 100644
--- a/Common/pom.xml
+++ b/Common/pom.xml
@@ -59,7 +59,7 @@
com.github.benmanes.caffeine
- dev.brighten.antivpn.com.github.benmanes.caffeine
+ dev.brighten.antivpn.shaded.com.github.benmanes.caffeine
org.h2
diff --git a/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java b/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
index 6382ccb..e89821a 100644
--- a/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
+++ b/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java
@@ -47,7 +47,10 @@ import java.util.List;
@Relocate(from = "com.my\\" + "sql.jdbc", to = "dev.brighten.antivpn.shaded.com.mysql.jdbc")
}
)
-@MavenLibrary(groupId = "com.github.ben-manes.caffeine", artifactId = "caffeine", version = "3.1.8")
+@MavenLibrary(groupId = "com.\\github\\.ben-manes\\.caffeine", artifactId = "caffeine", version = "3.1.8",
+ relocations = {
+ @Relocate(from = "com\\.github\\.benmanes\\.caffeine", to = "dev.brighten.antivpn.shaded.com.github.benmanes.caffeine"),
+ })
public class AntiVPN {
private static AntiVPN INSTANCE;
diff --git a/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java b/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java
index 086755a..1c0f2bc 100644
--- a/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java
+++ b/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java
@@ -90,6 +90,8 @@ public abstract class APIPlayer {
checkResult = new CheckResult(result, ResultType.ALLOWED);
}
+ AntiVPN.getInstance().getExecutor().log(Level.FINE, "Result for " + ip.getHostAddress() + " is " + checkResult.resultType());
+
checkResultCache.put(ip.getHostAddress(), checkResult);
onKick.accept(checkResult);
AntiVPN.getInstance().checked++;
diff --git a/Sponge/pom.xml b/Sponge/pom.xml
index bb8f79a..075ed54 100644
--- a/Sponge/pom.xml
+++ b/Sponge/pom.xml
@@ -109,7 +109,7 @@
com.github.benmanes.caffeine
- dev.brighten.antivpn.com.github.benmanes.caffeine
+ dev.brighten.antivpn.shaded.com.github.benmanes.caffeine
org.h2
diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java
index d059c0b..47b6664 100644
--- a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java
+++ b/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java
@@ -17,7 +17,7 @@ import java.util.logging.Level;
public class SpongeListener extends VPNExecutor {
@Listener(order = Order.EARLY)
- public void onJoin(ServerSideConnectionEvent.Auth event) {
+ public void onJoin(ServerSideConnectionEvent.Login event) {
AtomicReference player = new AtomicReference<>(AntiVPN.getInstance().getPlayerExecutor()
.getPlayer(event.profile().uuid())
.orElse(new OfflinePlayer(
@@ -42,6 +42,8 @@ public class SpongeListener extends VPNExecutor {
return;
}
+ AntiVPN.getInstance().getExecutor().log(Level.INFO, "%s was kicked from cache with IP %s", player.get().getName(), instantResult.response().getIp());
+
event.setCancelled(true);
switch (instantResult.resultType()) {
case DENIED_PROXY -> {
@@ -64,6 +66,12 @@ public class SpongeListener extends VPNExecutor {
}
}
+ @Listener
+ public void onPlayerDisconnect(ServerSideConnectionEvent.Disconnect event) {
+ event.profile().ifPresent(profile ->
+ AntiVPN.getInstance().getPlayerExecutor().unloadPlayer(profile.uuid()));
+ }
+
@Override
public void registerListeners() {
Sponge.eventManager().registerListeners(SpongePlugin.getInstance().getContainer(), this);