Gatekeeper is a plugin framework for Spigot servers that provides a unified web API layer. It allows other plugins to register namespaced REST and WebSocket routes, supports JWT-based authentication, and handles permission-based access control.
This plugin is designed to simplify web interface development for Minecraft server plugins, while avoiding route conflicts and enforcing security boundaries.
Features
- Plugin-level route registration for REST APIs
- JWT login and role-based access control
- Built-in endpoints for server and player status
- Optional CORS support for browser-based frontends
- Simple Java API for plugin integration
Getting Started
Plugins can register routes using the provided API:
Code (Text):
api.registerPluginRoutes(this, builder -> {
builder.get("/ping", request -> ApiResponse.json(200, Map.of("message", "pong")));
});
This will be available as:
GET /api/myplugin/ping
Important
To prevent surprises, be sure to change the values of
jwt.secret-key and
admin-password in
config.yml in the configuration folder after the plugin has been loaded, and then restart the server!
Example Dashboard
A simple frontend example is available to demonstrate usage and integration:
Gatekeeper Example Dashboard
This project uses a next.js + React setup and is intended as a starting point for admin panels or in-game control UIs.
Requirements
- Minecraft Server: Spigot 1.12+
- Java 17 or higher
- The plugin launches an embedded HTTP server (default: port 8080)
Source Code
In Development
- Better permission management system
- Websocket support for real-time updates
- OpenAPI / Swagger generation
License
MIT License.
You are free to use, modify, and distribute this project under the terms of the license.