A dynamic server management plugin for Velocity proxy that allows server administrators to add, remove, and manage Minecraft servers directly through in-game commands.
- Dynamic Server Management: Add and remove servers without restarting the proxy
- Multi-Version Support: Compatible with Minecraft versions 1.8.9 - 1.21.8
- Bedrock Support: Full compatibility with Geyser for Bedrock Edition players
- Auto-Cleanup: Automatically removes servers that have been offline for 72+ hours
- Database Storage: Persistent storage using MySQL/MariaDB
- Permission-Based: Fine-grained permission control
- Real-time Status: Live server status monitoring and updates
- User-Friendly Commands: Intuitive command system for easy management
- Velocity: 3.4.0 or higher
- Java: 17 or higher
- Database: MySQL 8.0+ or MariaDB 10.3+
- Optional: Geyser plugin for Bedrock support
- Download the plugin JAR file
- Place it in your Velocity
plugins/directory - Start your Velocity proxy to generate the default configuration
- Configure your database connection in
plugins/minehub-velocity/config.yml - Restart your Velocity proxy
- Create a MySQL/MariaDB database for the plugin:
CREATE DATABASE minehub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'minehub'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON minehub.* TO 'minehub'@'localhost';
FLUSH PRIVILEGES;- Update the database configuration in
config.yml:
database:
host: "localhost"
port: 3306
database: "minehub"
username: "minehub"
password: "your_secure_password"/minehub- Show the server list/minehub list- Show all available servers/minehub connect <server>- Connect to a specific server/minehub info <server>- Show detailed server information/hub- Alias for/minehub
/addserver <name> <host> <port> [description]- Add a new server to the network/removeserver <name>- Remove a server from the network
minehub.use- Access to basic hub commands (default: true)minehub.connect- Connect to servers (default: true)
minehub.addserver- Add new serversminehub.removeserver- Remove own serversminehub.removeserver.others- Remove other players' serversminehub.admin- Full administrative access
The plugin provides a comprehensive API for other plugins to interact with:
// Get the server management service
ServerManagementService service = plugin.getServerManagementService();
// Add a server programmatically
service.addServer("myserver", "localhost", 25565, playerUuid, playerName)
.thenAccept(success -> {
if (success) {
// Server added successfully
}
});
// Get all managed servers
List<ServerInfo> servers = service.getAllManagedServers();
// Check if a server is online
boolean isOnline = service.isServerOnline("myserver");This plugin is designed to work with all Minecraft versions from 1.8.9 to 1.21.8:
- Legacy Versions: 1.8.9 - 1.12.2
- Modern Versions: 1.13+ - 1.21.8
- Bedrock Edition: Via Geyser plugin
The plugin is fully compatible with Geyser, allowing Bedrock Edition players to:
- Connect to Java Edition servers
- Use all plugin features
- Seamlessly switch between servers
The plugin automatically creates the following tables:
id- Auto-incrementing primary keyname- Server name (unique)host- Server hostname/IPport- Server portowner_uuid- Owner's UUIDowner_name- Owner's usernamecreated_at- Creation timestamplast_seen- Last online timestampis_online- Current online statusdescription- Server descriptionmax_players- Maximum player countversion- Minecraft version
uuid- Player UUID (primary key)username- Player usernamefirst_join- First join timestamplast_join- Last join timestamplast_server- Last connected serverjoin_count- Total join count
- Clone the repository
- Ensure you have Java 17+ and Maven installed
- Run
mvn clean package - The compiled JAR will be in the
target/directory
For support, bug reports, or feature requests, please visit our GitHub repository or Discord server.
This project is licensed under the MIT License - see the LICENSE file for details.
We welcome contributions! Please see our contributing guidelines for more information.