From 68b6335ad5d8ebb497c0028a2d2a115c38ad274e Mon Sep 17 00:00:00 2001 From: Dawson Hessler Date: Sun, 18 Jul 2021 19:58:05 -0400 Subject: [PATCH] Adding kick toggling to the config --- .../dev/brighten/antivpn/bukkit/BukkitConfig.java | 13 ++++++++++--- .../dev/brighten/antivpn/bukkit/BukkitListener.java | 13 ++++++++----- .../dev/brighten/antivpn/bungee/BungeeConfig.java | 13 ++++++++++--- .../dev/brighten/antivpn/bungee/BungeeListener.java | 1 + .../java/dev/brighten/antivpn/api/VPNConfig.java | 2 ++ 5 files changed, 31 insertions(+), 11 deletions(-) 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 045fac2..c80536b 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java +++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitConfig.java @@ -28,8 +28,9 @@ public class BukkitConfig implements VPNConfig { private final ConfigDefault cacheResultsDefault = new ConfigDefault<>(true, "cachedResults", BukkitPlugin.pluginInstance), defaultDatabaseEnabled = new ConfigDefault<>(false, "database.enabled", - BukkitPlugin.pluginInstance), defaultCommandsEnable - = new ConfigDefault<>(false, "commands.enabled", BukkitPlugin.pluginInstance); + BukkitPlugin.pluginInstance), defaultCommandsEnable = new ConfigDefault<>(false, + "commands.enabled", BukkitPlugin.pluginInstance), defaultKickPlayers + = new ConfigDefault<>(true, "kickPlayers", BukkitPlugin.pluginInstance); private final ConfigDefault defaultPort = new ConfigDefault<>(-1, "database.port", BukkitPlugin.pluginInstance); private final ConfigDefault> prefixWhitelistsDefault = new ConfigDefault<>(new ArrayList<>(), @@ -40,7 +41,7 @@ public class BukkitConfig implements VPNConfig { private String license, kickMessage, databaseType, databaseName, username, password, ip; private List prefixWhitelists, commands; private int port; - private boolean cacheResults, databaseEnabled, commandsEnabled; + private boolean cacheResults, databaseEnabled, commandsEnabled, kickPlayers; @Override public String getLicense() { @@ -67,6 +68,11 @@ public class BukkitConfig implements VPNConfig { return commands; } + @Override + public boolean kickPlayersOnDetect() { + return kickPlayers; + } + @Override public List getPrefixWhitelists() { return prefixWhitelists; @@ -133,5 +139,6 @@ public class BukkitConfig implements VPNConfig { port = defaultPort.get(); commandsEnabled = defaultCommandsEnable.get(); commands = defaultCommands.get(); + kickPlayers = defaultKickPlayers.get(); } } 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 2f226a3..c8c6274 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java +++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java @@ -47,16 +47,19 @@ public class BukkitListener extends VPNExecutor implements Listener { if(AntiVPN.getInstance().getExecutor().isWhitelisted(event.getUniqueId())) return; checkIp(event.getAddress().getHostAddress(), AntiVPN.getInstance().getConfig().cachedResults(), result -> { if(result.isSuccess() && result.isProxy()) { - event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); - event.setKickMessage(ChatColor.translateAlternateColorCodes('&', - AntiVPN.getInstance().getConfig().getKickString())); + if(AntiVPN.getInstance().getConfig().kickPlayersOnDetect()) { + event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + event.setKickMessage(ChatColor.translateAlternateColorCodes('&', + AntiVPN.getInstance().getConfig().getKickString())); + } Optional.ofNullable(Bukkit.getPlayer(event.getUniqueId())).ifPresent(player -> { new BukkitRunnable() { public void run() { - if(!player.hasPermission("antivpn.bypass") //Has bypass permission + if(AntiVPN.getInstance().getConfig().kickPlayersOnDetect() + && (!player.hasPermission("antivpn.bypass") //Has bypass permission //Or has a name that starts with a certain prefix. This is for Bedrock exempting. || AntiVPN.getInstance().getConfig().getPrefixWhitelists().stream() - .anyMatch(prefix -> player.getName().startsWith(prefix))) + .anyMatch(prefix -> player.getName().startsWith(prefix)))) player.kickPlayer(ChatColor.translateAlternateColorCodes('&', AntiVPN.getInstance().getConfig().getKickString())); 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 ae1e8eb..da0d4f3 100644 --- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java +++ b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeConfig.java @@ -26,8 +26,9 @@ public class BungeeConfig implements VPNConfig { private final ConfigDefault cacheResultsDefault = new ConfigDefault<>(true, "cachedResults", BungeePlugin.pluginInstance), defaultDatabaseEnabled = new ConfigDefault<>(false, "database.enabled", - BungeePlugin.pluginInstance), defaultCommandsEnable - = new ConfigDefault<>(false, "commands.enabled", BungeePlugin.pluginInstance); + BungeePlugin.pluginInstance), defaultCommandsEnable = new ConfigDefault<>(false, + "commands.enabled", BungeePlugin.pluginInstance), defaultKickPlayers + = new ConfigDefault<>(true, "kickPlayers", BungeePlugin.pluginInstance); private final ConfigDefault defaultPort = new ConfigDefault<>(-1, "database.port", BungeePlugin.pluginInstance); private final ConfigDefault> prefixWhitelistsDefault = new ConfigDefault<>(new ArrayList<>(), @@ -38,7 +39,7 @@ public class BungeeConfig implements VPNConfig { private String license, kickMessage, databaseType, databaseName, username, password, ip; private List prefixWhitelists, commands; private int port; - private boolean cacheResults, databaseEnabled, commandsEnabled; + private boolean cacheResults, databaseEnabled, commandsEnabled, kickPlayers; @Override public String getLicense() { @@ -65,6 +66,11 @@ public class BungeeConfig implements VPNConfig { return commands; } + @Override + public boolean kickPlayersOnDetect() { + return kickPlayers; + } + @Override public List getPrefixWhitelists() { return prefixWhitelists; @@ -131,5 +137,6 @@ public class BungeeConfig implements VPNConfig { port = defaultPort.get(); commandsEnabled = defaultCommandsEnable.get(); commands = defaultCommands.get(); + kickPlayers = defaultKickPlayers.get(); } } 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 959d80e..0d794e5 100644 --- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java +++ b/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java @@ -50,6 +50,7 @@ public class BungeeListener extends VPNExecutor implements Listener { checkIp(event.getPlayer().getAddress().getAddress().getHostAddress(), AntiVPN.getInstance().getConfig().cachedResults(), result -> { if(result.isSuccess() && result.isProxy()) { + if(AntiVPN.getInstance().getConfig().kickPlayersOnDetect()) event.getPlayer().disconnect(TextComponent.fromLegacyText(ChatColor .translateAlternateColorCodes('&', AntiVPN.getInstance().getConfig().getKickString()))); diff --git a/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java b/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java index e8ab2e2..6d26394 100644 --- a/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java +++ b/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java @@ -14,6 +14,8 @@ public interface VPNConfig { List commands(); + boolean kickPlayersOnDetect(); + List getPrefixWhitelists(); boolean isDatabaseEnabled();