REST API plugin for Luminol/Folia 26.1.2 — Javalin-based whitelist/server controller
- Java 100%
| .forgejo/workflows | ||
| .github/workflows | ||
| gradle/wrapper | ||
| src/main | ||
| .gitignore | ||
| .plugbench.toml | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
EkaiiAPI
REST API plugin for Luminol / Folia / Paper 26.1.2 — Javalin-backed endpoints for whitelist + server stats.
Ported to MC 26.1.2 (paper-api 26.1.2.build.53-stable), JDK 25 / Gradle 9.4.1, shadow plugin com.gradleup.shadow:9.2.2.
Endpoints
All require Authorization: Bearer <api_token> (configured in plugins/EkaiiAPI/config.yml).
| Method | Path | Purpose |
|---|---|---|
| GET | / |
Plugin identification |
| GET | /server/ping |
Server status + player counts |
| GET | /server/stop |
Trigger graceful shutdown |
| GET | /server/players |
Online player list |
| GET | /server/banned |
Banned profile list |
| GET | /whitelist |
Whitelisted players |
| GET / POST / DELETE | /whitelist/{uuid} |
Per-UUID whitelist mutation |
Config
config.yml (auto-generated on first enable):
server_port: 5599 # default 5000 collides with macOS AirPlay
api_token: 'changeme'
Build
export JAVA_HOME=/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home # JDK 25
./gradlew shadowJar
# Output: build/libs/EkaiiAPI-1.3.0-ekaii26.jar (~8 MB shadow)
Releasing
Push a v* tag → CI builds shadowJar + creates a Forgejo release with the jar attached.
Repos
- Canonical: https://forgejo.ekaii.fr/exo/EkaiiAPI
- Mirror (private): https://github.com/uncaney/EkaiiAPI
- Companion: exo/luminol-ekaii (Luminol fork + sibling EkaiiAFK plugin + local test rig)