[1.10.1.2] 2026-05-03
Fixed
- Kick spam on non-cached VPN detection events.
Changed
- Project cleanup and performance improvements.
[1.10.1.1] 2026-04-29
Fixed
- Startup error on velocity instances is now corrected.
Changed
- Bumped dependency versions for H2 database.
[1.10.1.1] 2026-04-29
Fixed
- Startup error on velocity instances is now corrected.
Changed
- Bumped dependency versions for H2 database.
[1.10.1] - 2026-04-28
Fixed
* Async kick error that caused issues during player removal when running commands.
* Startup error caused by a packaging issue is now corrected.
Changed
* Players can now be whitelisted even while offline (on non-cracked servers)
[1.10.0] - 2026-04-07
Added
- CIDR allowlisting, including commands to add, remove, view, and search entries
- MongoDB support for CIDR allowlist storage
- VPN detection webhooks with Discord and Slack formatting options
- Mojang API fallback support for player lookups
- Folia support
Changed
- Improved player blocking so flagged users are removed more reliably across platforms
- Updated allowlist handling to validate CIDR entries more consistently
- Improved database cleanup for outdated cached responses
Fixed
- SQL startup and loading issues, including MySQL library injection problems
- CIDR parsing issues and MongoDB CIDR lookup failures
- Allowlist-related SQL errors
- Repeated webhook spam from duplicate VPN detection events
Documentation
- Expanded webhook setup documentation for Discord and Slack
[1.9.4] - 2025-09-30
Added
- New dependency management system with automatic library loading and relocation
- Caffeine cache implementation to replace Guava
- Sponge platform support with full event handling and command system
- UUID lookup functionality for player validation
- Enhanced kick checking system with scheduled task execution
- Support for Java 17 and Java 21 runtime environments
- New database metrics tracking for bStats
Changed
- **BREAKING**: Minimum Java version upgraded from 8 to 17
- Replaced Guava cache with Caffeine cache for better performance
- Modernized player checking system with asynchronous processing
- Improved database connection handling with proper resource management
- Enhanced VPN/Proxy detection with new `CheckResult` and `ResultType` system
- Updated Maven dependencies and build process
- Reorganized project structure (Assembly → Universal module)
- Improved error handling and exception logging throughout codebase
Fixed
- H2 database compatibility issues with automatic backup and recovery
- Memory leaks in database result set handling with try-with-resources
- Thread safety issues in player cache management
- Command registration and unregistration during plugin lifecycle
- Proper cleanup of database drivers on shutdown
- Resource management in SQL connections and prepared statements
Removed
- Guava dependency (replaced with Caffeine and built-in utilities)
- Legacy cached response handling system
- Old table format compatibility code
Changelog
- Fixed bug that prevented plugin from loading when updating from 1.9.2 using the H2 database.
Changelog
- Corrected ISO Codes link within the config file.
- Corrected error on Bukkit servers when using vanilla kick feature.
- Improved caching to include more information, using less backend queries.
- Updated H2 to non-vulernable version.
- Fixed bug where players getting kicked from velocity proxies would receive an error instead of configured message.
- Changed the way dependencies are handled to add compatibility for Java 17+ versions without having to use runtime arguments to allow deprecated Java features.
- Tested compatibility on 1.21 Bukkit, Bungeecord, and Velocity proxies.
Changelog
- Updated vulnerable dependencies to non-vulnerable versions
- Squashed multiple exceptions by adding null checks (
C0D3-M4513R and others)
- Changed some caching parameters to improve performance and data reliability.
- Improved performance issues resulting from some wonky control flow.
Changelog
- Fixed bug in maven compilation script that prevented Velocity from finding the Inject annotation, preventing it from loading.
Changelog
- Added pre-login cache. This will remove players who have previously been detected using a proxy by KauriVPN, making spam login problems a thing of the past.
- Fixed bug that would prevent a user from whitelisting a player.
- Fixed sql database errors.
- Fixed dependency errors.
- Removed usage of System.out.println() for logging and moved everything to a single platform based logging system (for users who don't like the "Nag author(s):" messages in their logs).
This update fixes a bug with the shaded configuration library we use preventing the plugin from starting up on certain 1.12.2 spigot servers.
Changelog
- Fixed H2 erroring on startup.
- Added database upgrading code since we now use a newer version for H2.
- Removed debug from Bukkit version of plugin when players log in (oopsie).
Changelog
- Added /antivpn reload command
- Added configuration for "No permission!" message.
- Fixed H2 database error on index creation when loading plugin.
- Shrunk jar file size extensively so it can be uploaded to Spigot directly (credits to Lucko's Helper util)
- Improved VPN detection on the backend.
- Updated h2database driver to 2.1.214 to patch vulnerability
- Updated mysql database driver to 8.0.30 to patch vulnerability
- Updated MongoDB java driver to 3.12.11.
Changelog
- Fixed an issue where player references would not be removed from a cache on player disconnect.
- Updated MySQL Connector to latest version.
Changelog
- Confirms that KauriVPN is 1.19 compatible.
- Added new /kaurivpn plan command which will allow a user to view the queries used and how many they have left.
New Command Preview

Changelog
- This fixes issue #23 where MySQL would load instead of H2.
Changelog
- Added country whitelisting!
- Recoded configuration to be much cleaner. Now comments will be generated on new configs! Recommended to save a copy of your old config and generate a new one, and then update the new one with your old settings.
- Fixed bug where whitelisting IPs would not actually whitelist IPs.
- Improved bukkit player cache performance (credit @Kek5chen)
- Relocated shaded dependencies to prevent any errors with other plugins
Changelog
- Fixing deprecation message for MySQL users.
- Fixes potential memory leak for large servers that don't restart very often.
Changelog
- Added mongo support to AntiVPN plugin.
- Added /kaurivpn clearcache to clear the RAM and database cache of API responses, incase issues occur.
- Fixed velocity configuration error.
Note
I did improve the backend query times, while adding more advanced detections which should get a lot more residential proxies.
This should fix config.yml files not generating properly for VelocityPowered users.
Changelog
- Using built-in MySQL driver since Velocity does not include it for us.
- Implemented velocity-plugin.json as this is now required by Velocity 3.1 and newer.
- Re-combined the plugin back into one .jar file.
KauriVPN will now include a separate .JAR for Velocity users as Velocity now goes out of its way to check for any Bukkit/Bungee files within the plugin, and then refuse to load it. This prevents me from combining everything into one nice little package, but it will have to do.
Changelog
- Improves overall performance execution.
- Fixed bug when using MySQL database that would cause errors on load. This was due to the --illegal-access flag no longer functioning.
Changelog
- Added ip exemptions in addition to the existing player exemptions.
- Fixing System.out usage warnings that some users were experiencing.
- Fixing MySQL drivers not loading on some servers.
- Plugin will now show up as "KauriVPN" in your plugins list instead of "AntiVPN"
- Fixing bug that would make whitelisted players not load for awhile after server starts
Notes: If you aren't running Velocity, you do not have to download this update. This just fixes the version number and metrics functionality for the plugin. If you are running Velocity, it's important you update.
Implemented full VelocityPowered support! This was requested since there hasn't really been a good AntiVPN plugin that supported the proxy software.
WARNING: If you have used v1.4 and older and want to keep your old "responses" MySQL table, please back it up before running this update. It will drop the table and create one with updates data types. Make sure the MySQL user for KauriVPN has permission to drop tables so it can fix the data storage type related bugs. Data in "responses" is not terribly important; it is just a cache to prevent unnecessary queries to the API.
Changelog
- Fixed MySQL SQLException errors caused by trying to call queries on a closed connection (usually produced on plugin shutdown or reload).
- Fixed bug where whitelisted players would not actually be whitelisted from the VPN.
- Added alerts state syncing in the database across servers. If you do /antivpn alerts and your alerts are enabled on one server, they will be enabled on others even after shutdown.
- Fixed data storage errors with the ISP column among other possible other errors. This plugin will automatically updates the "responses" schema with new data types.
Changelog
- We have now introduced a France OVH node for the AntiVPN service API. This will also work as an automatic failover incase one of them goes down to improve uptime.
- Fixed a bug on some servers that would allow players on proxies to join if they spam joined the server (Bukkit version only).
- Fixed bug that sent the same description for every command in the /antivpn help message.
- Added bStats tracking for both Bukkit and Bungee instances.
- Added AntiVPN alerts for VPN usage on join. This can be used for servers who don't want to block VPNs but rather see when a player uses one. Can be toggled with /antivpn alerts.
Known Issues
- MySQL Connection error on shutdown.
Changelog
- Fixed MySQL errors caused by the change in MySQL driver libraries in Java 16.
- Fixed tab completion for /antivpn allowlist [add/remove]
Changelog
- Fixed MySQL erroring (brysendev on GitHub)
- Added failure reason output when the API returns a failed query.
- You can now use custom commands to run when a VPN is detected instead of the built in kick feature.
- Queries now run even faster!
- Cleaned up the code within the repo a bit.
Changelog
- Changed the max length for the ISP column from 32 to 64 varchars. This would cause errors for large ISP names.
- Fixed slow queries for IPs that aren't proxies by doing some data-sciency stuff in the backend (will see improvement for all versions).
- Patched more proxies in the backend.
- You should manually change this column in your SQL database or drop the `responses` table.
Changelog
- You can now connect this AntiVPN plugin to your MySQL database for a variety of useful features (optional).
- Implemented
/antivpn allowlist <add/remove> <player/uuid> to manually exempt players without the use of permissions (
NOTE: You should setup MySQL for this data to save after restarts).
- Source code is now using the Apache License Version 2.0.
- Added the ability to whitelist based on the prefix of usernames for folks that use Geyser and want to automatically allow people on Bedrock Edition to bypass.
Changelog
- Implemented tab completion to Bukkit (TODO: Tab completion for BungeeCord).
- Implemented commands on BungeeCord (/antivpn is now a thing).
- Improved query speed by 20ms on our end by optimizing how we store blocked ip addresses in our databases.
Next Update
- Implementing MySQL storage types.
- Adding whitelist command for player usernames.
- Automatic whitelist for users with certain Bedrock prefixes in their names.
Changelog
- Implemented new commands system for Bukkit and Bungee.
- Commands /antivpn and /antivpn lookup <player> added for Bukkit (coming to Bungee soon).
- AntiVPN database detections got a major update and increase in overall accuracy with even more proxies detected!
- Added message print to console when a player joins and is detected for a VPN.
- Added AntiVPN bypass permission antivpn.bypass
(Thought it would be a good idea to add this kek)