VersionGate is a Minecraft server plugin that allows administrators to restrict access to worlds and plugins based on client protocol version. By leveraging ViaVersion, it supports all Minecraft versions without hardcoding specific version numbers.
- World-specific version restrictions: Block certain client versions from accessing specific worlds
- Plugin-specific version restrictions: Control which plugins can be used by which client versions
- Automatic plugin detection: Automatically detects installed plugins and adds them to the configuration
- Runtime configuration reloading: Changes take effect immediately without server restart
- Customizable messages: Fully customizable messages with placeholders
- Minecraft Server: Spigot, Paper, or any compatible fork (1.13+)
- ViaVersion plugin
- Download the latest release from the Releases page
- Place the jar file in your server's
plugins
folder - Start or restart your server
- The default configuration will be created at
plugins/VersionGate/config.yml
The configuration file (config.yml
) is divided into three main sections:
Define which protocol versions are blocked from accessing specific worlds:
worlds:
world_nether:
blocked_versions: [47, 340] # Block 1.8.x and 1.12.x
Control which plugins are available to which protocol versions:
plugin_interactions:
blocked_by_version:
SomeFancyPlugin: [47, 340] # Block 1.8.x and 1.12.x
versions:
47: [BadPlugin, LegacyWarp] # Block these plugins for 1.8.x
Customize messages displayed to players:
messages:
kick_on_login: "&cYou are still on version {version}, which is not allowed in world \"{world}\"."
/versiongate reload
- Reload the configuration/versiongate info
- Display plugin information
versiongate.command
- Access to base commandversiongate.reload
- Permission to reload configurationversiongate.info
- Permission to view plugin information
- Clone the repository
- Build using Gradle:
./gradlew build
The compiled jar will be in build/libs/
.
Documentation is built using VitePress. To work on the documentation:
- Install dependencies:
npm install
- Start the development server:
npm run docs:dev
- Build the documentation:
npm run docs:build
The project uses GitHub Actions for continuous integration:
- Build Workflow: Automatically builds the plugin and documentation
- Release Workflow: Attaches built JARs to GitHub Releases
- Documentation Deployment: Automatically deploys documentation to GitHub Pages
Please see CONTRIBUTING.md for details on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.