From e09217877cac787931dc41dc9097bc3d85601f75 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 27 Jan 2026 10:25:03 -0500 Subject: [PATCH] Update platform listeners to ensure consistent kick functionality --- .../antivpn/bukkit/BukkitListener.java | 37 ++++++------------- .../antivpn/bungee/BungeeListener.java | 14 +++++++ .../brighten/antivpn/utils/StringUtil.java | 4 +- .../antivpn/sponge/SpongeListener.java | 32 ++++------------ .../antivpn/velocity/VelocityListener.java | 4 ++ 5 files changed, 39 insertions(+), 52 deletions(-) diff --git a/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java index fe16eea..d124b1c 100644 --- a/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java @@ -84,36 +84,21 @@ 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(), result.response().getIp()); - event.setResult(PlayerLoginEvent.Result.KICK_BANNED); - switch (result.resultType()) { - case DENIED_COUNTRY -> event.setKickMessage(StringUtil.translateAlternateColorCodes('&', + event.setKickMessage(switch (result.resultType()) { + case DENIED_COUNTRY -> StringUtil.varReplace( + AntiVPN.getInstance().getVpnConfig().getCountryVanillaKickReason(), + player, + result.response() + ); + case DENIED_PROXY -> StringUtil.varReplace( - AntiVPN.getInstance().getVpnConfig().getCountryVanillaKickReason(), + AntiVPN.getInstance().getVpnConfig().getKickMessage(), player, result.response() - ))); - case DENIED_PROXY -> { - if(AntiVPN.getInstance().getVpnConfig().isAlertToSTaff()) { - AntiVPN.getInstance().getPlayerExecutor().getOnlinePlayers().stream() - .filter(APIPlayer::isAlertsEnabled) - .forEach(pl -> - pl.sendMessage(StringUtil.varReplace( - ChatColor.translateAlternateColorCodes( - '&', - AntiVPN.getInstance().getVpnConfig().getAlertMsg()), - player, - result.response()))); - } - event.setKickMessage(StringUtil.translateAlternateColorCodes('&', - StringUtil.varReplace( - AntiVPN.getInstance().getVpnConfig().getKickMessage(), - player, - result.response() - ))); - } - } + ); + default -> "You were kicked by KauriVPN for an unknown reason!"; + }); }); } diff --git a/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java index 407337d..601f2ba 100644 --- a/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java +++ b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java @@ -19,6 +19,8 @@ package dev.brighten.antivpn.bungee; import dev.brighten.antivpn.AntiVPN; import dev.brighten.antivpn.api.*; import dev.brighten.antivpn.utils.MiscUtils; +import dev.brighten.antivpn.utils.StringUtil; +import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.event.LoginEvent; import net.md_5.bungee.api.event.PlayerDisconnectEvent; import net.md_5.bungee.api.event.PreLoginEvent; @@ -88,7 +90,19 @@ public class BungeeListener extends VPNExecutor implements Listener { player.checkPlayer(result -> { if (!result.resultType().isShouldBlock()) return; + + if(!AntiVPN.getInstance().getVpnConfig().isKickPlayers()) { + return; + } + event.setCancelled(true); + event.setReason(TextComponent.fromLegacy(StringUtil.varReplace(switch (result.resultType()) { + case DENIED_PROXY -> StringUtil.varReplace(AntiVPN.getInstance().getVpnConfig() + .getKickMessage(), player, result.response()); + case DENIED_COUNTRY -> StringUtil.varReplace(AntiVPN.getInstance().getVpnConfig() + .getCountryVanillaKickReason(), player, result.response()); + default -> "You were kicked by KauriVPN for an unknown reason!"; + }, player, result.response()))); }); } diff --git a/Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java index 8b3e0b9..32d4532 100644 --- a/Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java +++ b/Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java @@ -54,10 +54,10 @@ public class StringUtil { } public static String varReplace(String input, APIPlayer player, VPNResponse result) { - return input.replace("%player%", player.getName()) + return translateAlternateColorCodes('&', input.replace("%player%", player.getName()) .replace("%reason%", result.getMethod()) .replace("%country%", result.getCountryName()) - .replace("%city%", result.getCity()); + .replace("%city%", result.getCity())); } public static String translateAlternateColorCodes(char altColorChar, String textToTranslate) { diff --git a/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java index 991e0ba..1346e6d 100644 --- a/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java +++ b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java @@ -18,7 +18,7 @@ package dev.brighten.antivpn.sponge; import dev.brighten.antivpn.AntiVPN; import dev.brighten.antivpn.api.*; -import dev.brighten.antivpn.sponge.util.StringUtil; +import dev.brighten.antivpn.utils.StringUtil; import net.kyori.adventure.text.Component; import org.spongepowered.api.Sponge; import org.spongepowered.api.command.exception.CommandException; @@ -48,30 +48,14 @@ public class SpongeListener extends VPNExecutor { return; } - if(result.isFromCache()) { - AntiVPN.getInstance().getExecutor().log(Level.INFO, "%s was kicked from cache with IP %s", player.get().getName(), result.response().getIp()); - } - event.setCancelled(true); - switch (result.resultType()) { - case DENIED_PROXY -> { - AntiVPN.getInstance().getExecutor().log(Level.INFO, player.get().getName() - + " joined on a VPN/Proxy (" + result.response().getMethod() + ")"); - event.setMessage(Component.text(StringUtil - .translateColorCodes('&', AntiVPN.getInstance().getVpnConfig() - .getKickMessage() - .replace("%player%", player.get().getName()) - .replace("%country%", result.response().getCountryName()) - .replace("%code%", result.response().getCountryCode())))); - } - case DENIED_COUNTRY -> - event.setMessage(Component.text(StringUtil - .translateColorCodes('&', AntiVPN.getInstance().getVpnConfig() - .getCountryVanillaKickReason() - .replace("%player%", player.get().getName()) - .replace("%country%", result.response().getCountryName()) - .replace("%code%", result.response().getCountryCode())))); - } + event.setMessage(Component.text(switch (result.resultType()) { + case DENIED_PROXY -> StringUtil.varReplace(AntiVPN.getInstance().getVpnConfig() + .getKickMessage(), player.get(), result.response()); + case DENIED_COUNTRY -> StringUtil.varReplace(AntiVPN.getInstance().getVpnConfig() + .getCountryVanillaKickReason(), player.get(), result.response()); + default -> "You were kicked by KauriVPN for an unknown reason!"; + })); }); } diff --git a/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java index e797796..66e0c50 100644 --- a/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java +++ b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java @@ -52,6 +52,10 @@ public class VelocityListener extends VPNExecutor { player.checkPlayer(result -> { if(!result.resultType().isShouldBlock()) return; + if(!AntiVPN.getInstance().getVpnConfig().isKickPlayers()) { + return; + } + switch (result.resultType()) { case DENIED_COUNTRY -> event.setResult(ResultedEvent.ComponentResult.denied( LegacyComponentSerializer.builder()