RapidBan

A plugin has same functions as Litebans

86

RapidBan

RapidBan

Enterprise-Grade Minecraft Punishment Management System

A high-performance, distributed punishment management plugin for Paper 1.21+.

Core Features

🚀 High-Performance Architecture

- Asynchronous Database Operations - Uses HikariCP connection pool; all I/O operations are executed asynchronously - Thread-Safe Design - Dedicated thread pool for handling database requests without impacting server TPS - Local Cache - Active ban cache to reduce database queries

🌐 Distributed Synchronization

- Multi-Server Support - Multiple servers share the same database - Real-Time Sync - Ban/unban operations take effect instantly across all servers - Redis Support - Optional Redis Pub/Sub or database polling

🎯 UUID-Based Ban System

- Based on UUID instead of player name - Supports permanent bans, temporary bans, and silent bans - Automatic unban upon expiration - Complete undo system

🔍 IP Association Detection

- Records players’ historical login IPs - Automatically detects linked (alt) accounts - Notifies administrators of suspicious logins - Optional automatic linked-account banning

🎨 Custom Kick Interface

- Supports MiniMessage format - Variable placeholders (player name, reason, remaining time, etc.) - Different templates for different punishment types

📊 Web Management Panel

- REST API interface - JWT authentication - View punishment history - Execute ban/unban operations - Search players and linked accounts

Database Options

SQLite (Recommended for Single Server)

- ✅ No additional database installation required - ✅ Simple configuration, ready to use out of the box - ✅ Suitable for small servers - ❌ Does not support multi-server synchronization

Configuration example:

database: type: "SQLITE" sqlite: file: "rapidban.db"

MySQL/MariaDB (Recommended for Multi-Server)

- ✅ Supports distributed multi-server synchronization - ✅ High performance, suitable for large networks - ✅ Centralized data management - ❌ Requires a separate database server

Configuration example:

database: type: "MYSQL" mysql: host: "localhost" port: 3306 database: "rapidban" username: "root" password: "password"

Configuration

config.yml

Server identifier (used for distributed synchronization)

server-id: "server-1"

Database configuration

database:

Database type: MYSQL or SQLITE

type: "MYSQL"

MySQL/MariaDB configuration

mysql: host: "localhost" port: 3306 database: "rapidban" username: "root" password: "password"

SQLite configuration (file path relative to plugin data folder)

sqlite: file: "rapidban.db"

Synchronization system configuration

sync: interval-seconds: 5 use-redis: false redis: host: "localhost" port: 6379 password: ""

IP association detection

ip-check: enabled: true auto-ban-alts: false notify-staff: true

Web management panel

web: enabled: true host: "0.0.0.0" port: 8080 jwt-secret: "change-this-to-a-random-secret-key" admin-username: "admin" admin-password: "admin123"

Commands


Command Description Permission


/ban <player> <reason> [-t <duration>] [-s] Ban a player rapidban.ban

/unban <player> Unban a player rapidban.unban

/history <player> View punishment history rapidban.history

/punishundo <player> [reason] Undo all punishments rapidban.undo


Duration Format

- s - Seconds - m - Minutes - h - Hours - d - Days - w - Weeks - M - Months - y - Years

Examples:

/ban Player123 Cheating -t 7d /ban Player456 Abusive language -t 3h -s /ban Hacker999 Using hacks

Permissions

Permission Description


rapidban.* All permissions rapidban.ban Ban players rapidban.unban Unban players rapidban.history View history rapidban.undo Undo punishments rapidban.notify Receive punishment notifications rapidban.notify.alt Receive linked-account notifications

Web API

Authentication

POST /auth/login Content-Type: application/json

{ "username": "admin", "password": "admin123" }

Response:

{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "username": "admin", "role": "ADMIN" }

Performance Optimization

- ✅ All database operations executed asynchronously - ✅ HikariCP connection pool optimization - ✅ Active ban local cache - ✅ Dedicated thread pool for I/O processing - ✅ Batch query optimization - ✅ Automatic cleanup of expired data

Development

Clone the project

git clone <repository>

Build

./gradlew shadowJar

Output location

build/libs/RapidBan-1.0-Beta1.jar

License

This project is licensed under the GNU General Public License v3.0.

Support

If you have any questions or suggestions, please submit an Issue.

ADS