Update platform listeners to ensure consistent kick functionality

This commit is contained in:
2026-01-27 10:25:03 -05:00
parent 7ffba38992
commit e09217877c
5 changed files with 39 additions and 52 deletions
@@ -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!";
});
});
}
@@ -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())));
});
}
@@ -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) {
@@ -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!";
}));
});
}
@@ -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()