
133
0
IP Ban Plugin 1.0.1
release1 января 2026 г.Added
- JSON Storage: Replaced SQLite with a lightweight JSON-based storage system.
- Async I/O: All file operations (save/load) are now performed asynchronously to prevent server lag.
- Cyrillic Support: Enforced UTF-8 encoding for
messages.propertiesandbanned_ips.jsonto correctly handle Cyrillic characters in ban reasons and messages.
Changed
- Plugin ID: Renamed plugin ID to
ipbanpluginand main class toIPBanPlugin. - Dependency Removal: Removed
sqlite-jdbcdependency to drastically reduce file size. - File Size: Optimized plugin size from ~13MB to ~350KB.
- Velocity API: Updated to target Velocity 3.4.0-SNAPSHOT.
Fixed
- Encoding Issues: Fixed issues where Cyrillic characters might appear as question marks or garbage text.
- Java 9+ Compatibility: Removed complex classloader hacks required for SQLite, ensuring better compatibility with modern Java versions (Java 17+).
IP Ban Plugin 1.0.0
release6 июля 2025 г.Velocity IP Ban Plugin
Created by Yunexal Labs - A simple and efficient IP banning plugin for Velocity proxy servers
📋 Overview
Velocity IP Ban Plugin is a lightweight yet powerful solution for managing IP bans on Velocity proxy servers. The plugin provides instant IP blocking, automatic online player kicking, and support for multiple IP management - all without unnecessary complexity.
✨ Features
- 🚫 Instant IP Blocking - Blocks banned IP addresses before players can connect to any backend server
- 👥 Multiple IP Support - Ban or unban multiple IP addresses with a single command
- ⚡ Online Player Kicking - Automatically kicks players when their IP gets banned while they're online
- 📊 Statistics Integration - Built-in bStats integration for usage analytics
- 🎨 Colored Messages - Beautiful colored console output and player messages
- 💾 SQLite Database - Lightweight, serverless database storage
- 🔧 Simple Configuration - Minimal setup required
- 🌐 No Dependencies - Works out of the box with just Velocity
🚀 Installation
- Download the latest
velocity-ip-ban-1.0.0.jarfrom releases - Place the JAR file in your Velocity server's
pluginsfolder - Restart your Velocity server
- The plugin will automatically create configuration files on first run
📖 Commands
/ipban - Ban IP Addresses
Permission: velocityipban.ban
Aliases: /banip
Usage Examples:
# Show list of all banned IPs
/ipban
# Ban a single IP address
/ipban 192.168.1.100
# Ban multiple IP addresses at once
/ipban 192.168.1.100 10.0.0.50 172.16.0.10
# Mix valid and invalid IPs (invalid ones will be skipped with warnings)
/ipban 192.168.1.100 invalid.ip 10.0.0.50
/unbanip - Unban IP Addresses
Permission: velocityipban.unban
Aliases: /unban-ip
Usage Examples:
# Unban a single IP address
/unbanip 192.168.1.100
# Unban multiple IP addresses at once
/unbanip 192.168.1.100 10.0.0.50 172.16.0.10
⚙️ Configuration
config.yml
# Velocity IP Ban Plugin Configuration
# Created by Yunexal Labs
#
# A simple and efficient IP banning system for Velocity proxy servers
# Database settings
database:
type: "sqlite"
sqlite:
file: "banned_ips.db"
# Debug mode
debug: false
messages.properties
All plugin messages are customizable through the messages.properties file:
# Ban messages
ban.message=&cYour IP has been parked by Yunexal Autonomous Security. Appeal is not possible. Skill issue?
ban.kick_online=&cYour IP has been banned while you were online. Reconnection is not possible.
ban.success=&aSuccessfully banned IP: &f{ip}
ban.success_multiple=&aSuccessfully banned &f{count} &aIPs: &f{ips}
ban.already=&cIP {ip} is already banned
ban.some_already=&eWarning: Some IPs were already banned: &f{already_banned}
# Unban messages
unban.success=&aSuccessfully unbanned IP: &f{ip}
unban.success_multiple=&aSuccessfully unbanned &f{count} &aIPs: &f{ips}
unban.not_banned=&cIP {ip} is not banned
unban.some_not_banned=&eWarning: Some IPs were not banned: &f{not_banned}
# List messages
list.header=&6=== Banned IPs ===
list.entry=&7{ip} &8- &fbanned by &f{banned_by}
list.empty=&7No IPs are currently banned
# Error messages
error.invalid_ip=&cInvalid IP address format: &f{ip}
error.no_permission=&cYou don't have permission to use this command
error.database=&cDatabase error occurred. Check console for details.
# Usage messages
usage.ipban=&cUsage: &f/ipban &7[show list] &f| &f/ipban <ip1> [ip2] [ip3] ...
usage.unbanip=&cUsage: &f/unbanip <ip1> [ip2] [ip3] ...
🔒 Permissions
| Permission | Description | Default |
|---|---|---|
velocityipban.ban | Allows using /ipban command | op |
velocityipban.unban | Allows using /unbanip command | op |
🗃️ Database Schema
The plugin uses a simple SQLite database with the following structure:
CREATE TABLE banned_ips (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip_address TEXT NOT NULL UNIQUE,
banned_by TEXT NOT NULL,
banned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
📊 How It Works
- Connection Blocking: When a player tries to connect, the plugin checks their IP against the database during the
PreLoginEvent - Multiple IP Management: Commands support space-separated IP addresses for bulk operations
- Online Player Kicking: When an IP is banned, all online players with that IP are immediately disconnected
- Validation: All IP addresses are validated before processing, with detailed error messages for invalid formats
- Async Operations: All database operations are performed asynchronously to prevent server lag
🎯 Performance
- Lightweight: ~14MB JAR file with all dependencies included
- Fast: Async database operations prevent server blocking
- Efficient: Uses connection pooling with HikariCP
- Scalable: SQLite database handles thousands of banned IPs efficiently
Made with ❤️ by Yunexal Labs
Совместимость
Minecraft: Java Edition
1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x1.12.x1.11.x1.10.x1.9.x1.8.x1.7.x1.6.x1.5.x1.4.x1.3.x1.2.x1.1.x1.0.x
Платформы
Поддерживаемые окружения
Сервер
Детали
Лицензия:MIT
Опубликован:8 месяцев назад
Обновлён:2 месяца назад