✨ ChronAntiVPN | VPN detection! ✨
- THANK YOU: 1100 BUKKIT AND 800 SPIGOT DOWNLOAD!
- THE PLUGIN WORKS ON SPIGOT AND BUNGEECORD SERVERS!
- WORKS ON LOCALHOST SERVER IF YOU ENABLED THE LOCALHOST: TRUE FUNCTION IN THE ANTIVPN.YML!
- IP AND VPN CHECK: THE PLUGIN CHECKS WHETHER A GIVEN IP ADDRESS IS FROM A VPN OR PROXY.
- COUNTRY VERIFICATION: ALLOWS DEVELOPERS TO EXCLUDE CERTAIN COUNTRIES AND ALSO VERIFIES FOR MANIPULATED COUNTRY DATA.
- ADDRESS VERIFICATION: CHECKING FOR NULL IP ADDRESSES, BLOCKING LOCALE AND TEST IP ADDRESSES, AND MONITORING IP ADDRESS CHANGES!
- EXCEPTIONS: PROVIDES THE OPTION TO TREAT CERTAIN IP ADDRESSES AS EXCEPTIONS.
- PLAYER MONITORING: WHEN A PLAYER CONNECTS TO THE SERVER, THE PLUGIN CHECKS THEIR IP ADDRESS AND TAKES NECESSARY ACTIONS IF IT'S POTENTIALLY HARMFUL.
- ADDRESS LIMITER: WITH THIS, YOU CAN ALLOW UP TO THREE PLAYERS FROM A SINGLE IP ADDRESS TO JOIN THE SERVER!
- DISCORD NOTIFICATIONS: CAPABLE OF SENDING DISCORD NOTIFICATIONS FOR SPECIFIC EVENTS.
- EJECTION MEASURES: IF AN IP ADDRESS IS DEEMED HARMFUL, THE PLUGIN AUTOMATICALLY KICKS THE PLAYER AND SENDS A NOTIFICATION.
- ASYNCHRONOUS OPERATIONS: THE PLUGIN OPERATES ASYNCHRONOUSLY, MINIMIZING SERVER RESOURCE STRAIN.
- INTEGRATION WITH PROXYCHECK.IO: UTILIZES AN API KEY FROM PROXYCHECK.IO, ENABLING MORE COMPREHENSIVE AND DETAILED IP CHECKS.
- ALTERNATIVE VPN CHECK: IF THE API STATUS IS POOR, THE PLUGIN CONDUCTS AN ALTERNATIVE VPN CHECK.
- CACHED DATA: IF CERTAIN DATA IS NOT QUERIED FOR AN HOUR, IT'S AUTOMATICALLY REMOVED FROM THE CACHE TO GATHER FRESH INFORMATION.
- RUN TASK METHOD ERRORS: IF THERE IS AN ERROR BETWEEN THE RUN TASK METHODS, THE SERVER SHUTS DOWN IF IT'S ENABLED! FOR EXAMPLE: UNEXPECTED ERRORS DUE TO LOAD, ETC...
- /checker [address]: CHECKS THE VPN OR PROXY STATUS OF A GIVEN IP ADDRESS!
- /blacklist add [name] [address] [reason]: BANS A PLAYER BASED ON NAME, IP ADDRESS, AND REASON!
- /blacklist remove [user]: REMOVES A PLAYER FROM THE BLACKLIST!
- /blacklist check [user]: DISPLAYS DETAILS (NAME, UUID, ADDRESS, REASON) OF A PLAYER ON THE BLACKLIST!
- /blacklist list: DISPLAYS PLAYERS CURRENTLY ON THE BLACKLIST!
- /addresslimiter clear [address]: YOU CAN DELETE THE NAMES ASSOCIATED WITH THE IP ADDRESS!
- /addresslimiter list [address]: YOU CAN LIST THE NAMES ASSOCIATED WITH THE IP ADDRESS!
- /chronantivpn reload: RELOADS ALL FILES!
- chronantivpn.checker: GRANTS PERMISSION TO USE THE /checker COMMAND!
- chronantivpn.blacklist.add: GRANTS PERMISSION TO USE /blacklist add COMMAND!
- chronantivpn.blacklist.remove: GRANTS PERMISSION TO USE /blacklist remove COMMAND!
- chronantivpn.blacklist.check: GRANTS PERMISSION TO USE /blacklist check COMMAND!
- chronantivpn.blacklist.list: GRANTS PERMISSION TO USE /blacklist list COMMAND!
- chronantivpn.addresslimiter.clear: GRANTS PERMISSION TO USE /addresslimiter clear COMMAND!
- chronantivpn.addresslimiter.list: GRANTS PERMISSION TO USE /addresslimiter list COMMAND!
- chronantivpn.reload: GRANTS PERMISSION TO USE /chronantivpn reload COMMAND!
- chronantivpn.notification: THIS PERMISSION SENDS ADMIN NOTIFICATIONS!
- chronantivpn.*: THIS ADDS ALL THE PERMISSIONS FROM THE PLUGIN TO YOUR PERMISSIONS!
- PLACE THE PLUGIN'S .JAR FILE INTO THE PLUGINS DIRECTORY OF YOUR MINECRAFT SERVER.
- RESTART YOUR SERVER.
- ONCE INSTALLED, THE PLUGIN AUTOMATICALLY STARTS CHECKING IP ADDRESSES USING PROXYCHECK.IO. IF A PLAYER'S IP ADDRESS IS IDENTIFIED AS HARMFUL, THE PLUGIN TAKES ACTION BY EJECTING THE PLAYER AND SENDING A NOTIFICATION.
#░█████╗░███╗░░██╗████████╗██╗██╗░░░██╗██████╗░███╗░░██╗
#██╔══██╗████╗░██║╚══██╔══╝██║██║░░░██║██╔══██╗████╗░██║
#███████║██╔██╗██║░░░██║░░░██║╚██╗░██╔╝██████╔╝██╔██╗██║
#██╔══██║██║╚████║░░░██║░░░██║░╚████╔╝░██╔═══╝░██║╚████║
#██║░░██║██║░╚███║░░░██║░░░██║░░╚██╔╝░░██║░░░░░██║░╚███║
#╚═╝░░╚═╝╚═╝░░╚══╝░░░╚═╝░░░╚═╝░░░╚═╝░░░╚═╝░░░░░╚═╝░░╚══╝
#
# SELECT PLUGIN LANGUAGE! (en_US, hu_HU)
Locale: en_US
AntiVPN:
# WRITE YOUR API KEY HERE FOR VPN, PROXY, AND COUNTRY CHECK (OPTIONAL BUT RECOMMENDED! HTTPS://WWW.PROXYCHECK.IO/)
Code: 'none'
# THIS SECTION IS USED TO CONFIGURE ANTI-VPN MEASURES.
# AN API KEY CAN BE USED TO ENHANCE THE ACCURACY OF VPN AND PROXY DETECTION.
Exception:
# SPECIFY IP ADDRESSES THAT SHOULD BE EXEMPTED FROM VPN AND PROXY CHECKS.
# THIS DOES NOT OVERRIDE CHECKS FOR NULL ADDRESSES OR BLACKLISTED ADDRESSES.
Addresses: []
Blacklist-mode:
# AUTOMATICALLY ADD TO BLACKLIST WHEN KICKED!
Automatic: false
# SPECIFY THE PORTS THAT SHOULD BE CHECKED FOR VPN CONNECTIONS.
# MULTIPLE PORTS CAN BE LISTED HERE.
Sockets:
- 80
Whitelist-mode:
# ENABLE THIS OPTION TO CHECK CONNECTING USERS AGAINST A WHITELIST OF COUNTRY ISO CODES.
Check: false
# YOU CAN ADD COUNTRY ISOCODES TO THE LIST!
Isocode:
- 'RS'
- 'HU'
- 'SK'
- 'RO'
- 'UA'
# LIST OF COUNTRY ISO CODES THAT ARE ALLOWED TO CONNECT.
# USERS FROM OTHER COUNTRIES WILL BE BLOCKED IF THIS CHECK IS ENABLED.
# SWITCH-CHECK CONFIGURATION!
Switch-check:
# THE ADDRESS OPTION DETERMINES WHETHER TO CHECK FOR IP ADDRESS CHANGES!
# IF 'true', IP ADDRESS CHANGES WILL BE CHECKED!
# IF 'false', IP ADDRESS CHANGES WILL NOT BE CHECKED!
# ENABLE THIS OPTION TO CHECK FOR CHANGES IN THE IP ADDRESS OF CONNECTED USERS.
# THIS CAN HELP DETECT SUSPICIOUS ACTIVITY WHERE USERS CHANGE THEIR IP ADDRESS FREQUENTLY.
Address: false
# THE ISOCODE OPTION DETERMINES WHETHER TO CHECK FOR COUNTRY CODE (ISO CODE) CHANGES!
# IF 'true', COUNTRY CODE CHANGES WILL BE CHECKED!
# IF 'false', COUNTRY CODE CHANGES WILL NOT BE CHECKED!
# ENABLE THIS OPTION TO CHECK FOR CHANGES IN THE COUNTRY ISO CODE OF CONNECTED USERS.
# THIS CAN HELP DETECT IF USERS ARE USING VPNS TO CHANGE THEIR VIRTUAL LOCATION.
Isocode: true
Address-limiter:
# ENABLE THIS OPTION TO LIMIT THE NUMBER OF CONNECTIONS FROM A SINGLE IP ADDRESS.
Check: false
# SET THE MAXIMUM NUMBER OF CONNECTIONS ALLOWED FROM A SINGLE IP ADDRESS.
# THIS HELPS TO PREVENT ABUSE FROM A SINGLE SOURCE.
Max-count: 3
Run-task-error:
# THIS CONFIGURATION SETTING ENSURES THAT THE SERVER WILL AUTOMATICALLY SHUT DOWN
# IN THE EVENT OF UNEXPECTED ERRORS OR EXCEPTIONS OCCURRING DURING THE EXECUTION
# OF runTask METHODS. THIS IS A SAFETY MEASURE DESIGNED TO PREVENT POTENTIAL DATA LOSS,
# INCONSISTENCIES, OR OTHER ISSUES THAT MAY ARISE FROM THE CONTINUED OPERATION OF THE SERVER
# UNDER ERRONEOUS CONDITIONS.
# WHEN ENABLED (true), ANY CRITICAL ERRORS ENCOUNTERED DURING TASK EXECUTION WILL
# TRIGGER AN IMMEDIATE SERVER SHUTDOWN. THIS HELPS TO MAINTAIN THE INTEGRITY OF THE SYSTEM
# AND ENSURES THAT ADMINISTRATORS CAN ADDRESS AND RESOLVE THE UNDERLYING ISSUES BEFORE
# RESTARTING THE SERVER.
# IF SET TO false, THE SERVER WILL ATTEMPT TO CONTINUE RUNNING DESPITE ANY ERRORS,
# WHICH MAY BE SUITABLE FOR NON-CRITICAL ENVIRONMENTS OR FOR DEBUGGING PURPOSES. HOWEVER,
# THIS IS NOT RECOMMENDED FOR PRODUCTION ENVIRONMENTS DUE TO THE RISKS OF UNDETECTED ISSUES.
Server-shutdown: true
Json-fetcher:
# ENABLE CACHING OF FETCHED JSON DATA TO IMPROVE SERVER PERFORMANCE.
Set-use-caches: true
# CONFIGURE THE TIMEOUT SETTINGS FOR WEB REQUESTS.
# IF THE WEBSITE DOES NOT RESPOND IN TIME, AN ALTERNATIVE CHECK WILL BE USED.
Set-connect-timeout: 3
Set-read-timeout: 3
# ENABLE THIS OPTION TO PRINT JSON FETCH ERRORS TO THE CONSOLE FOR DEBUGGING PURPOSES.
Send-console-error: false
Socket-fetcher:
# CONFIGURE THE TIMEOUT FOR SOCKET CONNECTIONS.
# IF THERE IS NO RESPONSE, IT WILL ASSUME THAT NO VPN OR PROXY IS USED.
Set-socket-timeout: 3
Discord-webhook:
# SEND DISCORD NOTIFICATION IF YOU ENTER THE DISCORD WEBHOOK URL!
# ENTER A DISCORD WEBHOOK URL TO ENABLE DISCORD NOTIFICATIONS FOR SERVER EVENTS.
Url: 'none'
Header: 'Server Informations!'
# CONFIGURE THE MESSAGES THAT WILL BE SENT TO THE DISCORD CHANNEL.
Notifications:
Reason: 'Reason » %reason%'
User: 'User » %user%'
Address: 'Address » %address%'
Iso: 'Iso » %isocode%'
Server: 'Server » %server%'
Footer: '(Unsuccessful server connection!)'
# THESE PLACEHOLDERS ARE USED FOR DISPLAYING DEFAULT VALUES WHEN NO SPECIFIC INFORMATION IS AVAILABLE.
Placeholder:
Unknown: 'Unknown'
Server: 'Unknown'
Console: 'Console'
- A DEFAULT CODE EXAMPLE IS INCLUDED IN THE CUSTOMKICK.YML FILE AS A REFERENCE. YOU CAN USE IT TO ADD NEW CHECKS.
- MULTIPLE URLS CAN BE ADDED, AND EACH URL CAN HAVE MULTIPLE JSON CHECKS, PERMISSION BYPASS, AND CUSTOM REASON ADDED!
#
#░█████╗░██╗░░░██╗░██████╗████████╗░█████╗░███╗░░░███╗██╗░░██╗██╗░█████╗░██╗░░██╗
#██╔══██╗██║░░░██║██╔════╝╚══██╔══╝██╔══██╗████╗░████║██║░██╔╝██║██╔══██╗██║░██╔╝
#██║░░╚═╝██║░░░██║╚█████╗░░░░██║░░░██║░░██║██╔████╔██║█████═╝░██║██║░░╚═╝█████═╝░
#██║░░██╗██║░░░██║░╚═══██╗░░░██║░░░██║░░██║██║╚██╔╝██║██╔═██╗░██║██║░░██╗██╔═██╗░
#╚█████╔╝╚██████╔╝██████╔╝░░░██║░░░╚█████╔╝██║░╚═╝░██║██║░╚██╗██║╚█████╔╝██║░╚██╗
#░╚════╝░░╚═════╝░╚═════╝░░░░╚═╝░░░░╚════╝░╚═╝░░░░░╚═╝╚═╝░░╚═╝╚═╝░╚════╝░╚═╝░░╚═╝
#
# THE CUSTOM CHECKS ARE DISABLED!
Enabled: false
# THESE ARE THE DEFAULT VALUES AUTOMATICALLY INSERTED BASED ON PLAYER DATA!
# %name% - PLAYER'S USERNAME!
# %uuid% - PLAYER'S UUID!
# %address% - PLAYER'S IP ADDRESS!
CustomKick:
# SETTINGS FOR THE FIRST CHECK, AND MORE CAN BE ADDED!
Check1:
Url: 'https://funkemunky.cc/vpn?ip={address}'
checks:
# SETTINGS FOR THE FIRST CHECK, AND MORE CAN BE ADDED!
'1':
# IF YOU HAVE THIS PERMISSION, THE SERVER WILL NOT KICK YOU!
Permission: 'chronantivpn.exception.proxy'
# THE JSON PATH!
Json-Path:
- 'proxy'
# CHECK IF THE JSON PATH IS ON THE WHITELIST. IF YES, SERVER DOES NOT KICK!
Json-Whitelist:
- 'false'
# IF THE JSON RESULT IS BLACKLISTED, THE SERVER KICKS WITH THIS REASON!
Kick: 'Blocked on the server proxy!'
'2':
# IF YOU HAVE THIS PERMISSION, THE SERVER WILL NOT KICK YOU!
Permission: 'chronantivpn.exception.country'
# THE JSON PATH!
Json-Path:
- 'countryCode'
# CHECK IF THE JSON PATH IS ON THE WHITELIST. IF YES, SERVER DOES NOT KICK!
Json-Whitelist:
- 'RS'
- 'HU'
- 'SK'
- 'RO'
- 'UA'
# IF THE JSON RESULT IS BLACKLISTED, THE SERVER KICKS WITH THIS REASON!
Kick: 'Blocked on the server isocode!'
# SETTINGS FOR THE SECOND CHECK, AND MORE CAN BE ADDED!
Check2:
Url: 'http://ip-api.com/json/{address}?fields=proxy,countryCode'
checks:
# SETTINGS FOR THE FIRST CHECK, AND MORE CAN BE ADDED!
'1':
# IF YOU HAVE THIS PERMISSION, THE SERVER WILL NOT KICK YOU!
Permission: 'chronantivpn.exception.proxy'
# THE JSON PATH!
Json-Path:
- 'proxy'
# CHECK IF THE JSON PATH IS ON THE WHITELIST. IF YES, SERVER DOES NOT KICK!
Json-Whitelist:
- 'false'
# IF THE JSON RESULT IS BLACKLISTED, THE SERVER KICKS WITH THIS REASON!
Kick: 'Blocked on the server proxy!'
'2':
# IF YOU HAVE THIS PERMISSION, THE SERVER WILL NOT KICK YOU!
Permission: 'chronantivpn.exception.country'
# THE JSON PATH!
Json-Path:
- 'countryCode'
# CHECK IF THE JSON PATH IS ON THE WHITELIST. IF YES, SERVER DOES NOT KICK!
Json-Whitelist:
- 'RS'
- 'HU'
- 'SK'
- 'RO'
- 'UA'
# IF THE JSON RESULT IS BLACKLISTED, THE SERVER KICKS WITH THIS REASON!
Kick: 'Blocked on the server isocode!'
Comments