Implementing prefix exemptions

This commit is contained in:
Dawson Hessler
2021-06-18 11:26:57 -04:00
parent 15a5d3ba4f
commit 1c636c3b6f
5 changed files with 37 additions and 2 deletions
@@ -3,6 +3,9 @@ package dev.brighten.antivpn.bukkit;
import dev.brighten.antivpn.api.VPNConfig;
import dev.brighten.antivpn.bukkit.util.ConfigDefault;
import java.util.ArrayList;
import java.util.List;
public class BukkitConfig implements VPNConfig {
private final ConfigDefault<String> licenseDefault = new ConfigDefault<>("",
"license", BukkitPlugin.pluginInstance), kickStringDefault =
@@ -10,8 +13,11 @@ public class BukkitConfig implements VPNConfig {
"kickMessage", BukkitPlugin.pluginInstance);
private final ConfigDefault<Boolean> cacheResultsDefault = new ConfigDefault<>(true,
"cachedResults", BukkitPlugin.pluginInstance);
private final ConfigDefault<List<String>> prefixWhitelistsDefault = new ConfigDefault<>(new ArrayList<>(),
"prefixWhitelists", BukkitPlugin.pluginInstance);
private String license, kickMessage;
private List<String> prefixWhitelists;
private boolean cacheResults;
@Override
@@ -29,9 +35,15 @@ public class BukkitConfig implements VPNConfig {
return kickMessage;
}
@Override
public List<String> getPrefixWhitelists() {
return prefixWhitelists;
}
public void update() {
license = licenseDefault.get();
kickMessage = kickStringDefault.get();
cacheResults = cacheResultsDefault.get();
prefixWhitelists = prefixWhitelistsDefault.get();
}
}
@@ -51,7 +51,10 @@ public class BukkitListener extends VPNExecutor implements Listener {
Optional.ofNullable(Bukkit.getPlayer(event.getUniqueId())).ifPresent(player -> {
new BukkitRunnable() {
public void run() {
if(!player.hasPermission("antivpn.bypass"))
if(!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)))
player.kickPlayer(ChatColor.translateAlternateColorCodes('&',
AntiVPN.getInstance().getConfig().getKickString()));
System.out.println(player.getPlayer().getName()