mirror of
https://github.com/funkemunky/AntiVPN.git
synced 2026-05-31 09:31:54 +00:00
Implementing prefix exemptions
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -3,6 +3,9 @@ package dev.brighten.antivpn.bungee;
|
||||
import dev.brighten.antivpn.api.VPNConfig;
|
||||
import dev.brighten.antivpn.bungee.util.ConfigDefault;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class BungeeConfig implements VPNConfig { ;
|
||||
private final ConfigDefault<String> licenseDefault = new ConfigDefault<>("",
|
||||
"license", BungeePlugin.pluginInstance), kickStringDefault =
|
||||
@@ -10,8 +13,11 @@ public class BungeeConfig implements VPNConfig { ;
|
||||
"kickMessage", BungeePlugin.pluginInstance);
|
||||
private final ConfigDefault<Boolean> cacheResultsDefault = new ConfigDefault<>(true,
|
||||
"cachedResults", BungeePlugin.pluginInstance);
|
||||
private final ConfigDefault<List<String>> prefixWhitelistsDefault = new ConfigDefault<>(new ArrayList<>(),
|
||||
"prefixWhitelists", BungeePlugin.pluginInstance);
|
||||
|
||||
private String license, kickMessage;
|
||||
private List<String> prefixWhitelists;
|
||||
private boolean cacheResults;
|
||||
|
||||
@Override
|
||||
@@ -29,9 +35,15 @@ public class BungeeConfig 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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,11 @@ public class BungeeListener extends VPNExecutor implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onListener(final PostLoginEvent event) {
|
||||
if(event.getPlayer().hasPermission("antivpn.bypass")) return;
|
||||
if(event.getPlayer().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 -> event.getPlayer().getName().startsWith(prefix))) return;
|
||||
|
||||
checkIp(event.getPlayer().getAddress().getAddress().getHostAddress(),
|
||||
AntiVPN.getInstance().getConfig().cachedResults(), result -> {
|
||||
if(result.isSuccess() && result.isProxy()) {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package dev.brighten.antivpn.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface VPNConfig {
|
||||
|
||||
String getLicense();
|
||||
@@ -8,6 +10,8 @@ public interface VPNConfig {
|
||||
|
||||
String getKickString();
|
||||
|
||||
List<String> getPrefixWhitelists();
|
||||
|
||||
void update();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user