mirror of
https://github.com/funkemunky/AntiVPN.git
synced 2026-06-05 19:32:19 +00:00
Adding kick toggling to the config
This commit is contained in:
@@ -28,8 +28,9 @@ public class BukkitConfig implements VPNConfig {
|
||||
private final ConfigDefault<Boolean> 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<Integer>
|
||||
defaultPort = new ConfigDefault<>(-1, "database.port", BukkitPlugin.pluginInstance);
|
||||
private final ConfigDefault<List<String>> 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<String> 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<String> getPrefixWhitelists() {
|
||||
return prefixWhitelists;
|
||||
@@ -133,5 +139,6 @@ public class BukkitConfig implements VPNConfig {
|
||||
port = defaultPort.get();
|
||||
commandsEnabled = defaultCommandsEnable.get();
|
||||
commands = defaultCommands.get();
|
||||
kickPlayers = defaultKickPlayers.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user