Skip to content

SrCodexStudio/IPDynamic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 

Repository files navigation

Minecraft Version Platform Language License

๐ŸŒ IPDynamic

Advanced IP Tracking & Alt Detection System for Minecraft Servers

Protect your server from ban evaders and manage player connections like never before.


๐Ÿ“‹ Table of Contents


โœจ Features

๐Ÿ” IP Tracking

Track every player connection with detailed information including IP address, country, and timestamps.

๐Ÿ‘ฅ Alt Account Detection

Automatically detect alt accounts by analyzing shared IP addresses across your player database.

๐Ÿšซ IP Range Banning

Powerful IP banning system with two operation modes:

Mode Pattern Example IPs Affected
OP1 x.x.x.* 192.168.1.* ~256 IPs
OP2 x.x.*.* 192.168.*.* ~65,536 IPs

โœ… Whitelist System

Allow specific players to bypass IP bans with UUID and username verification via Mojang API.

๐ŸŒ GeoIP Integration

Automatic country detection for every connection using free GeoIP services.

๐Ÿ’พ Persistent Storage

SQLite database with auto-adaptive schema - your data survives plugin updates seamlessly.

โšก Async Operations

Built with Kotlin Coroutines for non-blocking database operations that won't lag your server.

๐ŸŽจ Customizable Messages

Full message customization via messages.yml - translate or customize every plugin message.

๐Ÿ”’ Granular Permissions

Fine-grained permission system allowing you to give moderators exactly the access they need.


๐Ÿ“ฅ Installation

  1. Download the latest IPDynamic.jar from Releases
  2. Place the JAR file in your server's plugins folder
  3. Restart your server
  4. Configure the plugin in plugins/IPDynamic/

Requirements

Requirement Version
Minecraft Server 1.17.x - 1.21.x
Server Software Paper or Spigot
Java 17 or higher

๐ŸŽฎ Commands

Base command: /ipdynamic (aliases: /ipdy, /ipd)

๐Ÿ“Š Information Commands

Command Description
/ipdy check <player> View complete player profile with IP history and alt accounts
/ipdy history <player> [limit] View player's connection history
/ipdy alts <player> List all detected alt accounts for a player
/ipdy ip <address> Find all accounts that have used a specific IP
/ipdy stats View plugin statistics

๐Ÿšซ Ban Management

Command Description
/ipdy ban <op1|op2> <ip> [reason] [duration] Ban an IP range
/ipdy unban <pattern> Remove an IP ban
/ipdy banlist View all active IP bans

Duration Examples:

  • 30m - 30 minutes
  • 12h - 12 hours
  • 7d - 7 days
  • 4w - 4 weeks
  • No duration = Permanent ban

โœ… Whitelist Management

Command Description
/ipdy whitelist add <player> [reason] Add player to whitelist
/ipdy whitelist remove <player> Remove player from whitelist
/ipdy whitelist list View all whitelisted players

โš™๏ธ Administration

Command Description
/ipdy reload Reload plugin configuration
/ipdy help Display available commands

๐Ÿ” Permissions

Master Permission

Permission Description Default
ipdynamic.* Full access to all commands OP

Individual Permissions

Permission Commands Recommended For
ipdynamic.check /ipdy check Moderators
ipdynamic.history /ipdy history Moderators
ipdynamic.alts /ipdy alts Moderators
ipdynamic.ip /ipdy ip Moderators
ipdynamic.ban /ipdy ban Administrators
ipdynamic.unban /ipdy unban Administrators
ipdynamic.banlist /ipdy banlist Administrators
ipdynamic.whitelist /ipdy whitelist Administrators
ipdynamic.stats /ipdy stats Administrators
ipdynamic.reload /ipdy reload Administrators

Example Permission Setup

For Moderators (LuckPerms):

/lp group moderator permission set ipdynamic.check true
/lp group moderator permission set ipdynamic.history true
/lp group moderator permission set ipdynamic.alts true
/lp group moderator permission set ipdynamic.ip true

For Administrators:

/lp group admin permission set ipdynamic.* true

โš™๏ธ Configuration

๐Ÿ“ messages.yml

Customize all plugin messages with full color code support:

# Prefix for all messages
prefix: "&b&lIPDynamic &8|"

# Ban screen shown to banned players
ban-screen:
  - "&c&lโš  IP BANNED โš "
  - ""
  - "&7Your IP: &f{ip}"
  - "&7Matched Pattern: &c{pattern}"
  - "&7Reason: &f{reason}"
  - "&7Banned by: &f{banned_by}"
  - "&7Date: &f{banned_date}"
  - "&7Duration: &f{duration}"
  - ""
  - "&7Contact an administrator if you believe this is an error."

# Duration formats
duration:
  permanent: "&cPermanent"
  expired: "&aExpired"

# Command messages
messages:
  no-permission: "&cYou don't have permission to use this command."
  player-not-found: "&cPlayer not found in database."
  invalid-ip: "&cInvalid IP address format."
  # ... more messages

๐ŸŽจ Color Codes

Code Color Code Color
&0 Black &8 Dark Gray
&1 Dark Blue &9 Blue
&2 Dark Green &a Green
&3 Dark Aqua &b Aqua
&4 Dark Red &c Red
&5 Dark Purple &d Pink
&6 Gold &e Yellow
&7 Gray &f White
&l Bold &o Italic
&n Underline &m Strike

๐Ÿ—„๏ธ Database

IPDynamic uses SQLite for data storage with automatic schema management.

Database Location

plugins/IPDynamic/ipdynamic.db

Tables Structure

๐Ÿ“ฆ ipdynamic.db
โ”œโ”€โ”€ ๐Ÿ“‹ players          - Player profiles and first connection data
โ”œโ”€โ”€ ๐Ÿ“‹ connections      - Complete connection history log
โ”œโ”€โ”€ ๐Ÿ“‹ ip_records       - IP address records per player
โ”œโ”€โ”€ ๐Ÿ“‹ ip_bans          - Active IP range bans
โ””โ”€โ”€ ๐Ÿ“‹ whitelist        - Whitelisted players

Auto-Adaptive Schema

The database automatically adapts to plugin updates:

  • โœ… Creates missing tables on startup
  • โœ… Adds new columns without data loss
  • โœ… Preserves all existing data during updates

๐Ÿ”ง Technical Details

Built With

Technology Purpose
Kotlin 1.9 Primary language
MCCoroutine Async operations on Bukkit
Paper API Server integration
Adventure API Modern text components
SQLite + JDBC Data persistence
Mojang API UUID verification

Performance Optimizations

  • ๐Ÿš€ In-memory caching for bans and whitelist
  • ๐Ÿš€ Async database operations prevent server lag
  • ๐Ÿš€ WAL mode for SQLite concurrent access
  • ๐Ÿš€ Connection pooling for efficient queries
  • ๐Ÿš€ Lazy loading for player profiles

Version Compatibility

Server Version Status
1.17.x โœ… Supported
1.18.x โœ… Supported
1.19.x โœ… Supported
1.20.x โœ… Supported
1.21.x โœ… Supported

๐Ÿ“ธ Screenshots

Player Check

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  IPDynamic | Player Information         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Username: ExamplePlayer                โ”‚
โ”‚  UUID: 12345678-1234-1234-1234-1234567  โ”‚
โ”‚  First Connection: 01/01/2024 12:00:00  โ”‚
โ”‚  Total Connections: 150                 โ”‚
โ”‚                                         โ”‚
โ”‚  First IP                               โ”‚
โ”‚  Address: 192.168.1.100                 โ”‚
โ”‚  Country: United States                 โ”‚
โ”‚                                         โ”‚
โ”‚  IP History (3)                         โ”‚
โ”‚  - 192.168.1.100 (First)               โ”‚
โ”‚    Country: United States               โ”‚
โ”‚    Connections: 100                     โ”‚
โ”‚                                         โ”‚
โ”‚  Alt Accounts Detected (2)              โ”‚
โ”‚  - AltAccount1                          โ”‚
โ”‚    Shared IP: 192.168.1.100            โ”‚
โ”‚  - AltAccount2                          โ”‚
โ”‚    Shared IP: 10.0.0.50                โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Ban Screen

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚           โš  IP BANNED โš                 โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                         โ”‚
โ”‚  Your IP: 192.168.1.100                 โ”‚
โ”‚  Matched Pattern: 192.168.1.*           โ”‚
โ”‚  Reason: Ban evasion                    โ”‚
โ”‚  Banned by: AdminName                   โ”‚
โ”‚  Date: 01/01/2024 15:30:00             โ”‚
โ”‚  Duration: 7d 0h                        โ”‚
โ”‚                                         โ”‚
โ”‚  Contact an administrator if you        โ”‚
โ”‚  believe this is an error.              โ”‚
โ”‚                                         โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ“ FAQ

Does this plugin work with offline/cracked servers?

Yes, IPDynamic works with both online and offline mode servers. The whitelist system uses both UUID and username verification to handle UUID differences between modes.

Will my data be preserved after updating the plugin?

Yes! IPDynamic uses an auto-adaptive database schema that preserves all existing data while automatically adding new features.

Does this plugin cause lag?

No. All database operations are performed asynchronously using Kotlin Coroutines, ensuring zero impact on your server's TPS.

Can I use this with Spigot instead of Paper?

Yes, IPDynamic is compatible with both Paper and Spigot servers running version 1.17 or higher.

How accurate is the GeoIP detection?

GeoIP accuracy depends on the free API services used. Country-level detection is generally 95%+ accurate, while city-level may vary.

Can players bypass IP bans with VPNs?

Players can attempt to use VPNs, but you can ban VPN IP ranges using OP2 mode. Consider integrating with anti-VPN plugins for enhanced protection.


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ’ฌ Support


Made with โค๏ธ by the IPDynamic Team

โฌ†๏ธ Back to Top

About

IPDynamic - Advanced IP Tracking & Alt Detection System for Minecraft Servers

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published