Changelog
The useful version: what changed, why it matters, and what you may need to check after updating.
v2.0.1 Latest
25 July 2026 · hotfix & developer API
v2.0.1 introduces a public Developer API, Geyser / Floodgate (Bedrock) integration, expanded VPN detection keywords, and core performance & thread safety hotfixes.
Developer API & Bedrock Integration
- Public
GeoRestrictAPIclass for third-party plugins on Paper/Spigot, BungeeCord, and Velocity. - Paper/Bukkit
ServicesManagerregistration out of the box. - Optional Geyser / Floodgate (Bedrock player) detection with configurable
floodgate:bypass settings. - New Discord embed placeholders:
%xuid%and%device_os%for Bedrock player logging.
Performance & Thread Safety
- Isolated Discord webhooks to a dedicated single-thread executor (
GeoRestrict-Discord) so slow webhooks never block player lookups. - Replaced
ForkJoinPoolthread sleeping in cache save debouncing with a dedicatedScheduledExecutorService. - Moved Bukkit pending-check pruning to a periodic 60s task instead of running inline during every login.
- Expanded default VPN keywords to include
datacamp(Proton VPN host),tzulo,leaseweb,m247,proton, anddatacenter.
v2.0.0
14 July 2026 · complete rewrite
v2.0.0 turns GeoRestrict from a small country filter into a maintained, multi-platform access-control plugin. The setup is still one jar and one readable config; the machinery behind it is much safer.
Rules and player experience
- Country
ALLOWLISTandBLOCKLISTmodes, ASN rules, and configurable VPN/proxy detection. - Clear, editable messages for country, ASN, VPN and lookup-failure blocks.
georestrict.bypassnow works on Bukkit-compatible backends by making the final decision when live permission data is available.- Lookup failures are fail-closed by default. Set
blockOnLookupFailure: falseif your community prefers availability over strict enforcement. - Commands for manual lookups, cache statistics, cache purges and safe config reloads.
Platforms and scheduling
- One shaded jar for Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Waterfall and Velocity.
- Folia-aware scheduling with a clean Bukkit fallback on incompatible forks.
- Bungee and Velocity no longer pretend backend player permissions are available during proxy login.
- Separate, privacy-conscious bStats IDs for Bukkit, BungeeCord and Velocity.
Cache, config and resilience
- A bounded local
geo_cache.jsonwith atomic writes, five-second write coalescing and scheduled expiry cleanup. - Config migration that merges new defaults into existing YAML instead of appending a second, untidy block.
- Private and documentation networks — including CGNAT, TEST-NET, IPv4-mapped IPv6 and
2001:db8::/32— bypass public geolocation. - The built-in country fallback now matches the generated config:
CN,RU,KPandIR. - Update checks compare version numbers numerically, so
1.10correctly sorts after1.9.
Gateway and privacy
- A Cloudflare Worker lookup service with provider failover and one-day caching.
- An independent fallback server that can keep country and ASN rules available during a provider outage.
- Connection, read-timeout and general I/O failures now produce distinct log messages.
- Removed the legacy provider URL from the plugin jar. The plugin now talks only to its configured Worker; provider failover stays behind that boundary.
- Discord delivery retries once after a temporary network or 5xx failure.
- Detailed deployment, secrets and server security notes now live in the GitHub README instead of marketplace pages or the everyday setup guide.
Quality and documentation
- 22 Java unit tests, 19 Java integration tests, 12 Worker tests and four fallback server tests, plus JavaScript, XML, HTML and live service checks.
- Real startup smoke coverage for Paper, Purpur, Folia, BungeeCord, Waterfall and Velocity 4.0.0, including generated config and community message verification.
- A complete documentation field guide covering installation, configuration, commands, architecture, support and release history.
- A plain-language Privacy Policy and Terms and Conditions, linked from the wiki and every marketplace listing.
- Generated config comments now link directly to the wiki and Discord, and warn operators not to change Worker settings without understanding the lookup path.
- Startup logs now invite bug reports and feedback, reflecting Demonz Development's user-first support approach.
- Removed leftover scheduler hooks, duplicate constants, retired config fields, unused documentation styles and an unreferenced asset copy. Reserved IP checks now run locally before any Worker request.
- User-facing documentation now says “fallback server” instead of using hosting-specific shorthand.
- A warmer, accessible docs design with keyboard-friendly menus and accordions, readable callouts, colourful section headings and responsive layouts.
- New Pillow-generated penguin logo, icon and marketplace banner, plus a hand-drawn SVG interface icon set.
- Human-written marketplace copy for the major Minecraft plugin directories.
v1.0.0 Original
2024
The original linuxaddict release introduced country lists, ASN filtering, ISP-keyword VPN detection, Discord notifications and support for the main Bukkit and proxy platforms.