Polymart is now Voxel Shop! We're upgrading many features of the site, and during this open beta you will experience occasional bugs. Learn more
Protectcord is an anti VPN/Proxy plugin it uses an advanced API to check if an IPv4/IPv6 is a vpn
# 🚀 ProtectCord v1.1.5 Released
**Release Type:** Feature Release
**Version:** `1.1.5`
This update introduces a powerful new **Account Per IP Limit** system alongside a **major performance upgrade to the `/checkip` API**, delivering dramatically faster player connection checks and improved abuse prevention.
---
### 🧩 Technical Breakdown
* **First request**
* Not cached
* IP history is built
* **Second request**
* Cached via **Cloudflare D1 + KV**
* **Cache duration**
* Cached for **1 hour**
* Automatically refreshed on reuse after expiry
| Request | Expected Response Time |
| ------- | ---------------------- |
| 1st | 1,000ms – 2,000ms |
| 2nd+ | 5ms – 50ms |
All other ProtectCord endpoints are already cached via Cloudflare KV and respond almost instantly.
## 🆕 New Feature: Account Per IP Limit
ProtectCord can now limit the number of Minecraft accounts that may connect from the same IP address at the same time. This helps prevent account stacking, shared-IP abuse, and connection flooding.
### 🔧 Configuration
```yaml
account-per-ip-limit:
enabled: false
max-accounts: 3
enforcement: "BLOCK" # "BLOCK" or "KICK_OLDEST"
```
### ⚙️ Options
* `enabled` – Enable or disable the feature (default: `false`)
* `max-accounts` – Maximum allowed accounts per IP (default: `3`)
* `enforcement`
* **BLOCK** – Deny new connections when the limit is reached
* **KICK_OLDEST** – Kick the oldest session to allow a new connection
---
### ✨ Feature Highlights
* Thread-safe session tracking using `ConcurrentHashMap`
* Automatic cleanup when players disconnect
* Whitelisted players bypass the limit
* Local/private IP addresses bypass checks
* Custom kick messages with placeholders (`{max}`, `{current}`)
* Real-time logging of session additions and removals
* No behavior changes when disabled (default)
---
### 💬 Custom Messages
```yaml
messages:
account-limit-reached: |
&c&lConnection Limit Reached
&7Maximum accounts per IP: &c{max}
&7Current connections from your IP: &c{current}
&7Please disconnect another account before connecting.
account-limit-kicked: |
&c&lYou have been disconnected
&7A new account connected from your IP address.
&7Maximum accounts per IP: &c{max}
```
---
## 🧠 Technical Details
### ➕ New Classes
* `SessionInfo` – Stores session data (player name, UUID, connection time)
* `SessionManager` – Thread-safe IP session tracking
* `PlayerDisconnectListener` – Cleans up sessions on disconnect
### ✏️ Modified Classes
* `ProtectCordPlugin` – Initializes session tracking and listeners
* `ConfigManager` – Added 5 new configuration getters
* `PlayerConnectionListener` – Account-limit check runs before API validation
* `config.yml` – New configuration section and messages
---
### 🔄 Logic Flow
1. Player connects → `PreLoginEvent`
2. Feature enabled & player not whitelisted
3. `SessionManager.canConnect()` validates IP usage
4. If limit exceeded:
* **BLOCK** → Connection denied
* **KICK_OLDEST** → Oldest session disconnected
5. Session added on successful join
6. Session removed on disconnect
---
### 📊 Performance Impact
* ~130 bytes per session
* O(1) lookups
* Thread-safe synchronization
* Automatic cleanup prevents memory leaks
---
## ⚡ Massive `/checkip` API Performance Upgrade
We’ve pushed a **major API update** that drastically reduces latency for the `/checkip` endpoint used by ProtectCord across game servers, websites, and platforms.
### 🌍 Cloudflare-Powered Caching
* **1st request per IP:** ~1,000ms – 2,000ms
* **Subsequent requests:** **5ms – 50ms**
* Up to **200× faster** after the first check
Once a player’s IP has been screened, ProtectCord can return safety data *almost instantly* on future connections — a massive improvement for login systems and VPN/proxy detection.
---
## 🔐 Why This Matters
* Faster player logins
* Near-instant VPN & proxy detection after first check
* Reduced server-side login delays
* Stable performance during peak traffic
---
## ✅ Compatibility
* Fully backward compatible with v1.1.0
* Feature disabled by default
* No breaking changes
---
💙 Thank you for using **ProtectCord**
This release delivers **stronger protection** and **significantly faster performance** across the board.
v1.0.8 is out! It should automatically work for minecraft 1.21.11. Paper natively now supports 1.21.11-pre4-R0.1-SNAPSHOT
## [v1.0.7] - 2025-01-02
**Version: 1.0.7**
**Release Type: Configuration Update**
**Release Date: 2025-01-02**
### Features Added
- **Configurable API Timeouts** - Admins can now configure connection and read timeouts for API requests
- Added `api-timeout.connect` configuration option (default: 15000ms)
- Added `api-timeout.read` configuration option (default: 15000ms)
- Timeout settings apply to all API calls including IP checks, statistics, and health checks
- Helps servers with slower connections or distant from API servers
### Changes
- **Increased default API timeouts from 5 seconds to 15 seconds**
- Reduces timeout errors for servers with slower network connections
- Provides better reliability for international servers
- Can be adjusted per-server needs in configuration