This is a
complete rewrite of IPDynamic with a professional architecture:
SQLite Database - No more JSON files! All data is now stored in a proper database with automatic schema management.
Kotlin + Coroutines - Modern async architecture that won't lag your server. Zero TPS impact.
Auto-Adaptive Schema - Database automatically updates itself with new plugin versions. No data loss, no manual migration.
Better Alt Detection - Improved algorithm with UUID + Username verification for accurate alt detection.
IP Range Banning - Two powerful modes: OP1 (x.x.x.*) and OP2 (x.x.*.*) for flexible IP blocking.
Whitelist System - Allow trusted players to bypass IP bans with Mojang UUID verification.
Fully Customizable Messages - Every message can be customized via messages.yml
Granular Permissions - Give moderators exactly the access they need.
Multi-Version Support - Works on Paper/Spigot 1.17.x to 26.1.x
Old Version (DEV)
New Version (1.0.0)
JSON file storage
SQLite Database with WAL mode
Synchronous operations
Async Coroutines - Zero TPS impact
Manual data migration
Auto-adaptive schema - Just update!
Basic alt detection
Smart detection with UUID verification
CIDR notation only
OP1/OP2 modes - Easy to use
Hardcoded messages
Full messages.yml customization
Single permission
10+ granular permissions
Important Migration Notice This version uses a completely new data format (SQLite). If upgrading from DEV version, your old data will NOT be migrated. Delete the old IPDynamic folder before installing.
Features
Advanced IP Tracking Every player connection is recorded with full details:
IP Address & Country (GeoIP)
First connection date
Total connection count
Complete IP history per player
Smart Alt Detection Automatically detect alt accounts by analyzing shared IPs:
Whitelist System Allow trusted players to bypass IP bans:
Mojang API UUID verification
Works with both online and offline mode servers
Dual verification (UUID + Username)
Commands
Main command:
/ipdynamic (aliases:
/ipdy,
/ipd)
Information Commands
Code (Text):
/ipdy check <player> - View complete player profile with IP history and alts
/ipdy history <player> - View player's connection history
/ipdy alts <player> - List all detected alt accounts
/ipdy ip <address> - Find all accounts that used a specific IP
/ipdy stats - View plugin statistics
Ban Management
Code (Text):
/ipdy ban <op1|op2> <ip> [reason] [duration] - Ban an IP range
/ipdy unban <pattern> - Remove an IP ban
/ipdy banlist - View all active bans
Duration Examples: 30m, 12h, 7d, 4w (no duration = permanent)
Whitelist Management
Code (Text):
/ipdy whitelist add <player> [reason] - Add player to whitelist
/ipdy whitelist remove <player> - Remove from whitelist
/ipdy whitelist list - View all whitelisted players
Administration
Code (Text):
/ipdy reload - Reload configuration
/ipdy help - Display help menu
Permissions
Code (Text):
ipdynamic.* - Full access to all commands (default: op)
# For Moderators - Query access only
/lp group mod permission set ipdynamic.check true
/lp group mod permission set ipdynamic.history true
/lp group mod permission set ipdynamic.alts true
/lp group mod permission set ipdynamic.ip true
# For Admins - Full access
/lp group admin permission set ipdynamic.* true
Configuration
Code (Text):
# Plugin prefix
prefix: "&b&lIPDynamic &8|- "
# Ban screen shown to banned players
ban-screen:
lines:
- "&c&lIPDynamic &8|- &fIP Range Ban"
- ""
- "&7Your IP has been banned from this server."
- "&7IP Address: &f{ip}"
- "&7Banned Range: &c{pattern}"
- "&7Reason: &f{reason}"
- "&7Duration: &f{duration}"
# All messages are fully customizable!
commands:
no-permission: "&cYou don't have permission."
player-not-found: "&cPlayer not found in database."
# ... and many more
Installation
Download IPDynamic.jar
Place in your server's /plugins folder
If upgrading from DEV version: Delete old IPDynamic folder first!