Sueta

ProVPN | very simple AntiVPN [SPIGOT & BUNGEE support]

1.1.4

Very simple AntiVPN plugin for spigot & bungee server

·Plugin

poor.png
-----------------
If you want, you can donate to support my projects!
just click right here

------------------------------------------------


One of the simplest AntiVPN plugins on SpigotMC!
Prevent players from using a virtual proxy/VPN!

no API key - unlimited usage - easy
_ ___________________________________

ABOUT
ProVPN is a simple structured AntiVPN plugin that prevents players from joining your server through a virtual proxy/VPN!

SUPPORTED VERSIONS
Spigot (+ Forks): 1.8x - 1.20x (latest)
Bungeecord (+ Forks)

WHY THIS PLUGIN?
This plugin uses its own API webpage which includes no limit and makes it possible to detect and block new VPN services very easily without any struggles!

F EATURES
Discord Webhooks:


Actionbar statistics:


Execute console commands:


Fully customizable kick-message for each kick-reason:


Simple and easy-to-use commands:


CONFIGURATION FILES

settings.yml
settings:
update:
enabled: true
delay: 18000
api-mode: false
debug: false
local-saves:
blacklist: true
whitelist: true
detected:
console:
enabled: false
execute-commands:
- ban-ip %ADDRESS% You are not allowed to use a VPN on our server!
- ban %PLAYER% You are not allowed to use a VPN on our server!
webhook:
enabled: false
avatar: https://www.rayzs.de/provpn/assets/logo.png
name: ProVPN | Bot
title: Detected a VPN user!
footer: detected at %DATE% on %TIME%
fields:
- '**PLAYER**:%%%%__%PLAYER%__'
- '**ADDRESS**:%%%%__%ADDRESS%__'
urls:
- add-first-webhook-url-here
- add-second-webhook-url-here
last-informations:
name: Rayzs_YT
address: 192.168.56.1
connections: 9
messages.yml
messages:
reload: '&aReloaded all configuration files!'
no-perms: '&cNo permissions! Missing permission: &4%MISSING%'
detected:
notification: '&4%PLAYER% &8(&4&o%ADDRESS%&8) &ctried to join through a VPN!'
actionbar: '&cLast detected player: &4%PLAYER% &8(&4&o%ADDRESS%&8) &8- &4%BLACKLISTED%
&cblacklisted &8- &4%CONNECTIONS% &ctotal blocked connections!'
detected-kick-message:
- '&cYou got detected using a VPN!'
- '&4Please deactivate your VPN to join the server.'
blocked-address-kick-message:
- '&cYour ip address is blacklisted!'
- '&4That means that you won''t be able to join the server ever again!'
blocked-name-kick-message:
- '&cYour name is blacklisted!'
- '&4That means that you won''t be able to join the server ever again!'
blacklist:
usage: '&7Usage: &f/%COMMAND% blacklist add&7/&fremove&7/&fclear address&7/&fname'
added: '&aAdded &2%TARGET% &ato the blacklist!'
removed: '&aRemoved &2%TARGET% &afrom the blacklist!'
already-in-list: '&4%TARGET% &cis already on the blacklist!'
not-in-list: '&4%TARGET% &cis not on the blacklist!'
list: '&7List: &e%LIST%'
empty-list: '&cList is empty!'
clear: '&aBlacklist has been cleared completely!'
clear-failed: '&cBlacklist is already empty!'
whitelist:
usage: '&7Usage: &f/%COMMAND% whitelist add&7/&fremove&7/&fclear address&7/&fname'
added: '&aAdded &2%TARGET% &ato the whitelist!'
removed: '&aRemoved &2%TARGET% &afrom the whitelist!'
already-in-list: '&4%TARGET% &cis already on the whitelist!'
not-in-list: '&4%TARGET% &cis not on the whitelist!'
list: '&7List: &e%LIST%'
empty-list: '&cList is empty!'
clear: '&aWhitelist has been cleared completely!'
clear-failed: '&cWhitelist is already empty!'
check:
usage: '&7Usage: &f/%COMMAND% check address'
states:
positive: '&aYes!'
negative: '&cNo!'
invalid: '&4%IP% &cis not a valid ip address!'
loading: '&eLoading data...'
result:
- '&7Informations:'
- '&7IP: &f%IP%'
- '&7Proxy/VPN: %VPN%'
- '&7Whitelisted: %WHITELISTED%'
- '&7Blacklisted: %BLACKLISTED%'
only-players: '&cYou need to be an online player to execute this command!'
stats:
activated: '&aActivated actionbar statistics!'
disabled: '&aDisabled actionbar statistics!'
notifications:
activated: '&aActivated chat notifications!'
disabled: '&aDisabled chat notifications!'
help:
- '&7Usage: &f/%COMMAND%'
- '&8- &freload&7/&frl &8- &7Reload the plugin files'
- '&8- &fnotify &8- &7Activate chat notifications'
- '&8- &fstats &8- &7Activate actionbar statistics'
- '&8- &fcheck address &8- &7Check an address manually'
- '&8- &fwhitelist &flist&7/&fclear &7or &fadd&7/&fremove address&7/&fname'
- '&8- &fblacklist &flist&7/&fclear &7or &fadd&7/&fremove address&7/&fname'

C OMMANDS & PERMISSIONS

Command : /provpn
Aliases: pv, pvpn
Permission: provpn.use

Description : m ain command
Command: /provpn reload
Shortcuts: rl

Permission: provpn.reload
Description: reload all plugin files
Command: /provpn stats (for players only)
Replacement: actionbar
Permission: provpn.stats

Description: get an actionbar with the plugin statistics
Command: /provpn notify (for players only)
Permission: provpn.notify
Description: get notified when someone got detected
Command: /provpn check (address)
Permission: provpn.check

Description: check an address to be a virtual Proxy/VPN manually
Command: /provpn whitelist add/remove (address/name)
Shortcut: wl
Permission: provpn.whitelist.change

Description: people on the whitelist can bypass the VPN-check
Command: /provpn whitelist/wl list/ls
Permission: provpn.whitelist.list
Description: get a list of everyone who is whitelisted
Command: /provpn whitelist clear
Shortcut: wl clr

Permission: provpn.whitelist.clear
Description: clear the whole whitelist
Command: /provpn blacklist add/remove (address/name)
Shortcut: bl
Permission: provpn.blacklist.change

Description: people on the blacklist won't be able to join the server
Command: /provpn blacklist list
Shortcut: bl ls

Permission: provpn.blacklist.list
Description: get a list of everyone who is blacklisted
Command: /provpn blacklist clear
Shortcut: bl clr

Permission: provpn.blacklist.clear
Description: clear the whole blacklist


DEVELOPER API
You can also make your own detection checks by using our developer API!
To disable the default checks from the plugin you need to activate the "api-mode" in the settings.yml.

// Trigger an event!
// Available types are: ALLOWED, CHECKING, DETECTED
// The included objects can be whatever you want to use in your own event
ProEventManager.triggerEvents(ProEventType.ALLOWED, objects);
// Here's a small example of an event class
ProEvent event = ProEvent() {
    @Override
    public ProEventType type() { return ProEventType.CHECKING; }
    @Override
    public void execute(Object... objects) {
        System.out.println("Checking... -> " + objects[0]);
    }
// How to register the new event
ProEventManager.addEvent(event);
// Here's a small code-example to check if somebody is using a virtual proxy or not
if(!AddressUtils.isValidAddress(address)) {
// Not a valid address
return;
}
if(AddressUtils.isVirtualProxy(address)) {
  // Detected using a virtual proxy
}

bStats

____________________________________


Similar projects

Plugin →